Reports › Institution Aggregated
🎬 Simulate:
Role and Working Institute are set via the top-bar switcher (SS-IDP.31) β€” this report always shows exactly one institution.

Institution Aggregated Report

National Training Institute
Report Filter

Total Students

342

TVET learners at the Working Institute

Enrollments

1,205

Jun 2025 – Jun 2026

Completion Rate

68.4%

Working Institute average

Certificates

824

in period

TVET Students metrics for TVET learners at the Working Institute
Institution Name ↑ Students Active Courses Enrollments Completion Rate Certificates
Vientiane Technical College 342 12 1,205 68.4% 824
External Students aggregate metrics for External learners enrolled in the Working Institute's courses Β· single row (no institutional breakdown)
Learner Group Students Active Courses Enrollments Completion Rate Certificates
External 128 5 312 58.3% 167

Screen Flow (from flow.puml):

SCR-ANL.14 β€” this screen β†’ Adjust filter β†’ reload (self-loop, steps 2–3) β†’ Select institution β†’ Institution Detail (SCR-ANL.15)
πŸ“ Spec notes β€” UC-ANL.06 / SCR-ANL.14 (fields, actions, requirements)
Identity
  • Screen: SCR-ANL.14 β€” Institution Aggregated Report Landing
  • Use case: UC-ANL.06 β€” View Institution-level Aggregated Report
Brief description

The Institution Aggregated Report page is shared by Program Administrator and Super Administrator. It always shows exactly one institution β€” the user's currently selected Working Institute (SS-IDP.31). Program Administrator can select among the institute(s) they are assigned to; Super Administrator can select any institute in the system. See SS-05 for the data access rule. At the top, a filter lets the administrator narrow the view by learner type (TVET, External, or both) and a date range. Below the filter, the Working Institute's name is shown, followed by four summary numbers scoped to that institute: total students, total enrollments, overall completion rate, and certificates issued. The main area is a data table split into two sections by learner type β€” TVET section: a single row for the Working Institute (student count, active courses, enrollments, completion rate, certificates); clicking the row opens SCR-ANL.15. External section: a single aggregate row for External learners who enrolled in the Working Institute's courses (External learners have no institutional affiliation of their own); clicking the row opens SCR-ANL.15 in External mode. An Export button opens the shared Export Dialog (SCR-ANL.17) for CSV/Excel/PDF download. If the Working Institute has no activity in the selected date range, its row still appears with all numbers shown as zero β€” never removed.

Fields
  • filter_learner_type "Learner Type" β€” enum multi-select Β· User.learner_type Β· default [tvet, external] Β· one_of [tvet, external] Β· shown as checkboxes (chips)
  • filter_date_start "Start Date" β€” date Β· computed default: today βˆ’ 12 months Β· validation ≀ filter_date_end Β· applies to Enrollment.enrolled_at / completed_at / Certificate.issued_at
  • filter_date_end "End Date" β€” date Β· computed default: today Β· validation β‰₯ filter_date_start
  • working_institute_name "Institution" β€” text Β· lookup of the currently selected Working Institute (SS-IDP.31) Β· read-only Β· fallback ""
  • kpi_student_count "Total Students" β€” count User where learner_type ∈ filter_learner_type, scoped to the Working Institute Β· all-time count (not date-limited) Β· read-only Β· fallback 0
  • kpi_enrollment_count "Enrollments" β€” count Enrollment at the Working Institute where learner_type ∈ filter + enrolled_at in date range Β· read-only Β· fallback 0
  • kpi_completion_rate "Completion Rate (%)" β€” (completed Γ· total) Γ— 100 at the Working Institute Β· 1 decimal Β· range 0–100 Β· read-only Β· fallback 0
  • kpi_certificate_count "Certificates" β€” count Certificate.status==issued at the Working Institute in range scoped by learner_type Β· read-only Β· fallback 0
  • TVET section columns: tvet_col_institution_name (Institution.name), tvet_col_student_count (headcount of TVET learners belonging to this institution), tvet_col_active_course_count, tvet_col_enrollment_count, tvet_col_completion_rate, tvet_col_certificate_count Β· all read-only Β· active_course_count/enrollment_count/completion_rate/certificate_count are scoped by course affiliation (courses created by an instructor of this institution β€” SS-ANL.09; OI-04/OI-213/OI-217) β€” an enrollment counts toward this institution whenever the course itself is affiliated with it, regardless of which institution the enrolled learner belongs to; student_count alone remains scoped by the learner's own institution (a different question β€” "who belongs here" vs "what is this institution's course activity")
  • External section columns: ext_col_institution_name, ext_col_student_count, ext_col_active_course_count, ext_col_enrollment_count, ext_col_completion_rate, ext_col_certificate_count Β· all read-only Β· scoped by the same course-affiliation rule as the TVET section (SS-ANL.09/OI-217) β€” counts External learners who enrolled in a course affiliated with the Working Institute; ext_col_student_count is the headcount of External learners with at least one such enrollment (External learners have no institutional affiliation of their own)
  • tvet_table_sort_column / tvet_table_sort_direction β€” enum Β· default institution_name ASC Β· sorts the TVET section only Β· one_of [institution_name, student_count, active_course_count, enrollment_count, completion_rate, certificate_count]
Actions
  • reset_filter "Reset" β€” restores defaults: learner_type [tvet, external], date_start todayβˆ’12mo, date_end today Β· filter auto-applies on change (no explicit Search button per UC-ANL.06 step 2–3)
  • sort_column "(click column header)" β€” client-side sort; toggle asc/desc; TVET section only (External is a single aggregate row β€” nothing to sort) Β· default institution name ASC
  • select_institution "(click TVET institution row)" β€” always enabled (reaching this screen already implies the Working Institute exists) Β· triggers UC-ANL.06-M-4 β†’ navigate to SCR-ANL.15
  • select_external "(click External row)" β€” always enabled regardless of whether External learners exist (SCR-ANL.15 shows 0s if none) Β· triggers UC-ANL.06-M-4 β†’ navigate to SCR-ANL.15 in External mode
  • export "Export" β€” always enabled Β· triggers UC-ANL.06-A-3A-1 Β· opens the Export Dialog (SCR-ANL.17)
Additional requirements
  1. Report data must reflect the latest enrollments, course status changes, and certificate issuances within 5 minutes. [refs: SS-ANL.02]
  2. Institutions with no activity in the selected date range must still appear in the table with all numbers shown as zero β€” they must never be removed from the list based on the filter. [refs: β€”]
  3. Keyboard users must be able to navigate through KPI cards and table rows in logical top-to-bottom order using Tab. [refs: NFR-09]
  4. All figures and the institution row displayed on this page are scoped to the user's currently selected Working Institute (SS-IDP.31) β€” Program Administrator can select among the institute(s) they are assigned to; Super Administrator can select any institute in the system. Platform-wide totals are a separate report (UC-ANL.07). [refs: SS-05, SS-IDP.31]
  5. When the selected learner-type filter has no matching learners for the TVET row or the External row, that row still displays with all figures shown as 0 β€” it is never hidden based on the filter. [refs: β€”]

UC-level export requirement (UC-ANL.06 AR #2): Export supports 3 formats (CSV, Excel, PDF) via the shared Export Dialog, accessible from both the summary page (AF-3A) and the institution detail page (AF-5C); execution path (sync vs. async) is determined by the estimated row count of the output. [refs: SS-ANL.03]

↳ Embedded dialog: SCR-ANL.17 β€” Export Dialog
Brief description: Shared modal dialog used by every report screen that supports export (Institution Aggregated Report, Institution Detail, Platform Summary Dashboard). Shows a scope summary, lets the user pick a format (CSV/Excel/PDF), and confirms to generate and download.
Fields:
  • scope_summary "What will be exported" β€” text Β· computed Β· read-only
  • format "Format" β€” enum (csv/excel/pdf) Β· required Β· default: csv
Actions:
  • generate "Generate & Download" β€” always enabled Β· triggers UC-ANL.06-A-3A-3 (also shared by UC-ANL.06-A-5C-3, UC-ANL.07-A-3B-3)
  • cancel "Cancel" β€” always enabled Β· no UC step (dismisses dialog)
Additional requirements:
  1. When the requested export is estimated to take longer than a few seconds, the dialog shows an in-progress indicator instead of an immediate download link. [refs: SS-ANL.03]