Credit Spreads
A composite signal measuring corporate funding stress from ICE BofA option‑adjusted spreads.
Why: Show corporate funding stress. Add: US High Yield OAS (BAMLH0A0HYM2) and US Corporate Master OAS (BAMLC0A0CM). Source: FRED. Integrate with the Financial Stress Index.
Abstract
We build a monthly Credit Spreads Composite (CSC) from ICE BofA US High Yield OAS and US Corporate Master OAS. Level and momentum features are robust‑standardised and combined into a composite that maps to regimes—EASY, NORMAL, TIGHTENING, STRESSED. The CSC feeds into the broader Financial Stress Index (FSI) as a key sub‑pillar alongside Liquidity, VIX, and Funding indicators.
Version 1.1 — Methodology Amendments
- Vendor revisions & reporting lag: ICE OAS series can be revised and can lag by ~1 business day; levels can be distorted when bid–ask spreads widen in market stress.
- Composite weighting: baseline fixed-weight composite is retained for continuity, but we add an experimental volatility-/regime-aware reweighting option and publish component contributions for transparency.
- Momentum overlay: the regime decision now explicitly uses both level and momentum (3‑month annualised change) with a persistence check to reduce one‑off spikes.
- Time-varying percentiles: percentile ranks are computed over a rolling window (default 10 years) and exposed as an output so users can see when “wide” is wide relative to the recent distribution.
- Vendor revisions & lag: ICE may revise recent observations; allow 1–2 business days for “final” prints and keep a retrieval timestamp for audit.
- Stress distortion: during liquidity shocks, bid–ask widening can inflate observed spreads; winsorisation and persistence rules reduce false regime flips.
1) Data (FRED Identifiers)
- BAMLH0A0HYM2 — ICE BofA US High Yield Index Option‑Adjusted Spread (pct points).
- BAMLC0A0CM — ICE BofA US Corporate Master Option‑Adjusted Spread (pct points).
Frequency: daily; we aggregate to month‑end or week‑end snapshots. Units are percentage points (bps/100). Titles and last‑obs dates are logged.
- What OAS represents: ICE BofA option‑adjusted spreads are the spread between an index‑level OAS (market‑cap weighted across constituents) and a spot U.S. Treasury curve.
- Rating universe: BAMLH0A0HYM2 covers below‑investment‑grade (BB or lower); BAMLC0A0CM covers investment‑grade (BBB or higher).
- Month-end mechanics: when the last calendar day falls on a weekend, weekend observations can occur due to month‑end accrued‑interest adjustments.
- Known practical frictions: levels can be impacted by market microstructure (wider bid–ask spreads, dealer balance‑sheet constraints) and vendor revisions; treat single‑day moves cautiously during stress.
2) Data Quality & Validation
- Staleness: flag if last observation > 7 days old (daily series).
- Forward‑fill: bounded alignment fill ≤ 5 business days for calendar snaps.
- Winsorisation: 0.5–99.5th percentiles to reduce crisis‑era leverage in z‑scores.
- Minimum history: ≥ 120 months preferred; adaptive ≥ 60 months allowed.
data_quality_flag records staleness, ffill count, and window adaptations.
3) Component Transforms
For spread series s_t (pct points):
Constructed components for HY and Corp Master: hy_level, hy_d3m_ann, hy_d12m, hy_pct_rank, and analogues for ig_*.
4) Standardisation (Rolling z-scores)
Compute rolling z‑scores using robust median/MAD; fallback to mean/std if MAD=0 or short history.
Suggested windows: W=120 months for levels; W=60 months for momentum.
5) Composite & Weighting
We emphasise the High Yield level and percentile, as HY is more sensitive to stress, with supporting weight from changes and IG spreads. Missing inputs are renormalised out.
{
"hy_level_z": 0.30, "hy_pct_rank": 0.20, "hy_d3m_ann_z": 0.15, "hy_d12m_z": 0.10,
"ig_level_z": 0.15, "ig_pct_rank": 0.05, "ig_d3m_ann_z": 0.03, "ig_d12m_z": 0.02
}
Experimental dynamic weighting (optional): compute component volatilities over a rolling window (e.g., 36–60 months) and tilt weights toward more stable components (inverse‑volatility) or toward HY components when a broader volatility regime is elevated (e.g., VIX/STLFSI high). Publish both CSC_fixed and CSC_dyn to preserve comparability while enabling research.
6) Scaling & Regime Mapping
Regimes communicate stress levels using composite z‑scores and absolute spread bands:
- EASY: HY < 3.5% and CSC z < −0.5
- NORMAL: 3.5% ≤ HY < 5% and CSC z in [−0.5, +0.5)
- TIGHTENING: HY rising > 50 bps in 3 months or CSC z ≥ +0.5
- STRESSED: HY ≥ 6.5% or CSC z ≥ +1.0
We also publish a 0–100 score via rolling min–max over 10 years.
Persistence / momentum overlay (v1.1): require that either (a) CSC z remains above the threshold for 2 consecutive observations, or (b) the level condition (HY) and momentum condition (Δ3m annualised) agree, before upgrading to TIGHTENING/STRESSED. This reduces whipsaws from one‑day prints or microstructure noise.
Time-varying percentiles: percentile ranks are computed on a rolling 10‑year window (120 months) by default and are recalculated each period; avoid comparing percentile ranks across different window settings without noting the window.
7) Integration with Financial Stress Index (FSI)
- CSC enters the FSI as the Credit pillar alongside Liquidity, Volatility (VIX), and Funding/TED measures.
- When VIX is ELEVATED/STRESSED and CSC is TIGHTENING/STRESSED, the FSI upgrades to higher stress regimes.
- Divergences (e.g., calm VIX but widening spreads) are flagged in “Risk Checks & Contradictions.”
8) Implementation Notes (Python)
# FRED series (daily)
hy = fred.get_series("BAMLH0A0HYM2") # HY OAS (pct points)
ig = fred.get_series("BAMLC0A0CM") # Corp Master OAS (pct points)
# Resample to month-end with bounded ffill (<=5b)
hy_m = hy.resample("M").last().ffill(limit=5)
ig_m = ig.resample("M").last().ffill(limit=5)
def ann_3m(s): return 4*(s - s.shift(3))
components = {
"hy_level": hy_m, "hy_d3m_ann": ann_3m(hy_m), "hy_d12m": hy_m - hy_m.shift(12),
"ig_level": ig_m, "ig_d3m_ann": ann_3m(ig_m), "ig_d12m": ig_m - ig_m.shift(12),
}
# Percentile ranks over 120 months; robust rolling z-scores; weights -> CSC; map regimes.
9) Reproducibility & Monitoring
- Persist FRED IDs, retrieval timestamps, resampling policy, and windows.
- Log winsorisation bounds, staleness flags, and window adaptations.
- Store panels: raw, transforms, z-scores, contributions, composite, regimes.
10) Interpretation & Applications
Credit spreads price default and liquidity premia. Rising HY spreads typically precede equity drawdowns and slower capex. Use CSC in concert with VIX and Liquidity to calibrate risk appetite and stress testing.
11) Governance & Change Control
- Quarterly review of components, thresholds, and weights vs backtests.
- Document methodology updates; maintain semantic versioning.
12) Model Interpretation (How to Read the Signal)
What the spreads “mean” economically: corporate spreads embed (i) expected default losses and (ii) time‑varying risk premia and liquidity compensation. In stressed markets, the liquidity/risk‑premium component can dominate moves in observed spreads.
- Level (HY / IG OAS): higher levels indicate tighter corporate funding conditions. HY is typically more cyclically sensitive than IG.
- Momentum (Δ3m annualised, Δ12m): rapid widening is often more informative than the level alone for transition risk (shock propagation into equities and real activity).
- Percentile rank: interpret as “how unusual” current spreads are relative to the recent distribution (rolling window). A high percentile with flat momentum is often late‑cycle/plateau; a high percentile with accelerating momentum is acute stress.
- Composite z-score: a standardised summary for cross‑pillar aggregation (FSI). Use component contributions to identify whether HY, IG, or momentum is driving the signal.
- Data quality flags: treat regime changes as lower confidence when
stale, heavyffill, or large bid–ask/widening episodes are present.
Cross-checks: interpret the credit pillar jointly with volatility (VIX), liquidity (reserves/repo), and funding metrics. “Widening spreads with calm VIX” often signals early credit deterioration; “high VIX with stable spreads” often reflects equity-specific volatility rather than credit tightening.
Academic anchors (selected)
- Decompositions showing a large, time‑varying risk‑premium component (“excess bond premium”) that predicts macro outcomes: Gilchrist & Zakrajšek (2012).
- Evidence that corporate spreads reflect default risk and nondefault components linked to liquidity and market‑wide conditions: Longstaff, Mithal & Neis (2005).
- Liquidity effects in crises (illiquidity contribution to spreads rises sharply when markets are stressed): Dick‑Nielsen, Feldhütter & Lando (2012).
These references justify interpreting OAS moves as a blend of fundamentals and market frictions, motivating robustness tools (winsorisation, persistence, and volatility‑aware weighting).