Methodology
Rule version 1.0, effective 2026-11-11.
Derived by this site
Each card pairs a person with the indicators they used to call a past crisis, as documented in the public sources linked on the Crisis models page. The selection of indicators and how they are combined is derived by this site from that public material. Applying them to today's market is this site's calculation, not a prediction by the person named.
Derived by this site, not this person's prediction.
Crisis score
How a card's Crisis Score is calculated (rule version 1.0)
For each indicator in a card, we compare its latest reading with the indicator's own history.
- History. The history is every observation of that indicator up to and including the date being scored. Daily series are reduced to one value per month (the last observation of the month).
- Direction. For each indicator we fix, in advance, whether higher or lower readings are the more dangerous direction, following how the person used it (see the indicator's page).
- Subscore (0–100). The subscore is the share of historical observations that were at least as safe as today's reading — that is, that are less than or equal to today's reading when higher is more dangerous, or greater than or equal to it when lower is more dangerous — multiplied by 100. A reading that is the most dangerous in its whole history scores 100.
- Card score. The Crisis Score is the median of the card's available subscores (the average of the two middle subscores when the count is even), rounded to the nearest whole number, with .5 rounded up. "Median 83/100" therefore means that half of the card's indicators score at or below 83 and half at or above.
- Missing data. An indicator is left out if (a) its latest observation is older than the allowed age — 1 month for daily series, 6 months for monthly, 9 months for quarterly, 24 months for annual — or (b) its history spans less than 15 years. A card is scored only if at least two of its indicators are available and at least two-thirds of them are. Otherwise the card shows no score. We never substitute another data source.
- Trend-deviation indicator. For "S&P real price vs. long-run trend", we fit a straight line to the natural logarithm of the inflation-adjusted S&P Composite price (monthly, all history up to the scored date) by ordinary least squares. The reading is the latest residual divided by the standard deviation of all residuals (population standard deviation), i.e. the number of "sigmas" above trend. Its subscore then follows steps 1–3, using the residuals from the same fit as history. GMO has not published its exact trend method; this is our own reproduction.
Scores describe where today's readings sit in history. They are not forecasts.
Colours
Colours on the Home and Crisis models pages are a visual aid only. They do not change any score or period. Each reading is coloured by its subscore (where today's reading sits in its own history), and each card by its Crisis Score:
- Extreme: 90–100
- High: 75–89
- Elevated: 50–74
- Low: 0–49
"In the most extreme 10% of its history" means a subscore of 90 or more. "At or above N% of its own history" (or "at or below", for indicators where lower readings are more dangerous) gives the subscore rounded down.
How each indicator is calculated
- Dividend yield = D ÷ P × 100 (Shiller dataset).
- Real home price = USSTHPI ÷ CPIAUCSL × 100.
- Home price-to-income ratio = USSTHPI ÷ MEHOINUSA646N × 1000.
- Home price year over year = percentage change of USSTHPI compared with 12 months earlier (for quarterly data, the same quarter a year earlier).
- Federal funds rate change = FEDFUNDS minus FEDFUNDS 12 months earlier.
- Buffett indicator = LM103164105.Q ÷ GNP ÷ 10, i.e. nonfinancial corporate equities market value (millions of dollars) as a percent of GNP (billions of dollars).
- Corporate profits to GDP = CP ÷ GDP × 100.
- Debt growth vs. GDP = LA384104005.Q year-over-year % minus GDP year-over-year %.
- Yield curve = 10-year minus 3-month Treasury yield on the same day, taking the last observation of each month.
- Observation dates follow the period start date in the data snapshot, and series are paired exactly by date.
All indicators and the direction in which a reading is more dangerous:
- Shiller CAPE (P/E10) — Higher is more dangerous
- S&P Composite Dividend Yield — Lower is more dangerous
- S&P Real Price vs. Long-Run Trend — Higher is more dangerous
- Real Home Price Index — Higher is more dangerous
- Home Prices to Household Income — Higher is more dangerous
- Home Price Change (Year over Year) — Lower is more dangerous
- Housing Starts — Lower is more dangerous
- WTI Crude Oil Price — Higher is more dangerous
- Fed Funds Rate Change (12 Months) — Higher is more dangerous
- Personal Saving Rate — Lower is more dangerous
- Household Debt Service Ratio — Higher is more dangerous
- 10-Year Treasury Yield — Higher is more dangerous
- Yield Curve (10-Year minus 3-Month) — Lower is more dangerous
- Corporate Profits to GDP — Higher is more dangerous
- Market Value of Equities to GNP (Buffett Indicator) — Higher is more dangerous
- Debt Growth minus GDP Growth — Higher is more dangerous
Estimated period range
How a card's estimated period range is derived (rule version 1.0)
The range is a historical base rate, not a forecast and not a date. It answers: in past months when this card scored 80 or more, how long was it until the next major US stock market peak?
- Reference peaks. A "major peak" is a month in which the inflation-adjusted S&P Composite price (Shiller's dataset) was the highest within 36 months on either side, and after which it fell by at least 30% within the next 60 months. (These are 1901, 1906, 1911, 1929, 1937, 1946, 1968, 1973, 2000 and 2007.)
- Eligibility. A range is shown only when the card's current score is at least 80. Otherwise the card shows "Not elevated".
- Lead times. For every earlier month in which the card — scored with only the data available up to that month — was at least 80, and a major peak followed within 60 months, the lead time is the number of months until that peak.
- Enough history. The lead times must come from at least two different peaks. Otherwise the card shows "Insufficient history".
- Window. The window runs from the current month plus the 25th percentile of the lead times (rounded down) to the current month plus the 75th percentile (rounded up). Percentiles use linear interpolation between ranks.
- Precision. The window is shown at the finest level that fits, trying in order: months (window of at most 3 months, e.g. "Mar–May 2027"); quarters (touches at most 2 quarters, e.g. "Q2 2027" or "Q4 2026–Q1 2027"); half-years (touches at most 2 half-years that are not the two halves of one calendar year, e.g. "H2 2027–H1 2028"); otherwise years (e.g. "2027–2029"). The finest level allowed is also limited by the card's data: if any of its indicators is quarterly, months are not used; if any is annual, only years are used.
- Never a day. Ranges are never shown at day level.
Because past peaks arrived at very different lags after high scores, most windows are wide and are shown as years. We show the widest honest level rather than imply precision the data does not support.
Current precision by card
| Card | Score | Estimated period | Precision | Why |
|---|---|---|---|---|
| Robert Shiller — Dot-com crash (2000–2002) | 99/100 | 2027–2030 | Year | 326 past months scored 80+ and were followed by one of 8 major peaks within 60 months. Lead times: 25th percentile 11.0, 75th percentile 43.0 months, giving 2027-10 to 2030-06. The window is too wide for month precision, so it is shown by year. |
| Robert Shiller — Housing bust and global financial crisis (2007–2009) | 98/100 | 2027–2030 | Year | 69 past months scored 80+ and were followed by one of 2 major peaks within 60 months. Lead times: 25th percentile 9.0, 75th percentile 43.0 months, giving 2027-08 to 2030-06. The card's least frequent data is annual, so year is the finest precision allowed. |
| Warren Buffett — Dot-com crash (2000–2002) | 100/100 | 2028–2030 | Year | 99 past months scored 80+ and were followed by one of 3 major peaks within 60 months. Lead times: 25th percentile 24.5, 75th percentile 46.0 months, giving 2028-11 to 2030-09. The window is too wide for quarter precision, so it is shown by year. |
| Jeremy Grantham — Dot-com crash (2000–2002) | 99/100 | 2027–2030 | Year | 265 past months scored 80+ and were followed by one of 8 major peaks within 60 months. Lead times: 25th percentile 10.0, 75th percentile 44.0 months, giving 2027-09 to 2030-07. The window is too wide for month precision, so it is shown by year. |
| Nouriel Roubini — Housing bust and recession (2007–2009) | 76/100 | Not elevated | — | Score 76 is below 80. |
| Ray Dalio — 2008 debt crisis (2007–2009) | 40/100 | Not elevated | — | Score 40 is below 80. |
Data updates
Data are fetched automatically from each source on a schedule. A reading's "Updated" date is the date this site last fetched a changed value from its source; if a source has not published anything new, the date stays the same. If fetching from a source fails, the last valid data is kept and keeps its original date — we never show a new date for old data.
Known limitations
- Historical scores do not account for what was actually available at the time, such as publication delays and later data revisions (for example, GDP and corporate profits are revised). A score recalculated from historical data is therefore today's data viewed as of that time.
- A subscore is a percentile rank, not a threshold. The shorter an indicator's history (for example, the household debt service ratio starts in 2005), the less stable its percentile is, which is why at least 15 years of history is required.
- The trend fit is refitted as new data arrives, so historical sigma values change.
Change log
Every change to these rules is recorded here with its version and effective date.
| Version | Effective | Change |
|---|---|---|
| 1.0 | 2026-11-11 | Initial rules. |