cassionData Analysis

Course · Intermediate · Indicators and Measurement

Routine Data and DHIS2

Work with an aggregate health information system — its data elements, org unit hierarchy and period logic — and answer the question that always follows: what exactly was counted?

PythonR14 h8 lessons

What you will be able to do

  • Read a DHIS2 extract as the database it came from — data elements, category combinations, org units and periods — rather than as an unexplained spreadsheet
  • Aggregate up an org unit hierarchy without double-counting a facility that moved between districts
  • Treat reporting completeness and timeliness as denominators, and say what a coverage figure means when a quarter of units are silent
  • Pull an extract through the Web API with a script that runs every month unchanged and records what it asked for
  • Reconcile a routine aggregate against a survey estimate of the same thing, and decompose the gap into measure and selection
  • Answer what was counted, by whom, over what period, for any figure the system produces

Standards and methodologies

UNICEF indicator definitionsSustainable Development Goals (SDG)Results-Based Management (RBM)

Most of the numbers this sector reports come out of an aggregate health information system, and in most countries that system is DHIS2. Every earlier course in this programme has borrowed from one — the vaccination extract has appeared in five of them — without ever explaining where it came from.

This course explains it. Not as software training: you will not be clicking through an interface. As the data model underneath the export, because knowing that a value is a data element crossed with a category combination, attached to an org unit, in a period, from a dataset, is what turns an unexplained spreadsheet into something you can defend.

The question the course is built around is the one that follows every routine figure ever presented: what exactly was counted? Answering it needs four things the export usually does not carry — which data element, which org units, which period logic, and how many of the units that should have reported did.

The worked examples run on the DHIS2-shaped vaccination extract: 38 facilities, twelve months, six antigens, and 642 of its 2,736 facility-months carrying no report at all. And the course ends on a comparison that has three real answers to one question — acute malnutrition measured at 8.7% by the routine screening register, 11.4% by a household survey using the same measure, and 14.9% by a SMART survey using a different one.

Both Python and R throughout, with the API examples in Python because that is where most extraction scripts in this sector live.

You should have done Data Quality Assessment, which already teaches reporting completeness and timeliness as indicators. This course does not repeat that; it shows how the system computes them, and what it does not tell you.

Start the course — What a value in DHIS2 actually is

Practice

Reading the lessons is not the same as having done the work. Each of these applies the course to a dataset it did not teach on.

Progress

Enrolling is free and only records your progress — the whole course is readable without it.

Take it offline

The whole course as a typeset PDF — every lesson, every code example, the data dictionary and the indicator definitions. Generated from the same source as this page.

The LaTeX source ships alongside each PDF, so an organisation can rebrand the handout or fold a lesson into its own training pack.