Skip to content

KB/signal

HYG/LQD Ratio

Last verified

Auto-generated. This article is rebuilt from app/signals/config/signal_definitions.json by scripts/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

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

See also