PropertyLabs Research

Building permit data: coverage, normalization, freshness, and limitations

Permit data is valuable because it is municipal-source activity data. It is also uneven: cities publish different fields, use different definitions, and refresh on different schedules.

Prepared by PropertyLabs Research · Published July 18, 2026 · Municipal sources remain authoritative for individual records.

Coverage is a data contract, not a marketing claim

PropertyLabs only presents public permit activity where a municipal source is available and a city can be supported by the current ingestion and quality controls.

City coverage does not mean every field is available in every market. A municipality may publish an address but not a contractor, or a value but not a detailed status history.

Normalization makes comparison easier, not perfect

Municipal records use inconsistent names, date formats, permit categories, and location conventions. Normalization standardizes those fields where possible so users can filter and compare records.

The original municipal meaning still matters. Users should treat category mappings, missing values, and field labels as context for analysis rather than assume every city reports the same thing.

Freshness and limitations belong in the decision

A record is only as current as the municipal publication and the latest successful refresh. Filing, issue, application, completion, and update dates can mean different things.

Permits are not a complete census of construction and do not establish ownership, creditworthiness, performance, availability, or project completion.

Sources and related public pages

This guide is grounded in PropertyLabs' published data approach and municipality-specific public permitting guidance. Verify record-level conclusions with the municipal source.

Frequently asked questions

Why is a field blank?

The municipality may not publish it, the source may use a different representation, or the record may be incomplete. PropertyLabs does not manufacture values for missing fields.