Six independent, point-in-time signals across price momentum, the yield curve, realised vol, FX, commodity, and sovereign-risk axes. When any signal fires the strategy flips from the normal 50/30/20 allocation to the defensive 10/60/30 allocation. As of May 15, 2026 the regime is NORMAL.
Normal allocation: 50% SPY / 30% LQD / 20% Gold (with dip-buy overlay active).
Current underlying value, threshold, proximity-to-fire, and 1-year firing sparkline for each signal.
Daily count of stress signals firing since 2004-11-18.
Daily count of stress signals firing. Any single fire flips the regime to DEFENSIVE — higher counts indicate compounding stress. Over 5,406 trading days, 44% had ≥ 1 signal firing; peak concurrent count: 4/6.
Which signals dominated which quarters?
Each cell = % of trading days the signal fired in that quarter. Darker shading indicates more days firing. 87 quarters, 2004Q4 → 2026Q2.
Every firing episode per signal, with SPY return during the episode and 3m / 12m forward.
Every consecutive run of fires per signal (≥ 3 days, gaps ≤ 5 days coalesced). 74 episodes across all signals.
| Signal | Start ↓ | End | Days | SPY during | SPY 3m fwd | SPY 12m fwd |
|---|---|---|---|---|---|---|
| Gold +15% in 63d | 2026-01-22 | 2026-03-17 | 38 | -2.6% | — | — |
| Gold +15% in 63d | 2025-09-26 | 2025-12-26 | 64 | +4.6% | -8.2% | — |
| Gold +15% in 63d | 2025-05-29 | 2025-06-09 | 8 | +1.6% | +8.8% | — |
| 21d realised vol > 30% | 2025-04-04 | 2025-05-08 | 24 | +11.8% | +13.1% | +32.3% |
| 189-day momentum < 0 | 2025-04-03 | 2025-04-24 | 15 | +1.9% | +16.9% | +32.3% |
| Gold +15% in 63d | 2025-03-19 | 2025-05-09 | 37 | -0.2% | +13.0% | +32.3% |
| Gold +15% in 63d | 2024-05-09 | 2024-05-28 | 13 | +1.9% | +6.3% | +12.7% |
| Gold +15% in 63d | 2024-04-09 | 2024-04-26 | 14 | -2.1% | +7.5% | +10.5% |
| 189-day momentum < 0 | 2023-05-04 | 2023-05-19 | 12 | +3.3% | +5.3% | +28.8% |
| 189-day momentum < 0 | 2023-02-28 | 2023-03-13 | 10 | -2.8% | +13.0% | +35.9% |
| Gold +15% in 63d | 2023-01-13 | 2023-02-02 | 14 | +4.6% | -2.4% | +20.0% |
| 21d realised vol > 30% | 2022-05-09 | 2022-07-01 | 38 | -3.8% | -5.9% | +18.1% |
| DXY +5% in 21d | 2022-04-28 | 2022-05-02 | 3 | -3.1% | -1.1% | +0.1% |
| 189-day momentum < 0 | 2022-04-22 | 2023-02-03 | 198 | -1.9% | +0.4% | +21.6% |
| 10Y/2Y inverted (150d) | 2022-04-01 | 2025-04-10 | 759 | +21.0% | +19.5% | +33.9% |
| 189-day momentum < 0 | 2022-03-08 | 2022-03-14 | 5 | +0.2% | -9.8% | -5.1% |
| Gold +15% in 63d | 2020-07-30 | 2020-08-10 | 8 | +3.6% | +4.8% | +33.9% |
| Gold +15% in 63d | 2020-06-17 | 2020-06-19 | 3 | -0.5% | +7.6% | +38.4% |
| 189-day momentum < 0 | 2020-03-09 | 2020-05-04 | 40 | +4.0% | +16.5% | +48.9% |
| 21d realised vol > 30% | 2020-03-03 | 2020-05-05 | 45 | -4.1% | +15.8% | +47.6% |
| 10Y/2Y inverted (150d) | 2019-08-27 | 2020-04-02 | 152 | -10.9% | +24.5% | +64.0% |
| Gold +15% in 63d | 2019-08-07 | 2019-09-04 | 20 | +2.1% | +5.8% | +24.1% |
| 189-day momentum < 0 | 2019-05-23 | 2019-06-06 | 10 | +0.9% | +5.1% | +14.4% |
| 21d realised vol > 30% | 2018-12-26 | 2019-01-08 | 9 | +4.3% | +12.4% | +28.8% |
| 189-day momentum < 0 | 2018-12-06 | 2019-01-17 | 29 | -2.0% | +10.8% | +28.6% |
| 189-day momentum < 0 | 2018-11-20 | 2018-11-26 | 4 | +1.3% | +4.8% | +19.7% |
| 189-day momentum < 0 | 2018-10-11 | 2018-10-31 | 15 | -0.6% | +1.1% | +15.4% |
| 189-day momentum < 0 | 2016-04-29 | 2016-05-19 | 15 | -1.0% | +7.7% | +19.1% |
| 189-day momentum < 0 | 2016-04-11 | 2016-04-15 | 5 | +1.8% | +4.4% | +15.2% |
| Gold +15% in 63d | 2016-02-25 | 2016-04-01 | 26 | +6.4% | +1.8% | +16.3% |
| 189-day momentum < 0 | 2016-01-04 | 2016-03-29 | 59 | +2.6% | -2.2% | +17.1% |
| 189-day momentum < 0 | 2015-12-11 | 2015-12-21 | 7 | +0.5% | +1.3% | +14.7% |
| DXY +5% in 21d | 2015-11-12 | 2015-11-18 | 5 | +1.9% | -6.1% | +7.2% |
| 189-day momentum < 0 | 2015-11-12 | 2015-11-17 | 4 | +0.3% | -6.0% | +8.3% |
| 21d realised vol > 30% | 2015-09-08 | 2015-09-21 | 10 | +0.0% | +2.4% | +11.0% |
| 189-day momentum < 0 | 2015-08-21 | 2015-10-08 | 34 | +2.2% | -4.0% | +9.2% |
| DXY +5% in 21d | 2015-03-11 | 2015-03-19 | 7 | +2.4% | +2.0% | +0.1% |
| DXY +5% in 21d | 2015-01-22 | 2015-01-30 | 7 | -3.2% | +6.1% | -0.9% |
| 21d realised vol > 30% | 2011-10-03 | 2011-10-20 | 14 | +10.7% | +8.9% | +20.4% |
| DXY +5% in 21d | 2011-09-22 | 2011-10-04 | 9 | -0.5% | +14.4% | +31.9% |
| Gold +15% in 63d | 2011-08-10 | 2011-09-20 | 29 | +7.6% | +0.7% | +24.0% |
| 21d realised vol > 30% | 2011-08-08 | 2011-09-16 | 29 | +8.8% | +0.5% | +22.7% |
| 189-day momentum < 0 | 2011-08-05 | 2012-02-01 | 124 | +11.6% | +6.4% | +15.4% |
| Gold +15% in 63d | 2011-04-28 | 2011-05-02 | 3 | +0.1% | -5.0% | +5.5% |
| Gold +15% in 63d | 2010-11-04 | 2010-11-11 | 6 | -0.5% | +10.0% | +4.2% |
| Gold +15% in 63d | 2010-10-14 | 2010-10-26 | 9 | +1.1% | +9.8% | +5.7% |
| 189-day momentum < 0 | 2010-08-13 | 2010-09-02 | 15 | +1.1% | +12.6% | +12.7% |
| 189-day momentum < 0 | 2010-07-16 | 2010-07-21 | 4 | +0.4% | +9.6% | +26.4% |
| 189-day momentum < 0 | 2010-06-29 | 2010-07-01 | 3 | -1.4% | +11.7% | +31.0% |
| 21d realised vol > 30% | 2010-05-21 | 2010-06-16 | 18 | +2.6% | +1.5% | +15.7% |
| DXY +5% in 21d | 2010-05-12 | 2010-06-02 | 15 | -6.1% | -4.1% | +21.9% |
| 10Y term premium Z > 2 | 2010-04-05 | 2010-04-09 | 5 | +0.7% | -9.3% | +13.7% |
| 10Y term premium Z > 2 | 2009-12-24 | 2010-01-13 | 13 | +1.9% | +6.3% | +14.4% |
| Gold +15% in 63d | 2009-11-06 | 2009-12-07 | 21 | +3.5% | +4.3% | +13.0% |
| 10Y term premium Z > 2 | 2009-07-17 | 2009-08-13 | 20 | +7.9% | +9.0% | +8.7% |
| 10Y term premium Z > 2 | 2009-05-27 | 2009-06-26 | 23 | +3.0% | +14.3% | +19.3% |
| Gold +15% in 63d | 2009-01-23 | 2009-03-12 | 34 | -9.2% | +26.5% | +56.5% |
| DXY +5% in 21d | 2009-01-20 | 2009-02-02 | 10 | +2.5% | +10.8% | +36.8% |
| DXY +5% in 21d | 2008-10-16 | 2008-11-18 | 24 | -7.1% | -10.4% | +31.1% |
| 10Y term premium Z > 2 | 2008-10-09 | 2008-11-17 | 28 | -5.8% | -7.8% | +33.6% |
| 21d realised vol > 30% | 2008-09-17 | 2009-04-28 | 154 | -25.1% | +15.0% | +42.3% |
| DXY +5% in 21d | 2008-08-11 | 2008-09-11 | 23 | -4.0% | -27.8% | -14.3% |
| 10Y term premium Z > 2 | 2008-07-18 | 2008-07-25 | 6 | -0.4% | -26.5% | -19.5% |
| 10Y term premium Z > 2 | 2008-06-10 | 2008-06-23 | 10 | -2.8% | -7.2% | -30.2% |
| Gold +15% in 63d | 2008-02-19 | 2008-03-27 | 27 | -1.5% | -0.2% | -35.8% |
| 189-day momentum < 0 | 2008-01-04 | 2009-07-22 | 390 | -29.9% | +14.8% | +16.8% |
| Gold +15% in 63d | 2008-01-02 | 2008-01-31 | 21 | -5.2% | +3.2% | -38.3% |
| 189-day momentum < 0 | 2007-11-19 | 2007-11-21 | 3 | -1.4% | -2.6% | -45.6% |
| Gold +15% in 63d | 2007-10-24 | 2007-12-04 | 29 | -3.4% | -10.0% | -39.1% |
| Gold +15% in 63d | 2006-04-28 | 2006-06-07 | 28 | -4.3% | +4.2% | +22.2% |
| Gold +15% in 63d | 2006-01-09 | 2006-02-17 | 29 | +0.0% | -0.9% | +15.4% |
| 10Y/2Y inverted (150d) | 2005-12-27 | 2008-01-07 | 510 | +16.7% | -2.6% | -32.2% |
| Gold +15% in 63d | 2005-11-29 | 2005-12-12 | 10 | +0.3% | +4.0% | +14.1% |
| 10Y term premium Z > 2 | 2005-03-22 | 2005-03-28 | 4 | +0.4% | +1.8% | +12.8% |
“SPY during” = price at episode end / price at start − 1. “3m / 12m fwd” = SPY return from episode end over the next 63 / 252 trading days. — = forward window extends beyond the dataset (cannot be evaluated yet).
What happens to SPY after each signal fires, and how independent are the six signals?
Median (tick) and IQR (bar) of SPY return over the next 1m / 3m / 12m, conditional on whether the signal was firing that day vs. calm. Firing vs. calm. The rightmost column is the 12m hit rate: % of fire onsets followed by a ≥ 10% SPY drawdown within a year.
| Signal | 1m fwd | 3m fwd | 12m fwd | Hit rate (12m) |
|---|---|---|---|---|
189-day momentum < 0 | +2.3% (n=947) +1.5% (n=4438) | +5.4% (n=947) +3.8% (n=4396) | +17.7% (n=947) +13.8% (n=4207) | 35% 18/51 onsets |
10Y/2Y inverted (150d) | +1.5% (n=1421) +1.6% (n=3964) | +3.8% (n=1421) +3.9% (n=3922) | +16.0% (n=1421) +13.7% (n=3733) | 67% 2/3 onsets |
21d realised vol > 30% | +2.2% (n=322) +1.5% (n=5063) | +6.4% (n=322) +3.8% (n=5021) | +29.3% (n=322) +14.0% (n=4832) | 20% 5/25 onsets |
DXY +5% in 21d | -2.1% (n=93) +1.6% (n=5292) | -3.3% (n=93) +4.0% (n=5250) | +18.8% (n=93) +14.4% (n=5061) | 54% 15/28 onsets |
Gold +15% in 63d | +1.3% (n=457) +1.6% (n=4928) | +3.6% (n=436) +3.9% (n=4907) | +16.3% (n=349) +14.4% (n=4805) | 30% 14/47 onsets |
10Y term premium Z > 2 | -2.1% (n=100) +1.6% (n=5285) | +4.4% (n=100) +3.9% (n=5243) | +14.3% (n=100) +14.5% (n=5054) | 56% 9/16 onsets |
“Calm” baseline is the same forward window measured across days when that specific signal was not firing. Trailing 252 days excluded from the 12m window (no forward data yet) — reflected in n. Vertical dashed line marks 0% return.
Phi coefficient (−1 to +1) measuring how often each pair of signals fires on the same day. Brick = positive (fire together); olive = negative.
For each known crisis: which signals fired first, in what order, vs. SPY peak.
For each known crisis window: when did each signal first fire vs the SPY peak (navy) and trough (gold). Lead days in parentheses: positive = signal fired before the SPY peak; negative = after.
Every NORMAL ↔ DEFENSIVE transition since 2004-11-18.
Time in defensive regime: 44.4% (2401/5406 trading days)
One alert when the stress signals change Normal ↔ Defensive — typically once or twice a year.
See today's allocation, the full backtest, or read the methodology behind the rule engine.