Citizens' Accountability LedgerWho owned the mess? 25 years, every party, on the record

Take it and use it

Download
the data.

A ledger nobody can cite in bulk is an argument rather than a record. Everything on this site is here as two files, under a licence that lets you republish it, chart it, check it or argue with it. If you find an error in the data, that is a correction we want.

CSV 84 rows, one per case, 22 columns. Nested fields are pipe-joined for spreadsheets. JSON The full structure: sources with tiers and archive links, office-holders, departures, estimates. Atom The newest thirty cases, for following the ledger from a feed reader.

Licence

Creative Commons Attribution 4.0. Republish it, chart it, load it into a paper, build something else on it. The only condition is attribution: credit the Citizens' Accountability Ledger and link to https://whoisresponsible.xyz so a reader can check the record for themselves.

The sources are not ours to license. Each citation points at the publisher who holds it, and their terms are theirs.

What you are getting, and what you are not

Field definitions

FieldWhat it means
idPermanent identifier. Also the URL: /case/<id>/. Never reused, never renumbered.
display_noChronological position, oldest = 1. Derived at build time, so it changes when a case is inserted. Cite the id, not this.
date_textThe date as the record states it, which is sometimes a range or a report date rather than a day.
sort_keyYYYYMMDD integer used for ordering. Where only a month or year is known, the day is set to 01.
severityred = no accountability recorded. amber = partial, reversed, contested or unresolved.
cost_inr_crore_estimateCrore rupees, and an estimate. Present on 28 of 84 cases; absent means unmeasured, not zero.
deaths_estimatePresent on 25 of 84 cases. Same caveat: absent means unmeasured.
primary_source_countTier-1 citations: court, audit, gazette or official publication. This is the number to check before quoting a case.
departuresOffice-holders who actually left over the case, with level (union / state / official) and party at the time.

Cite the id, never the display_no. The id is frozen for the life of the case; the display number shifts whenever an older case is added.