Every feed, and how fresh it actually is.
Checked live against each source when this page loads. Most vendors will not tell you when a dataset stopped updating, of seven candidates evaluated for this product, two had quietly gone dead years earlier while still serving hundreds of thousands of rows.
| Metro | Source | Newest record | Status |
|---|---|---|---|
| San Francisco, CA | data.sfgov.org/i98e-djp9 | · | STALE |
| New York City, NY | data.cityofnewyork.us/rbx6-tga4 | 2026-09-08 · 1d | CURRENT |
| Chicago, IL | data.cityofchicago.org/ydr8-5enu | 2026-09-08 · 1d | CURRENT |
| Los Angeles, CA | data.lacity.org/pi9x-tg5x | 2026-09-05 · 4d | CURRENT |
| Seattle, WA | data.seattle.gov/76t5-zqzr | 2026-09-08 · 1d | CURRENT |
| Austin, TX | data.austintexas.gov/3syk-w9eu | 2026-09-08 · 1d | CURRENT |
A feed with nothing newer than 21 days is treated as abandoned and excluded rather than quietly served as if it were live.
Coverage is a judgement, not a scrape.
It has to publish an API
A city portal that only offers a CSV download or a search form is not covered. Every metro on this page exposes a queryable endpoint, which is what makes a daily read possible without scraping a page that could change its markup next week.
It has to carry a description
A permit type alone is not enough to tell a re-roof from a ground-up build. A metro qualifies when its records carry the applicant’s own words about the scope of work, because that is the field every scoring rule actually reads.
It has to still be alive
Two datasets were dropped during evaluation for exactly this: one last updated in 2019, one in 2020, both still answering queries with hundreds of thousands of historical rows. A dead feed looks identical to a live one until you check the newest record.
What a missing city costs
A day or two of mapping, mostly. Each city names its fields differently, so adding one means writing a mapper onto the canonical record and confirming the address and value columns behave. Coverage follows demand, so tell us where you work.
Land-use hearing agendas
Only useful where a city legislates land use parcel by parcel. Cities that handle it administratively publish citywide policy items instead, which are not leads, so those feeds are configured but switched off rather than padding the count.
Austin City Council & Planning Commission
PARCEL-LEVELZoning and variance cases name a street address, so a scheduled hearing becomes an addressable lead before the decision is taken.
Granicus Legistar · client austintexas
Seattle City Council
POLICY ONLYLand-use matters here are citywide code amendments with no property attached. Enabled would mean noise, so it is not.
Granicus Legistar · client seattle
San Francisco Board of Supervisors
PARCEL-LEVELZoning and variance cases name a street address, so a scheduled hearing becomes an addressable lead before the decision is taken.
Granicus Legistar · client sfgov
What is missing, plainly
National permit coverage
The city-by-city feeds above are free and daily but cover single metros. National coverage means a paid aggregator, which is a configuration change rather than a rebuild.
Granted decisions
The middle tier, entitlements already approved, needs a source that publishes them in a normalised form. Currently only one vendor does, at a price that only makes sense at scale.
Deed transfers
A new owner is the strongest twelve-month renovation predictor there is, and feeds every trade at once. County recorders publish it, but in wildly varying formats.