The Building Permits Survey (BPS) is a survey of local governments on the number of new, privately-owned housing units they issued building permits for every year, issued by the US Census Bureau. (Some cities are surveyed every month, while some are surveyed annually.) The form they send out looks like this.
Not every housing unit that receives a permit is actually built. Some fraction of "housing permits" start construction and become "housing starts", and then some fraction of those become "housing completions".
More detailed information on what fraction of permits become starts or completion is in the Census Survey of Construction (SOC). Unlike the BPS, the SOC is done only on a sample of cities and building projects, so the data would be a little noisier.
To get an overall sense of what fraction of permits become starts or completions: the SOC reports that for single-family housing, starts are usually 2.5% greater than permits, and completions 3.5% less than starts. For multifamily, starts are generally 22.5% less than permits, and completions 7.5% less than starts. I might add SOC data here at some point.
I'm not sure! They claim that only 5% of rows in the 2019 annual data survey had to be imputed because of nonresponse, but that doesn't mean that the officials in each city know how to fill out the form accurately. From other folks who've played with this data, I've gathered that the data is generally more reliable for bigger cities, whose bureaucracy is presumably more competent at filling out these forms, and less so for small towns.
The Census Bureau has their own tool for making tables from the BPS, so trying the same state/city and year there and comparing the two numbers might be a good start.
The "per capita units" number is just the number of new permitted units in one year divided by the Census population estimate for that year (the July 1 estimate). The plots are shown as "units permitted per 1000 residents" so that the numbers are in a scale that is easier to understand. Most cities build somewhere between 1 to 15 units per 1000 population per year.
Most of the population data is from Census yearly intercensal estimates. The only exception is places/cities for the years 1981–1989, for which intercensal estimates weren't available, and so I had to take the Census's decade estimates (for 1980 and 1990) and linearly interpolate between those two. In most cases the approximation shouldn't affect things too much (this isn't that different from how the census creates intercensal estimates) but for extremely small cities that may cause some issues.
Yes! The data for states, metros, counties, and places/cities are available at:
https://housingdata.app/states_annual.parquet
https://housingdata.app/metros_annual.parquet
https://housingdata.app/counties_annual.parquet
https://housingdata.app/places_annual.parquet
If you're familiar with pandas
, it's as easy as
import pandas as pd
df = pd.read_parquet('https://housingdata.app/states_annual.parquet')
This is a work in progress! Feedback and feature ideas are welcome on GitHub.
Data from the US Census Building Permits Survey. Created by Sid Kapur.