Skip to content

KB/alert

Real Yield Restrictive

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.

Real Yield Restrictive

Alert ID: REAL_YIELD_RESTRICTIVE
Category: credit
Cross-detection: no

Severity

WARNING β€” conditions deteriorating; worth monitoring

Trigger condition

{
  "type": "computed",
  "computation": "vol_scaled_spike",
  "field": "real_yield_10y",
  "value": 2.0,
  "_registry_band_intentional": true,
  "_intentional_reason": "Recalibrated 2026-07 (audit item #8) \u2014 the plain gt-2.0 static threshold fired on 7/10 audited days because real_yield_10y can sit above 2.0 for weeks at a stable level; that's restrictive-and-calm, not restrictive-and-worsening, and the static gate can't tell the two apart. Now gated on a genuine breakout: value must clear the 2.0 floor AND exceed its 20d baseline by _VOL_SCALED_K (1.75) stdevs (app/signals/alerts.py:_vol_scaled_fires). Falls back to the floor alone when the baseline wasn't injected (missing history, <10 usable observations, or zero variance \u2014 see capture.py:_inject_alert_baselines) so the alert never goes silently dark."
}

real_yield_10y > 2.0 AND its deviation from the trailing 20-trading-day baseline exceeds the vol-scaled sigma multiplier (_VOL_SCALED_K in app/signals/alerts.py:_vol_scaled_fires). Falls back to the floor alone when no baseline was injected (missing history, <10 observations, or zero variance β€” see app/signals/capture.py:_inject_alert_baselines).

Message template

10Y real yield at {real_yield_10y:.2f}% {_real_yield_10y_baseline_note}, floor 2.0% β€” restrictive monetary conditions weighing on growth assets.

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