Dataset
Routine vaccination coverage — district reporting, 2024
Synthetic monthly DHIS2-style aggregate reporting of routine immunisation doses across 38 health facilities, with deliberate reporting gaps.
syntheticpublic-healthdhis2
- Rows
- 5,472
- Variables
- 7
- Period
- 2024-01 to 2024-12
- Licence
- CC BY 4.0
- Completeness
- 87%
Files
vaccination-coverage-2024.v1.csv
Files are versioned by filename. A corrected release ships as.v2.csv rather than replacing the file in place, so an analysis pinned to v1 keeps reproducing.
Data dictionary
| Variable | Type | Description | Unit | Values | Missing |
|---|---|---|---|---|---|
facility_id | string | Pseudonymous health facility identifier. | — | — | — |
facility_type | categorical | Level of the reporting facility. | — | health-post, health-centre, district-hospital | — |
period | date | Reporting month, given as the first day of the month. | — | — | — |
antigen | categorical | Vaccine antigen reported. | — | bcg, penta1, penta3, mcv1, mcv2, opv3 | — |
doses_administered | integer | Number of doses administered in the reporting month. | — | — | — |
target_population | integer | Annual target population for the facility catchment, as used in the denominator. | — | — | — |
report_submitted | boolean | Whether the facility submitted its monthly report for the period. | — | — | — |
Provenance
Data quality
- Fully simulated. Coverage rates here do not describe any real district.
- Denominators are annual targets, so monthly coverage must be computed against one twelfth of the target, not the full figure.
- Facilities that did not report appear as rows with report_submitted false and no doses, not as missing rows. Treating them as zero doses will understate coverage.
Known issues
- Reporting completeness drops sharply in August and September, which is intentional and makes this dataset useful for teaching completeness adjustment.
- Three facilities report penta3 exceeding penta1, a common real-world data quality flag.
Example analyses
Python
Coverage and dropout rate by facility
Computes penta1 to penta3 dropout and flags facilities where the rate is implausible.
examples/coverage-dropout.pyR
Coverage and dropout rate by facility
The same dropout calculation and flagging logic written with tidyverse verbs.
examples/coverage-dropout.RAdjusting coverage for reporting completeness
Shows how reported coverage shifts once completeness is accounted for in the denominator.
examples/completeness-adjustment.R