Source before summary
Keep the original file, source URL, published label, retrieved time, and content fingerprint.
200 City-hub sources and 11 outside public feeds are preserved, normalized, connected, and tested in separate scopes. The latest audits passed 32 of 32 checks.
Keep the original file, source URL, published label, retrieved time, and content fingerprint.
Budget, cash payments, and accounting actuals stay separate unless a record supports the relationship.
Payee aliases require a disclosed rule; raw published names always remain recoverable.
Date conflicts, duplicate files, broken totals, and schema changes enter a public review queue.
Pattern rules publish the calculation, denominator, exceptions, and non-allegation language.
Every headline can be rebuilt from accepted rows with a documented query and coverage window.
Each step creates evidence that can be inspected later.
The scheduled collector runs every day, with a deeper source refresh each week. Each dataset keeps its own cadence, URL, fingerprint, record count, and coverage boundary.
Daily source checks; weekly full City-file retrieval; monthly and annual feeds only change when their publishers do.
All source adapters finish before a new public snapshot replaces the last trusted one.
City corpus, outside feeds, bond market, and rendered routes must each pass their audit.
Successful refreshes open a dated data change for review; partial or failed runs do not reach deployment.