HY OAS
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.
HY OAS
What it is
HY OAS β registry key hy_oas.
Classifier metric. See the bands table below for the band-by-band reading.
Data-pyramid tier
T1 β Signal. This metric sits at the signal layer of the platformβs six-tier data pyramid (T0 raw inputs β T5 actionable read). The tier reflects how far the value is from a raw measurement β not how strongly it is validated. Abstraction and validation are separate axes: a higher tier is not a claim of stronger evidence.
Horizon & validation
Horizon: 40-60d β the window this metricβs measured skill speaks to. A horizon stamp is an evidence claim, not a trading signal.
Evidence: Macro drawdown-lens leg: forward-maxdd correlation grows with horizon and peaks at 40-60d (breakeven_10y +0.28@20d -> +0.42@60d; ofr_fsi_funding ~+0.278, highest tested). FAILS clean walk-forward (single 2022 bear, in-sample; RT-3 falsifier open). Weak - ships labeled, never as a standalone forecast.
Source
Source module: credit
Data source: back_fillable
Fetched directly from app/sources/credit.py; see source code for the upstream API call and any provider-specific handling.
How itβs computed
Raw ICE BofA US High Yield Index Option-Adjusted Spread from FRED series BAMLH0A0HYM2, reported in percentage points (e.g. 3.45 = 345 bps over the matched-duration Treasury curve). OAS adjusts the spread for embedded call/put options in the constituent bonds β the standard credit-stress proxy. Daily FRED publication. See app/sources/credit.py:40 (_calculate_credit). The classifier bands (Benign / Normal / Watchful / Elevated / Stressed / Crisis) are applied downstream via signal_defs.band_for('hy_oas', value).
Where it surfaces
- API field:
signals.hy_oasonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence) - Surface:
intraday_signalsrow (per-cycle snapshot) - Surface:
/signals/historytime series - Surface:
/signals/sparklines(UI sparklines) - Surface: change markers in the rendered report
Bands / thresholds
Classifier direction: lower_is_better.
| Range | Label | Dot | Implication | Points |
|---|---|---|---|---|
| β | Benign | favorable | BULLISH | 8 |
| β | Normal | leaning | BULLISH | 8 |
| β | Watchful | neutral | NEUTRAL | 6 |
| β | Elevated | cautionary | BEARISH | 3 |
| β | Stressed | adverse | BEARISH | 1 |
| β | Crisis | adverse | BEARISH | 0 |
Health-score / alignment role
- Health score component:
hy_oas(weight + math inapp/signals/config/score_weights.jsonandapp/signals/score.py). - Alignment category:
credit, default weight 0.7 (see/kb/alignmentfor the 11-category framework). - Contributes to:
health_score.HY OAS,implication.credit,alignment.credit,cascade.4
Release cadence
- Publishes:
daily - Lag days:
1
cadence corrected 2026-06-12 (PR-4/L1-6): FRED BAMLH0A0HYM2 publishes the next business morning, stored hy_oas is T-1 (app/sources/credit.py observation walk); was mislabeled intraday.
See also
- /kb/alignment β Alignment framework β 11-category implication vs. price.
- /kb/health-score β Health score β 0-100 composite.
- /kb/api/get-signals-latest β API endpoint that serves this field.