KB / alert
Leading Indicator Divergence
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.
Leading Indicator Divergence
Alert ID: LEADING_DIVERGENCE
Category: alignment
Cross-detection: no
Severity
WARNING — conditions deteriorating; worth monitoring
Trigger condition
{
"type": "computed",
"computation": "leading_divergence"
}
Computed condition (leading_divergence) — the trigger logic lives in app/signals/alerts.py:_eval_computed. This alert does not decompose into a simple field threshold; consult the source for the exact semantics.
Message template
Leading indicator divergence: {leading_divergent_count}/7 leading signals disagree with SPY's {spy_5d_direction} trend — historically precedes repricing within 3-5 days.
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: 2880 minutes (~48.0 h) between fires. After the alert resolves, re-firing is suppressed until the cooldown window has passed.
- 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
- No simple field references — see
app/signals/alerts.py:_eval_computedfor the computed-condition logic. - Alert reference (legacy monolith)
- Live alerts feed