Skip to content

Summary

A market regime is a labeled, repeatable state of the options environment that gates which strategies are appropriate and how much risk to carry. The books treat conditions qualitatively — calm vs. choppy vs. typhoon, contango vs. backwardation13 — but a rules-based system needs regimes defined by variables computable ex-ante, before the trading day opens, with no lookahead. This concept fixes the vocabulary and the default state-variable set; detection methods live in Regime Detection Methods and the trading consequences in Regime-Dependent Delta Exposure.

Why Ex-Ante Computability Is Non-Negotiable

A regime label used to size or select today's trades must depend only on data observable at decision time:

  • No lookahead: today's realized close, today's final VRP print, or "what happened after" cannot define the regime you trade in. This is the regime analogue of the vol-forecast discipline in Vol Forecasting Baselines.
  • Stable measurement: each variable has a fixed snapshot time (e.g., prior close, or 09:35 ET), fixed lookback windows, and fixed quantile references computed on trailing data only.
  • Hysteresis over flicker: raw thresholds flip labels on noise. Regime definitions should include a confirmation rule (e.g., N consecutive days in band, or enter/exit thresholds spread apart) so the label is a state, not a ticker.

Candidate State Variables

Variable Definition (ex-ante) Snapshot Why it matters
VIX level band VIX prior close; bands e.g. <15 / 15–25 / 25–35 / >35 prior close Proxy for premium richness and fear level; the books' calm/typhoon axis is essentially this1
VIX/VIX3M term slope VIX ÷ VIX3M prior close; >1 = backwardation, <1 = contango prior close Near-dated fear; backwardation marks acute stress and destroys naive short-premium trades3
VRP sign IV30 (prior close) minus forecast RV30 (e.g., HAR/GARCH on trailing data) prior close The edge baseline from the EV contract: only sell premium when VRP is positive2
Realized-vol percentile Trailing 21d/63d realized vol vs. its trailing 1–3y distribution, fixed windows prior close Separates "IV is high because RV was high" from "IV is rich"
Correlation / dispersion Trailing 21d average pairwise index-member correlation, or index-vol minus avg single-stock vol prior close Drives dispersion trades and how much single-name vs. index exposure is prudent
Credit spreads IG or HY OAS level and 21d change (e.g., FRED data, prior business day) prior business day Leading-ish macro stress signal; widening credit precedes vol spikes more often than it lags them
Skew (25Δ put − 25Δ call IV) Prior close from a liquid index prior close Cost of crash protection; the books' five skew stages map directly onto regime shifts1

Not all of these belong in the default regime label; each added variable costs data sparsity and fragility.

Sourcing the VIX / VIX3M term axis

This table fixes the measurement — both legs at the same prior close — and deliberately not the vendor. Implementation (tools/regime_snapshot.py) reads:

  1. FRED VIXCLS + VXVCLS in one request, latest date carrying both. Primary, and the source cited in every record through 2026-09-25.
  2. Cboe daily_prices/{VIX,VIX3M}_History.csv — the upstream FRED redistributes — consulted only when FRED is absent or stale against max_input_age_business_days, and used only if genuinely fresher.

These are the same numbers, not two opinions: all 23 overlapping trading days from 2026-08-20 to 2026-09-22 agree to the cent. The fallback exists because FRED's redistribution of these two series stalled at the 2026-09-22 close for four business days in September 2026 while the rest of FRED (SP500, T10Y2Y, DGS10) published normally, and the gate sat dark on inputs Cboe already had. Every record names the source that actually fed it in provenance.term_source, and a fallback day carries provenance.term_fallback with FRED's lag.

Never the Cboe live quote. That endpoint ignores the as-of date and produced the 2026-09-17 mixed-instant defect — yesterday's VIX over today's intraday VIX3M, a ratio of no single moment, and a spurious transition. Only the dated history files preserve the prior-close definition above.

Proposed Default Regime Set

A minimal, defensible three-axis partition — each axis computable from prior-close index data alone:

  1. VIX band (calm <20 / normal 20–30 / stressed >30), with a confirmation rule of 2 consecutive closes.
  2. Term slope (contango: VIX/VIX3M < 0.95 / flat 0.95–1.05 / backwardation > 1.05), same confirmation rule.
  3. VRP sign (positive: IV30 forecast exceeds RV forecast / negative otherwise), using the baseline forecast stack from Vol Forecasting Baselines.

This yields 3×3×2 = 18 cells; in practice most mass concentrates in a handful (calm/contango/VRP+; stressed/backwarded/VRP−). A transition is any state where the confirmed label changed within the last N days (e.g., 5) — transitions get their own conservative treatment rather than being lumped into either endpoint regime. As implemented in tools/regime_snapshot.py (2026-09-17), a day is in transition when either today's raw label differs from the confirmed label (pending confirmation) or the confirmed label changed within transition_lookback_days business days (cooling-off). A genuine regime change therefore produces at least one pending day plus the full cooling-off window of no new risk. The bootstrap confirmation (from no label) is not a change. The mapping from these labels to delta targets and structures is defined in Regime-Dependent Delta Exposure.

Validation Discipline

  • Regime-label distributions must be computed point-in-time (labels as of each historical date, using only then-known data).
  • Report per-regime base rates: frequency, average duration, transition matrix — so downstream rules are calibrated to how often regimes actually occur, not to memory.
  • Any claim "strategy X works in regime R" must be evaluated with the EV contract's cost model and VRP baseline, conditioned on the regime label known ex-ante.

Links

References

  • Sinclair, Euan. Option Trading: Pricing and Volatility Strategies and Techniques. Wiley, 2010 — regime-aware volatility trading, VIX term structure.
  • Bollerslev, Tauchen & Zhou, "Expected Stock Returns and Variance Risk Premia," Review of Financial Studies 22(11), 2009 — VRP as a measurable state variable.
  • Fernandes, Medeiros & Scharth, "Modeling and predicting the CBOE market volatility index," Journal of Banking & Finance 45, 2014 — VIX dynamics and predictability.
  • CBOE VIX white paper: https://www.cboe.com/micro/vix/vixwhite.pdf — VIX methodology; VIX3M contract available via CBOE (https://www.cboe.com/products/vix-index-volatility/vix-options-and-futures/).

Canonical Values

The v0 band values above are implemented canonically in tools/regime_config.json (consumed by the snapshot script); this concept documents their rationale. Amendments change the config + mapping_version together per the amendment process.


  1. The five stages of skew and calm/typhoon condition language in TOMIC volatility. ↩↩↩

  2. Volatility forecasting, mean reversion, and selling IV above estimated RV in Natenberg volatility. ↩

  3. Favorable conditions for volatility selling and the risk of selling into backwardation in Volatility Selling. ↩↩

  4. Tracking IV levels and term structure through time in Volatility Charts. ↩