VIX Spike Above 30
Last verified
Auto-generated. This article is rebuilt from
app/signals/config/alert_thresholds.jsonbyscripts/build_alerts_kb.py. Edit the alert config and re-run the script β do not edit this file directly.
VIX Spike Above 30
Alert ID: VIX_SPIKE
Category: volatility
Cross-detection: no
Severity
WARNING β conditions deteriorating; worth monitoring
Trigger condition
{
"field": "vix_close",
"op": "gt",
"value": 30,
"_registry_band_intentional": true,
"_intentional_reason": "B7 (2026-05) tightened the registry High vol band from 30 \u2192 27 to align the BEARISH implication with the big_down SHAP discriminator. The VIX_SPIKE alert deliberately stays at 30 \u2014 it is a tail-spike notification rather than a band-edge crossing, sitting between the new High vol (27) and Fear (40) bands. Moving it down would over-fire the warning during routine elevated-vol weeks; keeping it at 30 preserves the original 'meaningful spike' semantics."
}
vix_close > 30
Message template
VIX spiked to {vix_close:.1f} β elevated volatility regime.
Rendered with the current signals dict via Python str.format. Placeholders that fail to resolve fall back to the raw template (see _format_message in app/signals/alerts.py).
Cooldown / dedup
- Cooldown: none. Re-evaluation on every cycle.
- Dedup: at most one
active(oracknowledged) row peralert_idat a time. Re-firing while active updatesfired_atand the message but keeps the originalfirst_fired_at.
Notifies
- Active alert feed (
/api/v1/alerts/active,/alerts/summary). - SSE stream (
/api/v1/agents/stream) for real-time consumers. alert_firedwebhook on first fire.alert_resolvedwebhook when the condition clears (non-cross-detection alerts only).
See also
- Signal fields referenced:
vix_close(see the signals reference). - Alert reference
- Live alerts feed