METHODOLOGY
How CrashWatch calculates housing market stress and crash risk scores.
TWO SCORES, TWO QUESTIONS
Every metro area gets two scores, each answering a different question:
- Stress Score (0-100) — How hard is it to buy a home here right now? Measures current affordability pain relative to local incomes.
- Crash Risk Score (0-100) — How vulnerable is this market to a price correction? Measures signals that historically precede housing downturns.
A market can be highly stressed but low crash risk (expensive but stable, like San Francisco) or low stress but high crash risk (affordable but overbuilt, like some Sun Belt metros). The two scores together give a complete picture.
STRESS SCORE — 7 WEIGHTED INPUTS
The stress score is a weighted composite of seven metrics. Each is normalized to a 0-100 scale and combined using the weights below:
| Input | Weight |
|---|---|
| Payment-to-Income Ratio | 25% |
| Price Cut Percentage | 20% |
| Days on Market | 15% |
| Inventory Change (YoY) | 15% |
| Price Growth (YoY) | 10% |
| Foreclosure Rate | 10% |
| Mortgage Rate Impact | 5% |
Payment-to-Income is the single largest driver because it directly measures what buyers experience: can local residents actually afford the median home at current rates?
Example: Why Austin scores higher than Beaumont
Austin, TX (Stress: 46) has a payment-to-income ratio of 35.9% (meaning the median home costs over a third of local income). Inventory is rising (+5% year-over-year) and 9.4% of listings have price cuts.
Beaumont, TX (Stress: 10) has a payment-to-income ratio under 20%. Homes are affordable relative to local wages, inventory is stable, and price cuts are minimal.
Same state, same mortgage rates, completely different stress levels. The difference is local affordability.
CRASH RISK SCORE — 6 WEIGHTED INPUTS
The crash risk score measures correction vulnerability using six inputs that historically precede housing downturns:
| Input | Weight |
|---|---|
| Inventory Surge (YoY) | 25% |
| Price Cut Percentage | 22% |
| Days on Market | 18% |
| Unemployment Rate | 15% |
| Price Growth (YoY) | 13% |
| New Listings Surge | 7% |
SCORE LEVELS
0-25
SAFE
26-50
WATCH
51-75
STRESS
76+
DANGER
DATA SOURCES
| Source | Data |
|---|---|
| Federal Reserve (FRED) | Mortgage rates, income, foreclosures, consumer sentiment, housing starts, building permits |
| Zillow Research | Home values (ZHVI), rent (ZORI), inventory, new listings |
| Redfin Market Tracker | Price cuts %, days on market |
| Bureau of Labor Statistics | State-level unemployment rates |
| Freddie Mac | Primary Mortgage Market Survey (30-year rate) |
| InsideAirbnb | STR occupancy, revenue, listing count (27 metros) |
| Realtor.com (via FRED) | Active listings, median list price, days on market, pending/new listings (189 metros) |
All data sources are free and publicly available. CrashWatch does not use proprietary or paywalled data.
LIMITATIONS
- Scores are directional indicators, not predictions. A high crash risk score does not guarantee a crash.
- Metro-level data masks neighborhood variation. A metro scoring 40 may have zip codes at 20 and zip codes at 60.
- Data sources update at different frequencies. FRED data is daily, Redfin is weekly, InsideAirbnb is monthly.
- The scoring algorithm uses fixed weights. Different buyers may weight factors differently based on their situation.
- Airbnb occupancy data from InsideAirbnb is estimated from listing data, not actual booking data. Best used for relative comparison between markets.
NOW YOU KNOW HOW IT WORKS
Check the scores for any US metro, city, or zip code.
Questions about the methodology? support@crashwatch.live