KB / signal
BBB Spread Δ20d
Last verified
Auto-generated. This article is rebuilt from
app/signals/config/signal_definitions.jsonbyscripts/build_signals_kb.py. Edit the registry entry and re-run the script — do not edit this file directly.
BBB Spread Δ20d
What it is
BBB Spread Δ20d — registry key bbb_spread_20d_chg.
20-trading-day change of the BBB credit spread (percentage points), computed at capture time from trailing daily_signals.bbb_spread history. Pure data carrier for the analogue matcher’s drawdown-risk lane — no bands, no health-score contribution. The raw bbb_spread level stays display_only (subsumed by hy_oas); only its direction-of-change is the matcher dimension.
Source
Source module: capture
Data source: computed
Derived metric — produced inside the platform (app/signals/capture.py or equivalent) rather than fetched as a raw upstream value. See the How it's computed section below for the formula.
How it’s computed
Change of the BBB credit spread over the last 20 trading rows: bbb_spread(t) - bbb_spread(t - 20 rows), in percentage points. Computed at capture time in app/signals/capture.py:_inject_bbb_spread_20d_chg from the trailing daily_signals.bbb_spread history (the value 20 rows back); NULL when fewer than 20 prior rows carry a bbb_spread. Series exists 2023+ only (zero 2022-bear coverage) — historical rows before that stay NULL and the matcher skips the dim for those analogues. Backfilled by scripts/backfill_bbb_spread_chg.py.
Where it surfaces
- API field:
signals.bbb_spread_20d_chgonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence)
Health-score / alignment role
Data carrier — no implication, no health-score contribution.
Persisted for downstream consumers (sparklines, base-rate matcher, calibration substrate) but does not classify into BULLISH / NEUTRAL / BEARISH and does not contribute to the 0-100 health score.
Release cadence
- Publishes:
daily
See also
- /kb/api/get-signals-latest — API endpoint that serves this field.