About the data
CampaignHQ is a static site. Everything it shows was generated from the FHIR registry ahead of time and shipped as parquet and PMTiles; the browser runs DuckDB (WebAssembly) over those files. Nothing here talks to a server at runtime.
Last refresh
Location registry
Campaign rows
How the data gets here
- The registry is FHIR. Campaigns are
CarePlans (one umbrella per round, one per state, one per LGA, linked bypartOf), protocols arePlanDefinitions, planning denominators areGroups, and places areLocations with GRID3 boundaries and settlements. - SQL-on-FHIR ViewDefinitions in the ICR Implementation Guide say how those
resources flatten to tables.
IcrCampaignCalendargives one row per campaign per geography;IcrTargetPopulationthe denominators;IcrCoverageandIcrCoverageStratathe results (administrative, survey and LQAS MeasureReports and their disaggregations). Any conformant runner produces the same tables. tools/warehouse/refresh.shexports the resources from the server, runs the views (octofhir-sof), writes hive-partitioned parquet underdata/parquet/, runs kiln for the location GeoParquet, and builds the admin-boundary PMTiles.- This site's data loaders (
src/data/*.sh) join those tables with DuckDB at build time into the two parquet files the pages query, plus the tiles.
What is demo data
The Nigeria calendar (Bauchi, Kano, Jigawa, Gombe, Yobe; 2022–2027) is synthetic
but realistic: polio rounds, measles campaigns and NTD MDAs shaped on published
schedules and endemicity, with populations projected from the 2006 census. It is
tagged nga-demo in the registry. The four Sierra Leone campaigns are the IG's
worked examples. See tools/campaign-builder/README.md for what is sourced and
what is assumed.
Results are synthetic too: one reconciled administrative coverage report per completed LGA round (tallies ÷ planning denominator, so above 100 % where the census projection undercounts a fast-growing LGA), daily realtime reports for the round running now, state-level post-campaign cluster surveys for the vaccination campaigns, LQAS lots for polio and MR, and NTD coverage evaluation surveys in a sample of LGAs. About 7 % of rounds have no report, because that is what real dashboards face. Individual delivery events are not loaded yet; when they are, they reconcile against these aggregates.