Methodology
Every headline number shows its work. No black-box needle-by-feel. Each raw metric becomes a 0–100 sub-score by where it sits between a cheap anchor and a bubble-peak anchor; buckets are weighted into the composite. Anchors and weights are calibration parameters kept in config, so the track record stays auditable.
For inverted metrics (low value = hot — credit spreads, ERP) the floor is the wide/cushioned anchor and the ceiling is the tight/complacent anchor.
| Bucket | Metric | Floor | Ceiling | Seed | Sub-score |
|---|---|---|---|---|---|
| Equity valuation 45% | Shiller CAPE | 5 | 44 | — | 96 |
| Buffett Indicator | 33% | 240% | 234.3% | 97 | |
| Nasdaq-100 fwd P/E | 12× | 60× | 22.08× | 21 | |
| Credit & complacency 30% | HY OASinverted | 8% | 2.4% | 2.7% | 94 |
| IG OASinverted | 2.5% | 0.50% | 0.8% | 86 | |
| Equity risk premiuminverted | 8% | 3% | 4.2% | 75 | |
| Housing 15% | Home price ÷ median income | 3.2× | 7× | 4.90505× | 45 |
| Concentration 10% | Mag 7 weight in S&P 500 | 15% | 35% | 33.2% | 91 |
0.45×72 + 0.30×85 + 0.15×45 + 0.10×91 = 74 (“Elevated / Frothy”).
| Range | Label | Marker |
|---|---|---|
| 0–20 | Cheap / Fear | |
| 20–40 | Calm | |
| 40–60 | Fair-to-full | |
| 60–80 | Elevated / Frothy | |
| 80–100 | Mania / Bubble |
The bold secondary stat is P(≥20% S&P 500 drawdown within 12 months). We publish it as the measured historical base rate (~14% over 1871–present) with a wide 80% range (~6–26%), tagged BASE RATE — not a forecast. We built and back-tested a model to time drawdowns from valuation, credit, and volatility; across 70+ years none of them carry a reliable leading signal at this horizon (the apparent volatility signal is coincident — it rises once a drawdown is already underway). Rather than publish false precision, we anchor on the unconditional base rate and keep the range honest. (For context: from valuations as stretched as today's, a ≥20% drawdown historically followed within a year closer to 1-in-5 — but that conditioning does not reliably forecast timing, so we don't headline it.)
Transparency
Every headline number shows which inputs produced it and how they were weighted.
Calibration over confidence
We publish probabilities and archive them, so the record is public and Brier-scorable.
Honesty about limits
A high reading signals fragility and weak long-run returns — not an imminent crash.