TWO SCORES, TWO QUESTIONS

Every metro gets two scores:

  • Stress Score (0-100) — How hard is it to buy here right now? Measures current affordability pain.
  • Crash Risk Score (0-100) — How vulnerable to a price correction? Measures pre-downturn signals.

A market can be high stress / low risk (expensive but stable) or low stress / high risk (affordable but overbuilt). The two together give the complete picture.

STRESS SCORE — 7 INPUTS

Weighted composite, each normalized to 0-100:

InputWeight
Payment-to-Income25%
Price Cuts20%
Days on Market15%
Inventory Change (YoY)15%
Price Growth (YoY)10%
Foreclosure Rate10%
Mortgage Rate5%

Payment-to-Income is the largest driver — it directly measures what buyers experience.

Example

Austin, TX (46) — 35.9% payment-to-income, inventory rising +5% YoY, 9.4% price cuts.

Beaumont, TX (10) — under 20% payment-to-income, stable inventory, minimal cuts.

Same state, same rates. The difference is local affordability.

CRASH RISK — 6 INPUTS

Signals that historically precede housing downturns:

InputWeight
Inventory Surge (YoY)25%
Price Cuts22%
Days on Market18%
Unemployment15%
Price Growth (YoY)13%
New Listings Surge7%

SCORE LEVELS

0–25SAFE
26–50WATCH
51–75STRESS
76+DANGER

DATA SOURCES

SourceData
FREDRates, income, foreclosures, sentiment, starts, permits
ZillowHome values, rent, inventory, new listings
RedfinPrice cuts %, days on market
BLSState unemployment rates
Freddie Mac30-year fixed rate
InsideAirbnbSTR occupancy, revenue, listings (27 metros)
Realtor.comActive/pending/new listings, prices (189 metros)

All sources are free and publicly available.

LIMITATIONS

  • Scores are directional, not predictions. High crash risk does not guarantee a crash.
  • Metro-level data masks neighborhood variation.
  • Data sources update at different frequencies (daily to monthly).
  • Fixed weights may not match every buyer's priorities.
  • Airbnb occupancy is estimated from listing data, not booking data.