How the nightly check works
1. A random sample of published projects is drawn across every city — different projects every audit cycle.
2. For each one, the original record is fetched live from the city's own API or document — using an independent checker that deliberately reuses none of the pipeline's parsing, so a pipeline bug cannot hide itself.
3. Dollar value, storey count and address are compared field by field. Every mismatch is printed, investigated, and either fixed or documented — never deleted.
4. Separately, coverage tests ask the opposite question: does the city hold anything that looks like our work that we failed to pick up?
Don't take our word for it — run your own check, right now
This button picks random projects off the site and has your browser fetch the original record straight from the city's own servers, live, and compare the fields in front of you. We never touch the request — it's between you and the city.
Works for the seven cities whose systems accept direct browser requests. Toronto's doesn't — it's covered by the nightly check above.
Coverage — are we missing anything?
| Source | Test | At the city | On our site | Missing |
|---|
What this does not prove
- This proves we copy the cities correctly. It cannot prove a city's own record is right — where we've caught cities' typos, they're documented.
- "Still alive" is the record's claim, not ours. A listed application can die quietly; we show the record's status and its date.
- Where a city publishes no structural description, our concrete-vs-wood read is an inference — it says so on the project, with its reasoning and confidence.
- Dollar values are permit-declared construction values, useful for ranking — not contract values.
Every project on the site links to the original city record, so the fastest check is the one you run yourself: open any project, click the source link, compare.