HYG/LQD Ratio
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.
HYG/LQD Ratio
What it is
HYG/LQD Ratio β registry key hyg_lqd_ratio.
DURATION-MISMATCH FLAW: HYG effective duration ~3.5-4y vs LQD ~8.5y, so in a rates-up shock LQD falls on duration while HYG holds and the ratio RISES mechanically β a false-calm βRisk ONβ read exactly when credit is deteriorating. Validated at corr +0.06 with the OFR credit subindex in rates-up weeks (near-zero credit information when rates move) vs +0.78 full-sample for the duration-matched form. Both band implications are therefore neutralized: a BULLISH/BEARISH dot derived from a duration artifact is the precise failure mode this flag fixes. fsi_credit_nowcast is the duration-isolated replacement read (HYG return hedged by the duration-matched IEI Treasury ETF). The field + history are kept (Law 3 β the ratio measures what it measures); only its directional implication is removed.
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
No validated skill horizon is on file for this metric β read it as context / a data carrier, not a validated edge. Stamps are added only when a gated research verdict lands.
Source
Source module: computed
Data source: back_fillable
Fetched directly from app/sources/computed.py; see source code for the upstream API call and any provider-specific handling.
How itβs computed
HYG Γ· LQD price ratio (junk-bond ETF over investment-grade ETF). Intended as a credit-risk-appetite proxy, but DURATION-MISMATCHED: HYG eff-duration ~3.5-4y vs LQD ~8.5y means LQD carries roughly twice HYGβs rate sensitivity, so in a rates-up shock LQD drops on duration while HYG holds and the ratio rises mechanically β a false βRisk ONβ read precisely when credit deteriorates. Validated at corr +0.06 with the OFR credit subindex in rates-up weeks. Band implications are neutralized; use fsi_credit_nowcast (HYG hedged by duration-matched IEI) for the duration-isolated credit read. Computed in app/sources/market.py:_analyze_macro.
Where it surfaces
- API field:
signals.credit_risk_ratioonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence) - Surface:
/signals/sparklines(UI sparklines) - Sparkline aliases:
hyg_lqd
Bands / thresholds
Classifier direction: higher_is_better.
| Range | Label | Dot | Implication | Points |
|---|---|---|---|---|
| β | Risk ON | favorable | NEUTRAL | β |
| β | Risk OFF | adverse | NEUTRAL | β |
Health-score / alignment role
Display-only β has bands for surface labeling but does not contribute to the health score (scoring is handled by a companion metric).
Release cadence
- Publishes:
intraday
See also
- /kb/api/get-signals-latest β API endpoint that serves this field.