cassionData Analysis

Dataset

WASH household survey — 2024

2,403 synthetic household interviews across three districts covering water source, collection time, quantity, water quality testing, sanitation and handwashing — enough to place every household on the JMP service ladders.

syntheticWASHKoboToolboxHousehold water accessWater quality testingChlorination monitoringLatrine coverageOpen defecationHandwashing facilities
Rows
2,403
Variables
15
Period
2024-04 to 2024-06
Licence
CC BY 4.0
Completeness
99%

Standards and methodologies

Sphere StandardsCore Humanitarian Standard (CHS)Sustainable Development Goals (SDG)

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

VariableTypeDescriptionAllowed values
household_idstringPseudonymous household identifier, unique except where a household was surveyed twice.
districtcategoricalDistrict the household was surveyed in. Recorded inconsistently by one enumerator team.
communitystringCommunity code within the district, in the form XX-01.
survey_datedateDate of the household interview.
household_sizeintegerNumber of people usually eating and sleeping in the household. The denominator for litres per person per day.
water_sourcecategoricalMain source of drinking water. Improved and unimproved sources are mixed here on purpose; classifying them is the exercise.piped-into-dwelling, piped-into-yard, public-tap, borehole, protected-well, protected-spring, unprotected-well, unprotected-spring, tanker-truck, surface-water
round_trip_minutesminutesintegerRound-trip time to collect water including queueing. Zero for water on premises. The JMP basic/limited split is 30 minutes.
litres_per_person_daylitresfloatEstimated household water use divided by household size. The Sphere minimum standard is 15 litres per person per day.
water_treated_at_homebooleanWhether the household reports treating its drinking water.true, false
free_residual_chlorine_mglmg/LfloatFree residual chlorine measured at the point of collection. The operational target range is 0.2 to 0.5 mg/L. Blank where not tested.
ecoli_cfu_100mlCFU/100mLintegerE. coli count per 100 mL. Blank where not tested. JMP risk classes are <1 safe, 1-10 low, 11-100 moderate, >100 high.
sanitation_facilitycategoricalType of sanitation facility the household uses.flush-to-sewer, flush-to-septic, vip-latrine, pit-latrine-with-slab, pit-latrine-no-slab, hanging-latrine, open-defecation
shared_sanitationbooleanWhether the facility is shared with other households. A shared improved facility is limited service, not basic.true, false
handwashing_facilitycategoricalHandwashing facility observed by the enumerator, not reported by the household.fixed-facility, mobile-facility, no-facility
soap_observedbooleanWhether soap or a cleansing agent was present at the facility. Basic hygiene service requires both a facility and soap.true, false

Provenance

Source
Synthetic, generated by scripts/generate/wash_household_survey_2024.py
Collection method
Simulated household questionnaire with enumerator observation and point-of-collection water testing on a subsample
Geography
Three anonymised districts, eighteen communities
Period
2024-04 to 2024-06

Data quality

  • Fully generated. No real household is described and no community code refers to a real place.
  • The JMP drinking-water ladder is not a property of the source alone. An improved source more than 30 minutes round trip is limited service, not basic — about a quarter of these households sit on limited service for that reason alone, and an analysis that classifies on source type only will miss every one of them.
  • Water quality is tested on roughly a third of households, so quality indicators have a smaller denominator than access indicators. Reporting both against the full sample overstates coverage of testing.
  • Reference figures for a correct analysis: about 13% of households fall below the Sphere minimum of 15 litres per person per day, about 39% exceed a 30-minute round trip, open defecation is about 13%, and basic hygiene service is about 34%.

Known issues

  • One enumerator team wrote the Nord-Ouest district name four different ways, including lowercase and unhyphenated variants. Grouping by district without normalising produces six districts instead of three and quietly splits the worst-performing one.
  • About 530 households report treating their water but have no chlorine measurement recorded. This is a cross-field inconsistency, not a missing-at-random value, and dropping those rows removes households that treat their water more often than average.
  • Eleven records hold collection time in hours rather than minutes, and fourteen hold litres for the whole household rather than per person. Both look plausible in isolation and only stand out against household size.
  • Nine households were surveyed twice on different days under different identifiers.

Worked examples

Python

JMP service ladder classification

Places every household on the drinking water, sanitation and hygiene ladders, then reports coverage by district with the disaggregation the SDG indicators require.

Described here; the notebook is still being written.

Water quality against chlorination

Tests whether free residual chlorine above 0.2 mg/L predicts E. coli risk class, and quantifies how much of the sample can actually answer the question.

Described here; the notebook is still being written.

R

JMP service ladder classification

The same three ladder classifications built with dplyr case_when, producing an equivalent coverage table.

Described here; the notebook is still being written.