| Date | Single Ratio | Dual Ratio | Home Price | Single Income | Dual Income | Rate | Quality |
|---|
All states, ranked
Latest price-to-income ratio, single earner, least affordable first. Stronger amber = less affordable. Click a state to load it.
How It Works
Price-to-Income Ratio: The total cost of a 30-year mortgage (principal + interest) divided by annual earnings. A higher ratio means housing is less affordable. The calculation finances the full home price at that week's rate; down payment, taxes, and insurance are not included.
Data Sources
- Earnings: BLS Average Weekly Earnings, Total Private (CES0500000011)
- Home Prices: Zillow Home Value Index via FRED (USAUCSFRCONDOSMSAMID)
- Mortgage Rates: Freddie Mac 30-Year Fixed Rate via FRED (MORTGAGE30US)
Dual Income: Estimated at 1.4× single-earner income, reflecting typical dual-income household dynamics.
State-Level Data: When a state is selected, home prices reflect that state's Zillow Home Value Index (ZHVI) data sourced from FRED. Income is estimated by applying a state-specific multiplier to the national BLS average weekly earnings. This multiplier is derived from the BLS Quarterly Census of Employment and Wages (QCEW), comparing each state's private sector average weekly wage to the national average. Mortgage rates remain national regardless of state selection, using the Freddie Mac 30-year fixed rate.
Multiplier Availability: When QCEW data is unavailable for a given year, the state income multiplier falls back to 1.0 (equivalent to national earnings). Each state's JSON records the source as qcew_<year>, fallback_missing, or fallback_unavailable so the provenance of the income figure is traceable.
Data Annotations: Each weekly point uses that week's actual Freddie Mac mortgage rate, and is labelled by how its home price was derived. Observed points fall on the Thursday closest to a monthly Zillow release and use that value directly. Interpolated points sit between monthly releases and are filled with a smooth cubic (Hermite) curve. Estimated points extend the recent six-month price trend past the latest release; because BLS earnings are published about a month behind, the most recent weeks also project income forward, and their cards and table rows are flagged as estimated. The per-state JSON surfaces these counts under metadata.series_quality.
Embed this chart: Append ?embed=1 to any URL to load a chrome-free view suitable for an iframe. Combine with the existing state, range, view, and yaxis parameters. Example: ?embed=1&state=ca&range=5y.