Affordability Ledger

Unbiased, raw housing data — automated. Updated daily at 9:15 AM ET.

Methodology — every formula, published

This is the difference between this tracker and the spreadsheet that inspired it: the weights are here, in the open, and the code that computes them is the code that runs the site.

The Key 3

Affordability Score = clamp(HAI − 40, 0, 100), where HAI is the NAR-style Housing Affordability Index: qualifying income is the annual income at which principal+interest (20% down, 30-year fixed at the Freddie Mac rate, blended median of new-home median price and median listing price) equals 25% of income; HAI = median household income ÷ qualifying income × 100. Bands: 80+ Affordable · 60–79.9 Pressured · 40–59.9 Strained · <40 Affordability Crisis.

Supply Score = 0.6 × months'-supply score (0 months → 0, 6 months → 80, ≥7.5 → 100) + 0.4 × listings score (active listings vs their 2019 average × 70, capped 100). Bands: 80+ Balanced · 70–79.9 Slight Undersupply · 45–69.9 Tight Market · <45 Critical Shortage.

Crash Likelihood = a published points table (max 100): unemployment 15 · single-family mortgage delinquency 20 · all-loan delinquency 10 · credit-card delinquency 10 · supply glut (months' supply >7) 10 · Case-Shiller YoY decline 15 · jobless-claims YoY trend 10 · credit-card charge-offs 10. The live points breakdown is in /api/dashboard. Bands: 85+ Crash on Sight · 65–84.9 Elevated Risk · 40–64.9 Watchful · <40 Nowhere Close.

Housing Health Index

= 0.40 × Affordability + 0.35 × Supply + 0.25 × (100 − Crash Likelihood).

Economic Index

Each basket item (BLS average prices + CPI rent/medical/food-away) is divided by its own 2019-Q1 average; essentials (food at home, utilities, rent, medical) weigh 2, discretionary items weigh 1; the weighted mean × 100 is the index, so 2019 Q1 = 100 and 138.2 means the basket costs 38.2% more than in 2019 Q1.

Baselines

Every tracker row shows Current, the value at the start of the current presidential term (2025-01-20), the change since then, and the year-over-year change. Prices labelled ($) are BLS Average Price series — real dollars. PPI and CPI rows are index points and are labelled as indexes, never dollars.

Freshness

“Current” means each series' latest published observation. Mortgage rates publish weekly, BLS prices monthly (about a 6-week lag), median new-home prices quarterly. The As of column on every row is that series' own freshness stamp.