Dataset
MUAC screening — Artibonite, 2024
Synthetic mid-upper arm circumference screening for 4,218 children under five across twelve communes, carrying the missing values, unit errors and duplicate registrations a real campaign register carries.
- Rows
- 4,218
- Variables
- 8
- Period
- 2024-01 to 2024-12
- Licence
- CC BY 4.0
- Completeness
- 97%
Standards and methodologies
Files
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 | Allowed values |
|---|---|---|---|
child_id | string | Pseudonymous child identifier. Generated sequentially, never derived from anything real. | — |
commune | categorical | Commune where the screening took place. | Gonaives, Saint-Marc, Dessalines, Gros-Morne, Ennery, Marmelade, Anse-Rouge, Terre-Neuve, Saint-Michel, Verrettes, Desdunes, L-Estere |
screening_date | date | Date the child was screened during the community campaign. | — |
age_monthsmonths | integer | Age of the child in completed months at screening. | — |
sex | categorical | Sex of the child as recorded on the screening register. | f, m |
muac_mmmm | integer | Mid-upper arm circumference measured in millimetres. | —-99 |
oedema | boolean | Whether bilateral pitting oedema was present at screening. | true, false |
outcome | categorical | Screening decision recorded by the community health worker. | no-action, referred-tsfp, referred-otp, referred-sc |
Provenance
Data quality
- Every record is generated by a seeded script. Nothing here describes a real child, and these figures must never be cited as real prevalence.
- MUAC is recorded in millimetres. The WHO cut-offs this dataset is built around are 115 mm for severe acute malnutrition and 125 mm for moderate.
- Missing MUAC is coded -99, not left blank. Reading the column as a number without handling the code drags the mean down by several millimetres and understates the caseload.
- Applying the cut-offs reproduces a global acute malnutrition rate near 8.6% and severe acute malnutrition near 2.2%, ranging from about 5% to 15% by commune. The worst commune crosses the 15% emergency threshold; the best does not.
Known issues
- About 5% of records are missing age_months overall, but roughly 60% are missing in the Gros-Morne campaign week of 10-14 June. Dropping incomplete rows removes one commune far more than the others, which shifts the ranking.
- Ennery and Desdunes recorded oedema inconsistently in the first quarter: some rows are blank, others use Y and N rather than true and false.
- Twelve records are exact duplicates sharing a child_id, from forms submitted twice on a poor connection. Six more are the same child re-registered under a new id, findable only by matching on commune, date and measurement.
- Seven records hold a MUAC left in centimetres and never converted, appearing as implausible values below 40.
- Ten records carry a referral outcome but no MUAC value. This is not an injected defect: it is where the 2.3% of unmeasured children happens to overlap the children already marked for referral, which is exactly how the pattern arises in a real register when the decision column and the measurement column are filled by different people.
- Nine records carry an outcome that contradicts their own MUAC value, which is what a mis-tapped tablet screen produces.
Worked examples
Python
Global acute malnutrition rate by commune
Applies WHO MUAC thresholds, computes GAM and SAM rates by commune, and plots the ranking with confidence intervals.
Screening coverage over the campaign year
Aggregates screenings per month and commune to show where campaign coverage dropped.
R
Global acute malnutrition rate by commune
The same GAM and SAM calculation using dplyr and ggplot2, producing an equivalent ranked plot.