We rebuilt eight years of Berkeley's housing-completion record from raw public permits — independently of the city's official filings — then examined every line of disagreement between the two records. This page is what we found.
As of 2026-07-03i · baseline reconciliation_baseline_2026-07-03i.json ·
berkeleybuild.com
The state's public database (HCD/CKAN) says Berkeley completed 4,022 units. But we checked that database against the city's own published PDF filings, year by year, row by row — and the state copy drops real completions the city filed (an entire 44-unit building among them) and inflates others. The adjudicated figure of 4,099 is the per-row union: state database, corrected by the city's own documents. The recent years (2022, 2024, 2025) reconcile perfectly; the mess lives in the early filings.
| Finding | What happened |
|---|---|
| The double-submission | Berkeley's CY2025 report was accidentally submitted twice to the state (474 rows where ~126 belonged); later cleaned upstream. We keep dated snapshots proving it. |
| A 41-unit building's completion never filed | 2435 San Pablo Ave (affordable co-living, completed March 2025): the city filed its building permit in 2022, then omitted the completed building's certificate from the CY2025 report. |
| A whole building missing from the state copy | The Overture (1812 University, 44 units) — in the city's CY2021 PDF, absent from the state database. The Den (2510 Channing) likewise, and under-counted 36 vs its actual 40. |
| A credit for an eliminated unit | 1023 Cragmont: the city counted a JADU whose own revision permit states "Proposed JADU has been eliminated." |
| Double-crediting mechanisms (five distinct classes) | Units credited at permit issuance and again at completion; utility-meter permits re-crediting the units they serve; a zoning approval counted as a completion; the same permit credited in two consecutive years; a garage/workshop credited as a single-family dwelling. |
| Direction | What it is |
|---|---|
| We count, the city's record doesn't (~150u) | The unfiled 41-unit certificate (2435 San Pablo); The Den's 40 (they logged 36, and the state copy dropped even that); conversions and legalizations whose completion the state copy never carried; buildings counted from their own architectural documents. |
| The city counts, we don't (~20u) | The five error classes above (8u, with receipts); designation changes (existing units relabeled as ADUs) that create no net-new housing; a short-term-rental conversion (not permanent stock); one three-lot subdivision entitled but never built. |
Watch items: the city may revise its CY2025 filing to add the missing certificate — our revision monitoring will catch it, and these numbers will converge further.
Every count traces to a primary document: the permit's own text, the building's architectural plan set, the developer's records — never the city's report (which we use only to know which buildings to examine). Every correction lives in a versioned, public adjudication ledger (190 entries, each with its evidence), and every change appends a new timestamped baseline — nothing is ever silently edited. The entire pipeline — raw permit files to the numbers on this page — rebuilds from scratch in about twenty seconds, and re-verifies itself against the live record after every change:
JN-A (ingest) → JN-B (dedup) → JN-C (classify) → JN-F (corrections) → JN-E (reconcile)
The notebooks, the ledger, the baselines, and every audit memo — including our retractions — are in the public repository. The methods are city-agnostic; the Berkeley-specific knowledge is data files. The curriculum teaches you to do this for your own city.
Generated 2026-07-03i by scripts/v4/build_audit_page.py from the
baseline and ledger — the figures on this page are derived, not typed. 4 formerly-held
items resolved with document provenance; 0 items currently held.