Part 7 · Unified data architecture
Data Architecture & National Database
Stable identifiers, the core entity model, four-tier data classification, the ten-step collection protocol and the quality rules that keep the registers honest.
Stable identifier scheme
Every real-world object the programme touches gets a stable, human-readable identifier. Identifiers are never recycled; merged records keep a redirect chain:
| Object | Pattern | Already live in this package |
|---|---|---|
| University | BD-UNI-nnn | Yes — CSV 01 (173 records) |
| Government organization | BD-GOVT-nnn | Yes — CSV 04 (148 records) |
| Academic program | PROG-nnnn | Yes — CSV 09 (207 records) |
| Facility (hospital, school, office) | FAC-nnnnn | Schema defined; census pending (GAP-21/22) |
| Service seat | SEAT-… | Lifecycle state machine specified |
| Placement | PLMT-… | Booking workflow specified |
| Completion record | COMP-… | Verification workflow specified |
| Student (platform-scoped) | University roll + UNIV-ID composite | National student ID deliberately not assumed (authorization dependency) |
| Sources / assumptions / gaps | SRC-nn · ASM-nn · GAP-nn | Yes — 123 / 32 / 35 records |
Core entities and relationships
The national data model covers the full operating chain — the identifiers above plus faculties, departments, student records, eligibility, ministries, offices, facilities, service categories, seat requests, allocations, bookings, confirmations, attendance, assigned work, evaluations, completions, university expenditure, complaints, appeals and audit logs. Key relationships:
| Relationship | Cardinality | Integrity rule |
|---|---|---|
| University → Faculty → Department → Program | 1-to-many chain | Program cannot exist without department; every entity carries univ_id |
| Program → Eligible students | many students per program per cycle | Eligibility derived from enrollment stage, not self-declared |
| Government org → Facility → Seat → Booking → Completion | 1-to-many chain | Seat capacity checked at booking; unique constraint: one active booking per student |
| University → Seat request → Allocation → Booking | 1-to-many chain | Booking only against allocated, published seats |
| Booking → Attendance → Evaluation → Completion | 1-to-many → 1 | Completion requires triangulated sign-offs (office + university + platform records) |
| Every record → Source/Assumption/Gap reference | many-to-1 | No statistic without provenance — enforced in the research registers |
Data tiers and access classification
Tier 1 · Public aggregates
National/sector/district statistics on dashboards; published research datasets (this website's CSVs). No student-level or office-level sensitive data.
Tier 2 · Institutional data
University profiles, programs, seat specifications, allocation decisions (with reasons) — visible to authenticated programme actors; aggregates public.
Tier 3 · Confidential student records
Identity, enrollment, attendance, evaluations, completions — university custody, need-to-place sharing only, retention schedule enforced.
Tier 4 · Restricted government records
Custodian-officer data never enters the platform as such; students work on approved non-sensitive extracts under MOU.
The national data collection process
The ten-step collection protocol used to build this package's datasets is the same protocol the national programme office would run continuously: (1) identify the official data-holding institution; (2) identify the best available source; (3) collect; (4) record the reporting year; (5) validate; (6) resolve duplicates; (7) document conflicting values; (8) mark missing information; (9) request additional information where needed — including through RTI; (10) record verification status and provenance. The outputs are a living national data-gap register and a source register — both published in this package.
Data quality and provenance
Quality dimensions enforced across datasets: completeness (missing values are NA, never zero — the rule that makes the gap register honest); consistency (admissions ≠ enrollment ≠ graduates; sanctioned ≠ filled; recommended ≠ appointed — incompatible years and definitions are never silently combined); traceability (every value carries SRC/ASM/GAP identifiers); timeliness (reporting year recorded on every row — 2015 public-direct vs 2021 private vintages are stated, not smoothed); uniqueness (stable IDs, deduplication with redirect chains). The research rules text from Phase 1 is reproduced verbatim on the Sources page.
Data dictionaries
Three dictionaries cover the package's 41 datasets: CSV 11 (Phase 1, 43 field definitions), CSV 27 (Phase 3, 16 file-level entries) and CSV 36 (Phase 4, 8 file-level entries). They define every field, its type, units, primary keys and the verified/derived/assumed distinction. Download from the Downloads page.