KB / alert
Bearish Historical Pattern Match
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.
Bearish Historical Pattern Match
Alert ID: BASE_RATE_BEARISH
Category: composite
Cross-detection: no
Severity
WARNING — conditions deteriorating; worth monitoring
Trigger condition
{
"type": "and",
"conditions": [
{
"field": "health_score",
"op": "lt",
"value": 35
},
{
"field": "vix_close",
"op": "gt",
"value": 25,
"_registry_band_intentional": true,
"_intentional_reason": "B7 (2026-05) tightened the registry Elevated band from 25 \u2192 22; this composite alert deliberately keeps the legacy 25 cutoff. The bearish-pattern match needs a clearly-elevated VIX as confirmation alongside low health score + weak DIX \u2014 22 fires on too many borderline days for an analogue-quality match. The band tightening already pulled the alignment.volatility BEARISH implication earlier; this composite alert sits a rung above for the historical-pattern call-out."
},
{
"field": "dix",
"op": "lt",
"value": 0.42
}
]
}
All of the following must hold:
health_score< 35vix_close> 25dix< 0.42
Message template
Pattern matches bearish historical setups: low health score ({health_score:.0f}), elevated VIX ({vix_close:.1f}), weak DIX ({dix:.3f}) — analogues suggest elevated downside risk.
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).