Skip to content

KB / alert

Bearish Historical Pattern Match

Last verified

Auto-generated. This article is rebuilt from app/signals/config/alert_thresholds.json by scripts/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:

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

Notifies

See also