Vientiane Technical College
Active Students
active in last 30 days
Inactive Students
inactive ≥ 30 days (no activity)
Active Courses
active courses
Enrollments
Completions
Completion Rate
Certificates
| Course Title | Enrollments | Completions | Completion Rate |
|---|---|---|---|
| Welding & Metal Fabrication | 312 | 234 | 75.0% |
| Electrical Installation | 287 | 198 | 69.0% |
| Construction Technology | 198 | 126 | 63.6% |
| ICT Fundamentals | 164 | 108 | 65.9% |
| Automotive Mechanics | 143 | 87 | 60.8% |
| Tourism & Hospitality | 101 | 71 | 70.3% |
| Faculty / Major | Students | Enrollments | Completion Rate | Certificates |
|---|---|---|---|---|
| ▶ Engineering & Technology | 142 | 534 | 71.2% | 380 |
| ▶ Business & Commerce | 89 | 312 | 65.1% | 203 |
| ▶ Hospitality & Tourism | 56 | 193 | 70.5% | 136 |
Enrollments
Completions
Certificates Issued
Screen Flow (from flow.puml):
📝 Spec notes — UC-ANL.06 / SCR-ANL.15 (fields, actions, requirements)
- Screen: SCR-ANL.15 — Institution Detail
- Use case: UC-ANL.06 — View Institution-level Aggregated Report
Institution Detail page for Program Administrator or Super Administrator — opened by clicking an institution row (TVET section) or the External row on SCR-ANL.14.
Both filters chosen on SCR-ANL.14 (learner type and date range) carry over automatically and are shown as read-only labels in the header.
Operates in two modes: Normal mode (institution_id not null) shows institution name, type badge, and region alongside carry-over filter labels;
External mode (institution_id = null) shows "External Learners" as a fixed placeholder — Institution Type badge and Region are hidden.
Five sections: (1) Institution Header. (2) Key Figures — active/inactive students (learning-activity threshold, default 30 days, configurable by Super Administrator), active courses, enrollments, completions, completion rate, certificates.
Active/Inactive Students and Active Courses are always calculated from today (not affected by date range); Enrollments, Completions, Completion Rate, and Certificates are scoped to the carried-over date range and use the same course-affiliation rule as Active Courses (an enrollment counts toward this institution whenever the course itself is affiliated with it, regardless of the enrolled learner's own institution).
(3) Course List — enrollments, completions, completion rate per course; sortable by any column.
(4) Faculty/Major Breakdown (Normal mode / TVET institutions only) — grouped table scoped by the learner's own Faculty/Major (a separate dimension from the course-affiliation rule above).
(5) Trend Charts — 3 bar charts (Enrollments / Completions / Certificates per period bucket); period and time grouping selectors auto-apply (main flow steps 6–7; default 12mo monthly).
When the institution has no enrolled students, all figures show as 0 and the course list shows "No course data available for this institution".
An Export button opens the shared Export Dialog (SCR-ANL.17) for CSV/Excel/PDF download (AF-5C) — exported content mirrors exactly what is shown on screen at that moment.
institution_name"Institution Name" — text · Institution.name · param.institution_id · read-onlyinstitution_type"Institution Type" — enum (TVET/job_centre/skills_dev) · Institution.type · param.institution_id · read-onlyinstitution_region"Region" — text · Institution.region · param.institution_id · read-onlyparam_filter_learner_type"Learner Type" — enum multi-select · carried over from SCR-ANL.14 filter · shown as read-only badge in header · filters all figures on this pageparam_filter_date_start"Report Start Date" — date · carried over from SCR-ANL.14 · shown as read-only badge in header alongside Learner Type · scopes Enrollments, Completions, Completion Rate, Certificates, and Course List figures (SS-ANL.09); does NOT affect Active/Inactive Students or Active Coursesparam_filter_date_end"Report End Date" — date · upper boundary of carried-over date range · same scoping rules as param_filter_date_startkpi_students_active"Active Students" — count learners from institution with learning activity (login, lesson view, quiz attempt, or assignment submission) within the inactivity threshold (default 30 days, configurable by Super Administrator — SS-ANL.09) · fallback 0 · read-onlykpi_students_inactive"Inactive Students" — count learners from institution with no learning activity within the inactivity threshold, or never (SS-ANL.09) · fallback 0 · read-onlykpi_course_count"Active Courses" — active courses affiliated with this institution = created by an instructor belonging to this institution (authoring institution — SS-ANL.09; OI-04) · fallback 0 · read-onlykpi_enrolled"Enrollments" — total enrollments in courses affiliated with this institution (same authoring-institution rule as Active Courses), matching selected learner type of the enrolled learner — regardless of which institution that learner belongs to (SS-ANL.09; OI-213) · fallback 0 · read-onlykpi_completed"Completions" — completed enrollments in courses affiliated with this institution, matching selected learner type (same scope rule as Enrollments — SS-ANL.09; OI-213) · fallback 0 · read-onlykpi_completion_rate"Completion Rate (%)" — completions ÷ enrollments × 100; 1 decimal; 0 when no enrollments · fallback 0 · read-onlykpi_certificates"Certificates" — certificates issued for completions of courses affiliated with this institution, matching selected learner type (same scope rule as Enrollments — SS-ANL.09; OI-213) · fallback 0 · read-only- Course list columns:
course_title(Course.title),course_enrolled_count,course_completed_count(matching selected learner type, regardless of the enrolled learner's own institution — SS-ANL.09),course_completion_rate(completions ÷ enrollments × 100; 1 decimal; 0 if no enrollments) · all read-only trend_period"Period" — enum (6mo/12mo/24mo) · default 12mo · required · auto-apply on dropdown change (main flow step 6) · refs: UC-ANL.06 AR#5 (SS-ANL.10 cancelled 2026-06-29, inlined here)trend_granularity"Time Grouping" — enum (weekly/monthly/quarterly) · default monthly · required · auto-apply on dropdown change · refs: UC-ANL.06 AR#5- Faculty/Major Breakdown (visible in Normal mode only — institution_id != null):
faculty_name(Faculty.name · sorted alpha · SS-ANL.11),faculty_students(unique learners with ≥1 enr in period · SS-ANL.11),faculty_enrollments,faculty_completion_rate(completions ÷ enrollments × 100; 1dp; 0 when 0 enr),faculty_certificates(within carried-over date range). Per-Major rows:major_name,major_students,major_enrollments,major_completion_rate,major_certificates(same 4 metrics scoped to Major-affiliated learners). Empty state: institution has no Faculty/Major structure → show "No Faculty/Major structure has been set up for this institution" in section. Faculty totals computed independently from all Faculty-affiliated learners (not sum of Major rows).
back_to_summary"← Back to Summary" — always enabled · triggers UC-ANL.06-M-1 → navigates to SCR-ANL.14 (no scenario propagation)change_trend_period"(onChange dropdown)" — always enabled · triggers UC-ANL.06-M-6 · self-loop on SCR-ANL.15 with updated periodexport"Export" — always enabled · triggers UC-ANL.06-A-5C-1 · opens the Export Dialog (SCR-ANL.17)sort_course_list"(click column header)" — always enabled · client-side sort; click again reverses order · default course_title asc · no explicit UC steptoggle_faculty_row"(click Faculty row)" — enabled when institution_id != null · expands/collapses per-Major rows nested under Faculty · no explicit UC step (implicit UI behavior)
- When the institution has no enrolled students, all KPI cards show 0 and the course list shows "No course data available for this institution" — not a blank page and not an error. [refs: —]
- A learner is inactive if they have had no learning activity (login, lesson view, quiz attempt, or assignment submission) for longer than the inactivity threshold (default 30 days), or never. The threshold is a platform-wide value configurable by the Super Administrator via system configuration (not per institution). [refs: SS-ANL.09]
- Trend charts: if selected period has no data → show empty chart (no error). If data lag exceeds freshness threshold → show "Data as of [date and time]" notice. [refs: SS-ANL.02]
- All Key Figures (Enrollments, Completions, Completion Rate, Certificates) and Course List row figures are scoped to the carried-over date range (param_filter_date_start – param_filter_date_end). Active Students, Inactive Students, and Active Courses are always calculated from today — not affected by the date range filter. Certificates always equal Completions (1:1 rule). Enrollments/Completions/Certificates use the same course-affiliation rule as Active Courses — an enrollment counts toward this institution whenever the course itself is affiliated with it, regardless of which institution the enrolled learner belongs to (confirmed via prototype UAT feedback PA-ANL-01). [refs: SS-ANL.09]
- Exported content (any of the 3 formats — CSV, Excel, PDF) mirrors exactly the fields visible on screen at the moment Export is invoked, scoped by the same active filters. Trend chart data is display-only and is not included in the export. [refs: SS-ANL.03]
- The three trend charts use their own Period and Time Grouping controls (trend_period, trend_granularity) — not the carried-over date range. Each bucket shows the count for that period only (not cumulative); empty buckets show as 0. [refs: UC-ANL.06 AR#5]
- In External mode (
institution_id = null, entered via the External row on SCR-ANL.14): the Institution Header shows "External Learners" as a fixed label; Institution Type badge and Region label must not appear. All Key Figures, Course List, and Trend Charts behave identically to Normal mode — only the header differs. [refs: —] - Faculty/Major Breakdown section (fields 22–31) is shown only in Normal mode (institution_id != null). When the institution has no Faculty/Major structure configured, the section shows "No Faculty/Major structure has been set up for this institution" rather than an empty table — the section remains visible. Faculty row totals are computed independently from all Faculty-affiliated learners (not the sum of Major rows). Faculty rows sorted alphabetically; Major rows alphabetically within Faculty. Full formulas: SS-ANL.11. [refs: —]
- 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
scope_summary"What will be exported" — text · computed · read-onlyformat"Format" — enum (csv/excel/pdf) · required · default: csv
generate"Generate & Download" — always enabled · triggers UC-ANL.06-A-5C-3 (also shared by UC-ANL.06-A-3A-3, UC-ANL.07-A-3B-3)cancel"Cancel" — always enabled · no UC step (dismisses dialog)
- 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]