How this map works
You enter a yearly salary; every area colours by the gap between what that salary could afford and what homes there cost — using the full monthly payment, not just the mortgage. Everything runs from free public federal and Zillow data, recomputed in your browser as you move the sliders.
The computation
Your monthly housing budget is salary / 12 × share-of-income
(default 28%, the conventional front-end ratio). The largest affordable home
price P is the one whose complete payment fits that budget:
P = (budget − insurance/12) / ( (1−d)·M + tax/12 + (1−d)·PMI/12 )
d down payment fraction (slider, default 10%)
M mortgage constant from the 30-year rate (slider, default: latest
Freddie Mac weekly average, from the archived FRED series)
tax effective property tax rate (per area, from ACS)
PMI 0.8%/yr when the down payment is under 20%, else zero
The verdict compares P against the area's home value and shows
the signed dollar gap — "short by $80,000" and "short by $8,000" are
different answers, and the colour scale reflects that. Rent mode is simpler:
market rent against the default 30% of income.
Insurance is subtracted off the top because it is a dollar amount, not a rate — which is why, at low incomes in high-premium areas, insurance alone can exhaust the budget before any mortgage payment at all. The map says so explicitly when it happens.
What the verdict means — read this part
"Typical homes" prices you against the middle of each market (Zillow's 35th–65th percentile index). An entry-level buyer shops below the middle, so that view is systematically pessimistic for first purchases. The "Starter homes" toggle switches to the bottom-tier index (5th–35th percentile) — the entry-level segment of each market. Neither is a quote for any particular house.
Where each number comes from
| Number | Source | Notes |
|---|---|---|
| Home values | Zillow ZHVI (mid & bottom tier) | Monthly, by ZIP. History is restated every release. |
| Market rent | Zillow ZORI | Asking rents on new leases; covers ~⅓ of ZIP areas. |
| Mortgage rate | Freddie Mac PMMS, via FRED | Weekly national average; adjustable. |
| Property tax rate | ACS: taxes paid ÷ home value | Both sides self-reported, so internally consistent. |
| Insurance | ACS B25141 | What mortgaged owners actually paid — not quote-engine estimates, which disagree by 4× for the same state. |
| Context panel | ACS housing tables | Vacancy, tenure, year built, commute, income, rent paid. |
| Boundaries & names | Census TIGER, HRSA crosswalk | ZIP ≠ ZCTA; a federal crosswalk joins them. |
Every number in the detail panel carries a vintage badge — the year or month the data describes, which is not the date it was downloaded. Censored values are flagged: ACS caps insurance at "$4,000 or more", so figures shown as $4,000 are floors, not estimates, precisely in the most expensive markets.
Honest limitations
- Area medians, not listings. The right way to read a verdict is "how this area prices relative to my budget", not "what I will pay".
- The payment model omits HOA dues, maintenance, utilities, and your other debts (it is a front-end ratio only).
- Insurance above $4,000/yr is invisible to the ACS bracket ceiling, so the hardest insurance markets are understated.
- ACS figures are 5-year averages; Zillow figures are current-month. They describe the same places at different speeds.
What this map deliberately excludes
No demographic data and no crime data, in any form. Characterising neighbourhoods by racial or ethnic composition is steering under the Fair Housing Act, and neighbourhood-level crime data is both legally fraught and statistically unsound — major listing sites removed it in 2021 for these reasons. Every table in this pipeline is a housing-unit or household-economics table.
Reproducibility
Every source file is archived with a SHA-256 manifest before anything reads it; transforms run only from the archive and refuse inputs that fail verification; the build is provably deterministic from the archive alone. The pipeline, the checks, and this page are all in the source repository.
Data: Zillow Research (free for non-commercial use, with attribution) · U.S. Census Bureau ACS & TIGER/Line · Freddie Mac via FRED · HRSA/UDS · Map rendering: MapLibre GL JS (BSD-3) · Type: Noto Sans (OFL).