Home / Sources
Source inventory
Method & sources explains what Police Census is and how it reads. This page is the machine-truth companion: a live row count and the latest load status for every one of the 11 datasets behind the site, read straight from the database at request time — it cannot say something the database does not currently hold.
| Dataset | What it is | Live rows | Source | Last ingest | Gate |
|---|---|---|---|---|---|
| Agencies agencies | The agency spine: identity, ORI, type, county, coordinates and NIBRS status for every law enforcement agency on the FBI’s register. A full refresh and upsert on every run. Puerto Rico, the two Virgin Islands district agencies (St. Thomas and St. Croix) and Guam were added 2026-08-30 — the register held them all along, this table simply had not asked for them yet. | 19,625 | FBI Crime Data Explorer | ok 2026-08-30 09:18 19,625 written | A guard rejects any state code returning zero agencies unless it is on an explicit expected-empty list, so a broken fetch cannot pass as "no agencies here". |
| Crime & clearances agency_crime | Per-agency reported offence and clearance counts from CDE. Not yet loaded site-wide. | 2,274,444 | FBI Crime Data Explorer | ok 2026-08-25 16:26 2,274,444 written | scripts/test-guard.ts proves the ingest guard (agencySeries) rejects a state- or national-level series being written in as if it were a single agency’s — the exact mistake that would silently inflate one department’s numbers with its whole state’s. |
| Workforce agency_employment | Officer and civilian headcount by year, and the population the agency itself reports for, 1960–2025. | 736,459 | FBI CDE, bulk employment file | ok 2026-08-25 15:02 736,459 written | No dedicated verbatim gate. Values are the FBI’s own reported series, loaded by a full refresh; nothing here is estimated or interpolated. |
| Military surplus (1033 programme) agency_equipment | Equipment transferred to police under the DoD 1033 programme. DLA does not publish an ORI for recipients, so records are matched to agencies by name — 88.9% matched. An unmatched record is left unattached rather than assigned to a guess. | 75,087 | DLA Law Enforcement Support Office | ok 2026-08-25 16:03 75,087 written | match_method records how (or whether) each row was matched, so a bad matching rule can be found and undone later. See /equipment for the live match rate. |
| Deaths during encounters deaths | Deaths recorded during police encounters, 2013 onward, used with permission. Police Census publishes counts only — the person’s name is never rendered. | 15,550 | Mapping Police Violence | ok 2026-08-25 16:30 15,550 written | scripts/gate-no-name-leak.sh scans the actual served HTML of the agencies with the most deaths on record for a real victim name, and self-tests its own detector so a broken check cannot silently pass. |
| Federal funding grants | COPS Hiring, Byrne JAG and DNA Backlog Reduction awards since October 2019, reported at state and programme level only. The recipient of a federal award is usually a city, not a police department — only 2.6% of awards name a law enforcement agency directly, so no page on this site attributes an award to a specific department. | 13,585 | USAspending.gov | ok 2026-08-25 16:35 13,585 written | Structural, not a script: the query layer has no per-agency grants function, so a per-agency figure cannot be printed even by mistake. |
| Legal authorities legal_authorities | US Code sections and CFR parts that give the legal basis for something on the site. | 47 | govinfo.gov (US Code), eCFR (CFR) | ok 2026-08-25 20:34 32 written | scripts/gate-legal-verbatim.sh refetches every row from its live source and asserts a token unique to that section is still present, plus that the stored body hash still matches the stored text — catching upstream drift and DB-side drift separately. |
| Case law legal_cases | Case-law citations tied to a specific context on the site, e.g. Graham v. Connor for use-of-force. | 31 | CourtListener, bulk citation index | failed 2026-08-25 20:00 30 written | Every row requires human_verified before a query can return it. A citation such as 488 U.S. 1001 can resolve to more than a dozen different CourtListener clusters, so nothing reaches the site without a human confirming which cluster is the actual case. |
| Federal oversight federal_oversight | DOJ Civil Rights Division pattern-or-practice matters (34 U.S.C. § 12601) against named agencies. | 28 | DOJ Special Litigation Section | ok 2026-08-26 14:27 28 written | scripts/gate-oversight-verbatim.sh refetches DOJ’s own case list and reports a LABEL CHANGE (e.g. Enforcement → Closed) distinctly from a row DOJ has removed entirely — the two look the same in a naive diff but mean very different things to print about a named department. Every row also requires human_verified, same rule as case law. |
| UCR/NIBRS participation state_participation | Reporting participation to the FBI’s UCR/NIBRS programme, by state and year. | 3,659 | FBI CDE participation file | failed 2026-08-30 09:14 | State-level only by construction: this table carries no ORI and no agency rows, so it structurally cannot be reported per-agency. |
| Officers assaulted leoka_assault | Assaults on officers by year and weapon type, 1995–2025. The source file carries no ORI, so agencies are matched by state and name — 78.7% matched. The FBI’s own officers-killed columns are empty on every row of the file as pulled; this table reports assaults only, and no page on this site states an officers-killed figure. | 381,145 | FBI LEOKA bulk file | ok 2026-08-30 10:25 0 written | match_method records how each row was matched, the same reversible pattern as the 1033 equipment table; an unmatched row is left ori = NULL rather than guessed. |
Integrity rules, in brief
Every gate above runs against the live site or the live upstream source, not against a fixture that can go stale — several of them exist specifically because a source that returned a clean 200 turned out to be a soft-404, a paywall interstitial or a relabelled case. A build-time gate also refuses to ship any page carrying a degraded-read message baked into it, because the build container has no database connection at build time and would otherwise freeze that failure into the deployed image. Datasets marked human_verified above default to false: a row is invisible to every query until a person confirms it, not once an automated match merely looks plausible.
If a number on this page or elsewhere on the site looks wrong, see Corrections for how to report it and how every published fix is logged.