Home / Method
Method

How every number on this site is counted

All counts come from public building-permit records we pull ourselves. Nothing is estimated, modeled or filled in.

Sources

95 public permit datasets published by cities and counties on their open-data portals (Socrata, ArcGIS, CKAN and similar). Each city page names its datasets, links them and shows the pull date. The full list is on Data & coverage.

The 8-week window

For each source we take the 56 days ending on the latest issue date that source has published, so slow publishers are not undercounted. A city page covers the 8 weeks ending on the latest date among its sources. Dates are permit issue dates. Sources whose date field is not an issue date (filed or latest-activity dates) are left out.

Residential only

A permit counts only if the source marks its use as residential. Commercial permits and permits with unknown use are not counted, even when that leaves a city without a page.

Trades

Each permit is matched to trades from its permit type, subtype and work description. A permit can count in several trades (an addition with a new panel counts for both). Deck/patio tags are not published yet because Ops' 30-row hand check is still only 80% correct.

The threshold

A trade × city page is published only with at least 10 residential permits in the window. 977 pages pass today. Thinner combinations are counted on metro pages but get no page of their own. If a page later drops below the threshold, its URL points to the trade hub until the data returns.

Exclusions in the current data

  • atlanta: date field is not an issue date (filed) (1,869 rows)
  • fort_pierce: registry status 'stale' (not live) (54 rows)
  • fort_worth: date field is not an issue date (filed) (10,919 rows)
  • maricopa_co: registry status 'stale' (not live) (537 rows)
  • orlando: registry status 'stale' (not live) (3,356 rows)
  • pasadena: date field is not an issue date (latest_activity) (399 rows)
  • prince_georges: registry status 'stale' (not live) (60 rows)

Rows set aside:

  • res_com=mixed/unknown (only residential counts): 59,034
  • res_com=commercial (only residential counts): 44,057
  • placeholder valuation (<$100, kept row, value blanked): 12,631
  • outside source's 56-day window: 10,732
  • Ops res_com=residential but permit type/subtype says non-residential/commercial: 2,848
  • void/cancelled/expired status: 257
  • county dataset row with no city: 50
  • date_kind=recorded (only issue dates count): 10

Pages held for review

  • Plumbing in Seattle, WA: held while we re-check how the source's permits are tagged. These permits are left out of every count on the site until then.

Privacy

Sample rows on this site never show street addresses, permit numbers or names. Subscribers get the full public record with a link to its source.

Averages we quote

The 8-week weekly average per ZIP and trade comes from the same sources, counts every source in that ZIP, and includes permits with unknown use. It is the number our coverage check and guarantee use.

See your ZIPs before you pay.

Send your trade and ZIP codes. We'll reply with a real sample from the public records we pull, or tell you plainly that we don't cover you yet.

Request a free sampleSee pricing