Research track v3 — latched state machine with velocity gates
Evaluation window 2011-01-03 → 2026-09-17 (ETF era only) · generated 2026-09-17T16:46:23+00:00 · Live dashboard · Monitor v4 (live v3 rules) · v1 backtest · v2 backtest
Episodes (≥15% drawdowns)
5
v3 hit rate at peak
0 / 5 (0%)
v3 median lead (hits)
n/a
v3 false-positive share
37.5% (127 / 339)
v3 state flips
342
Parameters frozen
2026-09-17 (? days ago)
Phase 1
Armed
Phase 2A
≥15% drawdown episode (numbered)
SPY adjusted close (log scale)
Side-by-side: v1 vs v2 vs v3 (full ETF-era window, 2011–2026)
| Metric | Current system (v1) | v2 | v3 † |
|---|---|---|---|
| Episodes (≥15%) | 5 | 5 | 5 |
| Hit rate (warned at peak) | 0 / 5 (0%) | 0 / 5 (0%) | 0 / 5 (0%) |
| Median lead (hits) | n/a | n/a | n/a |
| False-positive share of red days | 0.0% (0 / 23) | 75.5% (289 / 383) | 37.5% (127 / 339) |
| State flips | 14 | 10 | 342 |
† v3 metrics on 2021–2026 are design-contaminated: its parameters were chosen after observing v2's failure on that window.
Episodes in the evaluation window (v3 states)
| # | Peak | Trough | Max drawdown | v1 at peak | v3 at peak | v3 lead / lag | v3 red share of decline | Sample |
|---|---|---|---|---|---|---|---|---|
| 1 | 2011-04-29 | 2011-10-03 | -18.6% | PHASE 1 | PHASE 1 | no warning | 0% | 2011–2020 |
| 2 | 2018-09-20 | 2018-12-24 | -19.3% | PHASE 1 | PHASE 1 | stale warning ended 103 td before peak | 0% | 2011–2020 |
| 3 | 2020-02-19 | 2020-03-23 | -33.7% | PHASE 1 | PHASE 1 | -13 td (lag) | 46% | 2011–2020 |
| 4 | 2022-01-03 | 2022-10-12 | -24.5% | PHASE 1 | PHASE 1 | -53 td (lag) | 30% | 2021–2026 † |
| 5 | 2025-02-19 | 2025-04-08 | -18.8% | PHASE 1 | PHASE 1 | -16 td (lag) | 54% | 2021–2026 † |
v3 mechanics (frozen 2026-09-17)
- Tier 1 gates, each latched for 45 sessions: G1 · HY credit stress (HY OAS +65 bps over 20 sessions OR >= 425 bps); G2 · CCC stress (CCC & Lower OAS >= 12.0% OR +150 bps over 20 sessions); G3 · yield exhaustion (DGS10 >= 5.10% OR 200-day z >= +3.0).
- Tier 2 quorum — at least 2 of 6 confirmations, each latched for 15 sessions: ISM ≤ 50 or 3-month delta ≤ −5; claims 4-week MA ≥ trailing 1-year min + 25k; GLD/CPER > 1.15× its 50-day SMA; SPHB/SPLV below its 50-day SMA; BNO 20-day return ≤ -8.0%; T10Y2Y ≥ trailing 12-month min + 0.25.
- States: PHASE 2A when a Tier 1 latch is hot AND the quorum is hot; ARMED when a Tier 1 latch is hot without the quorum; PHASE 1 otherwise.
- Exits from PHASE 2A (first one wins): HY credit below its 50-day SMA for 3 consecutive sessions; 60 sessions in state; or SPHB/SPLV back above its 50-day SMA. An exit day closes green — no same-day re-entry. ARMED lapses when every Tier 1 latch cools.
- Live twin: monitor v4 evaluates these exact rules on live data every day (same code, imported from backtest_v3.py).
Sample discipline — read this first
- Parameters frozen 2026-09-17 (first deploy date; ? days ago). No parameter changes are permitted after this date; any future change ships as a new research track.
- 2021–2026 is DESIGN-CONTAMINATED for v3: these parameters were chosen after observing v2's out-of-sample failure on that window (its exit rule pinned the state red through new all-time highs). v3 results on 2021–2026 are illustrative only — they cannot be evidence of skill. The true test is forward performance from the freeze date.
- Pre-freeze calibration disclosure: the G3 z threshold was set to +3.0 (from an initial draft of +2.0) on the freeze date itself, after verifying +2.0 would have been latched hot on 22 of the 45 sessions before the freeze — the 10Y rose from ≈4.2% to 5.00% between June and September 2026, a +2.7σ move on the 200-day window, which would have kept v3 ARMED throughout. The adjustment was made with knowledge of current data, which is exactly what the contamination warning covers; it is disclosed here and frozen from this date.
- ETF availability: SPHB/SPLV start May 2011, BNO mid-2010, CPER late 2010, GLD late 2004. ETF-based indicators do not exist before 2011, so this track evaluates 2011-01-01 onward and makes no claims about pre-2011 performance.
Data notes
- CCC & Lower OAS: FRED BAMLH0A3HYC (fallback — requested BAMLCC0A0CM does not exist on FRED). Like all ICE BofA series, FRED serves only a rolling 3-year window, so G2 is inactive before ≈2023-09 — there is no long-history CCC proxy.
- HY OAS velocity/level pre-2023 use the Moody's BAA10Y proxy (same data break as v1/v2). Velocity is computed per source series and spliced, so the Baa→HY level jump at the seam cannot register as a false 20-day spike. Baa is tighter and less volatile than HY, so pre-2023 G1 readings are conservative.
- The ISM leg is inactive: ISM withdrew the manufacturing PMI from FRED (NAPM removed), and no redistributable daily series exists. The quorum therefore runs on five live legs; the ISM leg can activate without a code change if FRED restores the series.
- Claims and curve confirmations compare against trailing 1-year / 12-month minima, so they detect deterioration relative to the recent cycle rather than absolute levels.
- Same caveats as v1/v2: FRED publication lags ignored, no vintage adjustment, spliced proxies for pre-ETF history, closing prices only.
Limitations
- This is a research track, not the live system; monitor.py is unchanged. The 45/15-session latches, the exit rule, and every threshold are exogenous design choices — only the freeze discipline is claimed, not optimality.
- The 2011–2020 segment is cleaner than 2021–2026 but still not a true experiment: v3 was designed with knowledge of the major episodes of that decade.
- Because exits can close PHASE 2A while Tier 1 stays latched, quick re-entries are possible; the flip count in the comparison table is the honest cost.