Data dictionary

Every column, defined.

The same schema for every county, state and the nationwide file, in CSV, Excel or Parquet. How complete each column is varies by department — every coverage page shows it.

ColumnTypeDescription
permit_numberPermit numbertextThe permit or case number as issued by the building department.
permit_typePermit typetextThe department’s own classification — e.g. Residential Electrical, Roofing, Solar, New Construction, Demolition.
work_descriptionWork descriptiontextFree-text description of the permitted work, as written on the application.
permit_statusStatustextLifecycle status as reported by the source: applied, issued, finaled, expired, withdrawn …
application_dateApplication datedateDate the permit application was filed.
issue_dateIssue datedateDate the permit was issued.
complete_dateCompletion datedateDate of final inspection, certificate of occupancy, or close-out.
expiration_dateExpiration datedateDate the permit expires or expired.
valuationJob valuenumeric (USD)Declared cost or valuation of the work.
contractorContractortextContractor or applicant of record.
addressSite addresstextStreet address of the permitted work.
parcel_idParcel identifiertextThe parcel / tax-map identifier recorded with the permit, for joining to parcel and assessment data.
parcel_id_kindParcel identifier kindenumWhat parcel_id holds: tax_account, parcel_number, account_alt, geo (a GIS feature id), address (no id, address only) or none.
locality_geoidLocality FIPStext (5)Census FIPS code of the county or independent city.
locality_nameLocalitytextCounty or independent-city name.
historicalHistoricalbooleanTrue when the record comes from the department’s archive or historical feed rather than its current one.
sourceSourcetextThe building-department dataset the record was collected from.
rawOriginal recordJSONThe untouched source record, every original field included — nothing the department published is dropped.
fetched_atCollected attimestampWhen the record was last collected from the source.

parcel_id_kindWhat the parcel key is.

tax_accountTax account
The assessor’s tax account or real-estate account number.
parcel_numberParcel number
A parcel / tax-map number (PIN, APN, GPIN, map-lot).
account_altAlternate account
A secondary account number the department uses for the property.
geoGIS feature id
The id of a GIS feature (often the parcel polygon’s object id) the permit is attached to.
addressAddress only
No parcel id was recorded; the site address is the only key.
noneNone
Neither a parcel id nor a usable address was recorded.

How the file is built.

Department vocabulary, kept verbatim

permit_type and permit_status are exactly what the department recorded — “NHC Residential Electrical”, “B-CONVERT”, “Final”. Nothing is collapsed into a house taxonomy that could hide what the source meant; the original record is alongside if you need any field we do not normalize.

Rows and permits

Where a department publishes the same permit in more than one dataset (a current feed and an archive, say), the file carries one row per source record and the coverage pages count each permit number once.

Dates are dates

Every date column is an ISO date (YYYY-MM-DD), parsed from whatever the source used — epoch milliseconds, US-style strings, Excel serials.

Subscription files roll forward

Each monthly subscription file holds every permit dated in the trailing 12 months — the whole window, not a diff — so loading it is a replace. Status changes on permits still in the window are applied.