Aadhaar enrolment numbers do not mean what they look like
We started where everyone starts, plotting enrolment counts by district, and the maps were useless. Large districts looked busy, small districts looked quiet, and neither told us anything about whether the system was working.
The reframe was to stop counting people and start measuring behaviour. Three ratios did the work:
- enrolment rate — enrolments over demographic population
- biometric activity ratio — biometric updates over population
- identity volatility — biometric updates over enrolments
That last one is the interesting one. A district where people enrol once and never come back looks very different from a district generating repeated biometric updates against the same base. High volatility means churn: failed authentications, repeated corrections, people returning to fix an identity that should already work.
Most of the actual work was not modelling, it was cleaning. Three datasets, roughly 1.0M, 2.0M and 1.8M rows, joined on (date, state, district, pincode). Mixed date formats with day-first ambiguity. State names spelled several ways, plus renamed and legacy states to merge. District names carrying unicode noise, numeric artefacts and historical spellings, some filed under the wrong state entirely. Monthly population totals that drop, which is not demographics but administrative correction, and which quietly wrecks any growth metric computed naively.
For prediction we binned future identity volatility into Good, Moderate and Bad, and trained a Random Forest on totals plus month. It landed around 48% accuracy and 0.43 macro F1 — honest numbers rather than good ones. It separates the extremes and struggles in the middle, which is the class you would most want to catch early. We wrote that limitation into the report instead of quietly reporting the accuracy on the easy classes.
What it did surface: districts like Gadchiroli, Hingoli, Yavatmal and Raigarh, with extreme volatility and a high probability of future Bad stress, none of which stand out at all if you rank by enrolment volume.
The takeaway I keep returning to: choosing the denominator was the entire analysis. Everything after that was cleanup.