Lesson 8 of 8
Unit · Learning
Four numbers a head teacher can act on
This course produced fourteen indicators on six denominators. A district education report needs all of them; a head teacher needs four, and choosing which four is the analytical work rather than the formatting.
Count the denominators first
The habit this module has been building, one last time.
| Indicator | Denominator | n |
|---|---|---|
| Gross enrolment ratio | Children aged 6–11 (projected) | 963 |
| Net enrolment ratio | Children aged 6–11 (projected) | 963 |
| Over-age share | Primary enrolees | 1,052 |
| Average daily attendance | Marks made | 69,974 |
| Students attending 90%+ | Students with 20+ marks | 1,200 |
| Promotion, repetition, dropout | 2023 students excluding transfers | 1,255 |
| One-year transition | Students in both years | 1,103 |
| Learning, all comers | Students who sat each round | 741 / 658 |
| Learning, panel | Students who sat both | 585 |
Six different denominators and none of them is “students”. Two are projected populations, two are marks, three are student counts under different rules, and one is a subsample of a subsample.
import pandas as pd
denominators = pd.DataFrame([
("gross enrolment", "children aged 6-11, projected", 963),
("attendance, ADA", "marks made", 69974),
("attendance, regular", "students with 20+ marks", 1200),
("dropout", "2023 students, transfers excluded", 1255),
("learning change", "students who sat both rounds", 585),
], columns=["indicator", "denominator", "n"])
print(denominators)
# Build it in code, print it above the results, every time.
The district report
Education, four districts, school year 2023-24
ENROLMENT denominator: 963 projected 6-11
Gross enrolment ratio 109.2% 1,052 primary enrolees
Net enrolment ratio 97.4% 938 aged 6-11
Over-age for grade 36.4% grade 1 17.0%, grade 6 50.8%
Denominator is a 2015 census projected at 2.1% a year; about a sixth of it
is an assumption. 12 student-years were recorded twice and deduplicated.
ATTENDANCE February to April 2024
Average daily attendance 88.4% 69,974 marks
Students attending 90%+ of days 62.1% 1,200 students with 20+ marks
Students below 75% 9.5% 114 students
SCH07 and SCH18 were closed 11-29 March, fifteen school days. Their rates
are computed on the 45 days they opened. Counting the closure as absence
would report them at 66.1% and 63.9% and rank them worst.
RETENTION 2023 cohort, transfers excluded
Promotion (incl. completion) 78.4% n=1,255
Repetition 10.1%
Dropout 10.5%
One-year transition observed 88.5% n=1,103 in both years
Dropout is 19.5% among over-age students against 4.8% in-age.
Centre reports repetition at 7.4% against 12.0-12.3% elsewhere while
holding the highest over-age share; treat as a recording difference.
LEARNING literacy
Below minimum band 19.3% -> 11.1%
Advanced band 11.9% -> 26.1%
Items correct, panel 56.8% -> 63.7% +6.9 points, n=585
Items correct, all comers 53.1% -> 61.8% +8.7 points
Instruments were 40 and 50 items; raw scores are not comparable and are not
reported. 156 baseline students did not sit the endline and scored 39.3%
against 56.8% for those who did.
NOT REPORTED
Survival to the final grade. A reconstructed cohort gives 19.3% on
promotion and 40.3% on retention; neither is a completion rate. A true
cohort needs six years of the register or a household survey.
Safely managed anything. This is an enrolment register, not a survey of
children out of school — every denominator above counts children the
system already has.
The four numbers for a head teacher
A district report is not a school report, and handing a head teacher the table above is a way of ensuring nothing happens.
Four numbers, each attached to something a school can change.
| Number | Why this one | The action |
|---|---|---|
| Students below 75% attendance | A list, not a rate | Follow up this term |
| Over-age share in grade 1 | Late entry is fixable at intake | Registration campaign |
| Repetition rate, this school | A decision the school makes | Review the criteria |
| Below-minimum band share | The children not learning to read | Targeted support |
follow_up = (attendance_rates < 0.75).sum()
print(f"students to visit this term: {follow_up}")
# One number, one list, one action.
Notice what is not on that list. The gross enrolment ratio is a district planning number and a head teacher cannot move it. Average daily attendance is a system indicator and it hides exactly the children the school should visit. Both belong in the district report and neither belongs on a school’s wall.
Match the indicator to the decision-maker’s actual span of control, which is the same rule the WASH course applied to a mobile team and the protection course to a caseload — and the reason a single dashboard for every audience serves none of them.
The distinction the whole course was for
Enrolled, attending and learning are three different populations, and this course has produced a number for each on the same children.
funnel = pd.DataFrame([
("enrolled in primary", 1052),
("attending 90%+ of days", int(1200 * 0.621)),
("proficient or advanced in literacy", int(658 * 0.65)),
], columns=["stage", "students"])
print(funnel)
# Three stages, three denominators. Do not draw them as one funnel without
# saying so.
Those three cannot be chained into a funnel, because they are measured on different denominators over different periods — and drawing them as one is the single most common education dashboard error after the enrolment ratio.
What they do support is the sentence this course exists to make available: a system can enrol nearly every child of school age, have most of them present most days, and still leave one in nine unable to read at the minimum level — and each of those three facts needs its own instrument, its own denominator and its own caveat.
Module 4, in one paragraph
Six sectors, six vocabularies, one set of questions.
What did I count, over what? Person-time in epidemiology, visits in WASH, consenting cases in protection, marks in education. No two of them were “the population” and none of them was obvious.
What else could explain it? Age structure in a cholera outbreak, a closed road in a water district, a service opening in a protection caseload, a strike in a school register. In every case the absent thing was not a value and nothing in the file announced it.
What should someone do differently? The question that decides whether the first two were worth asking, and the one that decides which four numbers reach the person who can act.
What comes next
Module 4 is complete. Module 5 turns from describing programme data to modelling it — regression, forecasting and the dashboards that carry the result — and every course in it runs on the files this module has been building.