How we verify Los Angeles data
Every number on our Los Angeles pages comes from Los Angeles Open Data checkbook (data.lacity.org), the city's own transparency portal. This page is the standing verification report: what we hold, the quality gates every load must pass, and the reconciliation math against the city's own published totals, including the part that doesn't match.
The chain of custody
Each record travels the same six steps, and every step leaves evidence:
- The city records a payment in its accounting system.
- The city publishes it in bulk on Los Angeles Open Data checkbook (data.lacity.org).
- We fetch the official bulk file; every fetch is logged with a timestamp, and failures are recorded too.
- The city's row is archived exactly as received and fingerprinted. The archive is append-only: records are never edited or deleted, even when the city overwrites its own history.
- Names are normalized with deterministic rules (see methodology); the original name is kept alongside, and quality gates run on every load.
- Pages are published from a versioned release; the version appears at the foot of every page.
Quality gates
No Los Angeles release goes live unless all four gates pass. Current status:
| Gate | Result |
|---|---|
| Extraction integrity | Published payment facts re-derived from the raw archive match to the penny: identical row counts and dollar sums. |
| No orphan payments | Every payment line resolves to a vendor and an agency record. Zero orphans. |
| Duplicate rate | 0.0000% duplicates on the natural-key fingerprint across 10.7 million payment lines. |
| Portal reconciliation | Our raw read matches the portal's own published row counts exactly, per fiscal year, at snapshot time (details below). |
The reconciliation math, full checkbook, fiscal years 2012 through 2026
Los Angeles publishes its checkbook as two datasets on the city's open data portal: a frozen archive for fiscal years 2012 through 2017 and a weekly-refreshed dataset from fiscal year 2018 on. At every fetch we compare the rows we read against the portal's own per-year counts; the build snapshot matched exactly.
Here is the comparison against the city's own published figures, to the exact row:
| Los Angeles open data portal, checkbook dataset row counts at snapshot (both datasets, all fiscal years) (captured Aug 6, 2026) | 10,750,816 |
| SpendLedger full checkbook, fiscal years 2012 through 2026 record count | 10,750,816 |
| Difference: 0.000%, within the documented 0% tolerance | PASS |
The rows we read match the portal's own counts exactly, per fiscal year, and the dollar sums re-derived from our archive are penny-exact against extraction. We publish 10,750,814 of those payment lines after the two documented exclusions below. A dollar-level comparison against the city's own Checkbook L.A. application is pending manual capture and will be added to this page when recorded; the comparison must also match scope, because Checkbook L.A. headline figures cover the city's core financial system only while our archive also carries the Department of Water and Power, Harbor, and Airports systems.
Known limitations
- Coverage spans two city datasets: a frozen archive (fiscal years 2012 through 2017) and a weekly-refreshed dataset (fiscal year 2018 on). The two use different field vocabularies; we reconcile them at extraction and preserve the originals untouched in our archive.
- The city revises current-year rows in place, including flipping a payment's status to cancelled after publication. We re-pull the current fiscal year on refresh and keep the prior states in our archive even after the city overwrites them.
- Records are invoice distribution lines across four city financial systems (the core system plus Water and Power, Harbor, and Airports). Negative cancellation and adjustment lines are real records and are kept, so totals net correctly.
- The city's Checkbook L.A. application reports headline totals from the core financial system only; figures here span all four systems and are therefore larger. Exact side-by-side figures will be recorded on this page at release audit.
- Two rows across 10.71 million are excluded and counted: one carrying a source-mangled payment year and one empty row. Both remain in our raw archive.
- Payees the city itself masks with privacy placeholders are withheld by name here as well, as are individual people paid under the city's pooled settlement accounts; their dollars remain in agency totals.
Check us yourself
Beyond the automated gates, we verify random individual payment lines against the city portal's own dataset views by vendor name, date, and amount. A single mismatch is treated as a stop-the-line event for the source. You can do the same: pick any payment on this site and look it up on the city's own portal by vendor name and date. If the portal disagrees with us, we want to know.
Machine-readable version of this report: /trust/la/provenance.json. Report content last reviewed Aug 24, 2026.