Skip to content

KB/signal

VIX9D/VIX Ratio

Last verified

Auto-generated. This article is rebuilt from app/signals/config/signal_definitions.json by scripts/build_signals_kb.py. Edit the registry entry and re-run the script β€” do not edit this file directly.

VIX9D/VIX Ratio

What it is

VIX9D/VIX Ratio β€” registry key vix9d_vix_ratio.

W1 vol-regime AMPLIFICATION state read (R1 2026-06-09): the front (9-day) to 30-day VIX ratio. Above 1.0 = inverted front (event/stress pricing); >=1.05 = stressed. Validated as amplification (bigger moves BOTH ways, 1-5d) - NEVER directional; all band implications are deliberately NEUTRAL and it contributes to no score or alignment surface. Band cut-points 1.00/1.05 are panel-quantile-derived (q80/q90), not tuned. Falsifier: 60+ live sessions with band-conditional event rates at base kills the wiring.

Data-pyramid tier

T1 β€” Signal. This metric sits at the signal layer of the platform’s six-tier data pyramid (T0 raw inputs β†’ T5 actionable read). The tier reflects how far the value is from a raw measurement β€” not how strongly it is validated. Abstraction and validation are separate axes: a higher tier is not a claim of stronger evidence.

Horizon & validation

Horizon: 1-3d β€” the window this metric’s measured skill speaks to. A horizon stamp is an evidence claim, not a trading signal.

Evidence: W1 (R1 2026-06-09): >=q80 band OOS lift 4.09x (all25, n_cond=607); SPY-lane wiring-grade check q90 cut 2.62x P3 lift full-span on the exact stored series. AMPLIFICATION (both ways, 1-5d), not direction. Live accrual falsifier open.

Source

Source module: capture
Data source: computed

Derived metric β€” produced inside the platform (app/signals/capture.py or equivalent) rather than fetched as a raw upstream value. See the How it's computed section below for the formula.

How it’s computed

vix9d_vix_ratio = vix9d_close / vix_close (CBOE 9-day VIX over 30-day VIX), computed at capture-time by app/signals/vix_ratio.py:compute_vix9d_vix_ratio. Null-safe: either input missing or VIX <= 0 yields NULL (absent, never stale).

Where it surfaces

Bands / thresholds

Classifier direction: lower_is_better.

Range Label Dot Implication Points
β€” Normal favorable NEUTRAL β€”
β€” Inverted front leaning NEUTRAL β€”
β€” Stressed inversion cautionary NEUTRAL β€”

Health-score / alignment role

Display-only β€” has bands for surface labeling but does not contribute to the health score (scoring is handled by a companion metric).

Release cadence

See also