Back to the lesson·Lesson 8 of 8·Reading it against something else
What exactly was counted?
The same deck as the downloads, rendered as a page. Start the slideshow to present it full screen — arrow keys or a click advance one slide, Escape leaves.
What this lesson covers
- The question
- Four parts
- The provenance block
- Interrogating a figure you did not produce
- What the system cannot tell you
- Where this course leaves you
- Where module 3 leaves you
Speaker notes
Four questions, a provenance block that answers them, and a worked interrogation of one figure from raw value to published percentage. The question this course exists to make answerable.The question
- Somebody presents a slide: penta3 coverage, 78%.
Speaker notes
Somebody presents a slide: penta3 coverage, 78%. Somebody else asks what exactly was counted. It is not a hostile question and it is not a technical one. It is the question the whole of module 2 and module 3 have been building toward, and a figure that cannot answer it is a figure that cannot be defended, however carefully it was computed.Four parts
- What was counted? — The data element, its aggregation operator, and whether any category disaggregation was collapsed…
- Where? — Which org units, at which level, on which version of the hierarchy
- When? — Which periods, by activity date or entry date, and how complete they were at extraction
- Out of what? — The denominator, its source, its year, and how many of the expected reporting units contributed
Speaker notes
What was counted? The data element, its aggregation operator, and whether any category disaggregation was collapsed on the way out. Where? Which org units, at which level, on which version of the hierarchy. When? Which periods, by activity date or entry date, and how complete they were at extraction. Out of what? The denominator, its source, its year, and how many of the expected reporting units contributed. Each of those has been a lesson. Together they are the block below.The provenance block — Example (cont.)
Figure Penta3 coverage, district, 2024 Value 77.5% What Data element PENTA3_DOSES ("Penta 3rd dose administered"), aggregation operator SUM over periods and org units. No category disaggregation in the extract; the element has none configured. Where 38 facilities at org unit level 4, hierarchy as pinned in extracts/2026-07-28/raw/organisationUnits.json. No facility was reassigned during 2024. When 202401 to 202412, by activity period. Analytics tables last run 2026-07-27 23:14 UTC, so late entry up to that point is included. Out of what Surviving infants, MoH catchment estimates 2024, projected from the 2015 census at 2.4% annual growth. Denominator pro-rated to the months each facility reported: 9,238 of aThe provenance block — Example (cont.)
full-year 11,774. Completeness 349 of 456 facility-months reported (76.5%). August 29%, September 45%. The figure is coverage among reporting facility-months and is a lower bound on district coverage. Extract extracts/2026-07-28/, manifest.json, script extract.py 1.3The provenance block
- Attach it to the figure, not to the report — A slide with the number and a footnote pointing at the block is what…
Speaker notes
Seven lines and a heading. It takes ten minutes the first time and two thereafter, because six of the seven come straight out of the manifest and the metadata the extract already pulled. Attach it to the figure, not to the report. A slide with the number and a footnote pointing at the block is what survives being forwarded.Interrogating a figure you did not produce
- 1. Is it a data element or an indicator? — If an indicator, ask for the numerator and denominator expressions
- 2. What is the denominator's year? — A 2024 numerator over a 2019 projection is common and understates coverage by…
- 3. What was the reporting rate? — Below 90%, the figure is a lower bound
- 4. Which org unit level? — A figure that mixes levels double-counts; a facility-level coverage figure is unreliable for…
- 5. Was the period complete when it was pulled? — A recent month is provisional, and a figure quoted from a pull three…
- 6. What is it being compared to? — Most misuse is comparison — against a different measure, a different denominator, or…
Speaker notes
More often you are handed a number and asked whether it can be used. Six questions, in the order that eliminates the most possibilities fastest. 1. Is it a data element or an indicator? If an indicator, ask for the numerator and denominator expressions. Most disagreements end here. 2. What is the denominator's year? A 2024 numerator over a 2019 projection is common and understates coverage by whatever nine years of growth amounts to. 3. What was the reporting rate? Below 90%, the figure is a lower bound. If nobody knows, that is the answer to whether it can be used. 4. Which org unit level? A figure that mixes levels double-counts; a facility-level coverage figure is unreliable for the catchment reasons lesson 2 gave. 5. Was the period complete when it was pulled? A recent month is provisional, and a figure quoted from a pull three days after month end will not reproduce. 6. What is it being compared to? Most misuse is comparison — against a different measure, a different denominator, or a period with a different reporting rate.Interrogating a figure you did not produce — In Python
def interrogate(figure): return { "type": figure.get("element_or_indicator"), "denominator_year": figure.get("denominator_year"), "reporting_rate": figure.get("reporting_rate"), "org_unit_level": figure.get("level"), "period_complete_at_extraction": figure.get("period_closed"), "comparable_to": figure.get("comparable_to"), }Interrogating a figure you did not produce — In R
interrogate <- function(figure) { figure[c("element_or_indicator", "denominator_year", "reporting_rate", "level", "period_closed", "comparable_to")] }Interrogating a figure you did not produce
- A blank in any of those is the finding — You are not asking somebody to justify themselves; you are establishing…
Speaker notes
A blank in any of those is the finding. You are not asking somebody to justify themselves; you are establishing whether the number can carry the decision it is about to be used for.What the system cannot tell you
- Why a facility stopped reporting — The system records that it did
- What the data entry clerk understood the field to mean — A column labelled "cases" collects whatever a person believes…
- What happened outside the catchment — Routine data sees what came to the service
Speaker notes
Three things no amount of API work recovers, and each has to come from a person. Why a facility stopped reporting. The system records that it did. The reason — a staff departure, a broken tablet, a security incident, a supervisor who left — is in somebody's head and it decides whether the gap is a data problem or a service problem. What the data entry clerk understood the field to mean. A column labelled "cases" collects whatever a person believes a case is. Two facilities can be internally consistent and mean different things, and that is the definition problem the indicator course exists for. What happened outside the catchment. Routine data sees what came to the service. The previous lesson decomposed exactly what that excludes.What the system cannot tell you
The system is a record of what was reported, not of what happened. Every figure it produces inherits that, and stating it once in a report is worth more than any additional decimal place.
Where this course leaves you
- You can read a DHIS2 extract as the database it came from, aggregate up a hierarchy that moves, treat completeness as a denominator, pull the same extract every month with a manifest that says what you asked for, place a routine figure beside a survey estimate and explain the gap, and answer what was counted for any number the system produces.
Speaker notes
You can read a DHIS2 extract as the database it came from, aggregate up a hierarchy that moves, treat completeness as a denominator, pull the same extract every month with a manifest that says what you asked for, place a routine figure beside a survey estimate and explain the gap, and answer what was counted for any number the system produces.Where module 3 leaves you
- Three courses.
Speaker notes
Three courses. Indicator Design and the LogFrame defined the number. Survey Analysis, Sampling and Weighting put an interval on it. This one traced it back to the system that produced it. Together they are the answer to the platform's own standing instruction — always state how an indicator is calculated, what its denominator is, and what decision it informs — for the two kinds of data this sector actually has: a survey and a routine system. Module 4, Sector Analysis, is next and is the largest in the spine at six courses. It applies all of this to the sector you report on, starting with Nutrition Analysis: CMAM and SMART — the WHO growth standards, the SMART plausibility report, the Sphere performance thresholds, and coverage estimation, which is where the difference between admissions over expected caseload and actual coverage finally gets the twenty-four hours it needs.