What a home costs against what a household earns
The price and rent of housing set against what the households there actually earn, every year since 2015, for each of the seven counties. The two ratio columns are the ones that survive inflation; the dollars beside them do not.
A row here is a whole county across five years of survey. There is no neighbourhood version to point at: the living-arrangement table is too thin at tract grain to publish. For measures around one address, use the census tract file.
The file
7 counties · 2011-2015 through 2020-2024 · 70 county-windows
70 rowsCounties in this file: Anoka, Carver, Dakota, Hennepin, Ramsey, Scott, Washington · 15 columns available · free, no account, no rate limit.
What the rows look like
10 real rows from this file, spread evenly across it rather than taken off the top — every file here is written in some order, so its first rows are never a fair sample of it. These are the default columns, which is what the download button hands over.
| county | survey window | home value ÷ income | rent as % of income | 18-34 living with a parent |
|---|---|---|---|---|
| Anoka County, Minnesota | 2011-2015 ACS 5-year | 2.65 | 16.4 | 38.1 |
| Anoka County, Minnesota | 2019-2023 ACS 5-year | 3.3 | 17.0 | 37.1 |
| Carver County, Minnesota | 2016-2020 ACS 5-year | 3.21 | 13.5 | 38.7 |
| Dakota County, Minnesota | 2014-2018 ACS 5-year | 3.03 | 16.1 | 35.3 |
| Hennepin County, Minnesota | 2012-2016 ACS 5-year | 3.47 | 17.3 | 21.2 |
| Hennepin County, Minnesota | 2019-2023 ACS 5-year | 3.91 | 17.9 | 19.7 |
| Ramsey County, Minnesota | 2017-2021 ACS 5-year | 3.57 | 18.8 | 25.8 |
| Scott County, Minnesota | 2015-2019 ACS 5-year | 2.93 | 13.7 | 38.3 |
| Washington County, Minnesota | 2012-2016 ACS 5-year | 2.92 | 16.5 | 38.6 |
| Washington County, Minnesota | 2020-2024 ACS 5-year | 3.66 | 17.8 | 38.1 |
The cuts of this file
Every cut is the same columns, filtered. Pick one and the row count changes; the file does not.
Every column in this file
Columns marked default come down unless you pick your own with
&columns=.
| Column | What it is | In the default file |
|---|---|---|
county |
county | default |
acs_period |
survey window | default |
value_to_income |
home value ÷ income | default |
rent_pct_of_income |
rent as % of income | default |
living_with_a_parent_pct |
18-34 living with a parent | default |
median_household_income |
median household income | optional |
median_home_value |
median home value | optional |
median_gross_rent |
median gross rent | optional |
adults_18_34 |
adults 18-34 | optional |
living_with_a_parent |
of them, living with a parent | optional |
renter_pct |
homes that are rented | optional |
occupied_homes |
occupied homes | optional |
renter_occupied |
rented homes | optional |
window_ends |
window ends | optional |
endpoint_window |
first or last window | optional |
Where it comes from
U.S. Census Bureau, ACS 5-year subject tables B19013, B25064, B25077, B09021, B25003
This source does not stamp the day it was published, so we cannot honestly date our copy of it and will not guess. The period the records themselves cover is on the system card.
What this layer cannot answer is stated in full on the system card — read it before quoting a figure.
What you may do with it
Creative Commons Attribution 4.0 International (CC BY 4.0). Share it, change it, build a product on it, sell that product — all fine. The one condition is credit: say it came from Brick & Mortar and link back.
Records published by U.S. Census Bureau. A work of the United States government, which is not subject to copyright protection in the U.S. (17 U.S.C. § 105).
Read the full licence · how we license every dataset, and the two we do not
Without the page
/api/export?dataset=housing-affordability&format=csv returns the
same file. Call /api/export
with no arguments for the whole catalogue.
Point an AI at it
Every file carries its own source, its capture date and the layer's own warnings in the header, so a model reading one gets the caveats with the numbers rather than the numbers alone. Paste this at an assistant that can fetch a URL:
Read https://brickandmortar.dev/api/export?dataset=housing-affordability&format=csv
Everything above the header row is provenance and limits. Read it first,
then answer using only what the rows support.
llms.txt describes the whole warehouse the same way — what each dataset holds, which counties it really covers, and what it cannot answer.