GET /api/v1/signals/drawdown-risk
Last verified
Auto-generated. This article is rebuilt from FastAPI route introspection by
scripts/build_api_kb.py. Edit the route docstring inapp/and re-run the script β do not edit this file directly.
GET /api/v1/signals/drawdown-risk
Handler: app.signals.routes.get_drawdown_risk
Methods: GET
Description
20-day drawdown-risk lens β a transparent z-score composite over nine
credit / inflation / rate / funding LEVELS (hy_oas, ebp, nfci,
real_yield_10y, t10y3m_spread, breakeven_5y/10y, gz_spread,
ofr_fsi_funding). Each level is standardized vs its trailing window-row
baseline (~2y default), oriented by economic risk-direction, and averaged
into a 0-100 gauge. The response also carries trend β a descriptive
5-session trajectory qualifier (worsening / easing / steady
from the point-in-time mean_z delta, dead-banded; abstains on thin
history) β display context on the validated band, never a new band. Per-leg weights come from the feature_weights config
map (unlisted legs default 1.0); ofr_fsi_funding carries 1.5 (highest
forward-drawdown IC, ~0.278, of any tested component) and ebp + gz_spread
carry 0.5 each (#111 3-B reweight β GZ β EBP, so the split keeps the
pairβs combined credit-premium mass at one leg, not double-counted).
The strongest leg is the dealer-gamma positioning input
(net_gex_rank β 252d trailing percentile of the aggregate dealer
net gamma, internal source dealer-gamma analytics / public label βdealer-gamma
analyticsβ). It is the single strongest VALIDATED drawdown input
(net-GEX-rank vs forward maxdd IC β +0.18/+0.25) and carries a genuine
over-weight (2.0), not the 1.0 of the macro legs.
A probabilistic RISK gauge, NOT a predictor or timing trigger β see
app/signals/drawdown_risk.py for the orientation table + caveats
(one bear in-sample, equal-weight macro, regime-specific breakeven sign,
eff-N caveat on the gamma IC).
Multi-horizon container. The response carries a
horizons map (1-3d / 10d / 20d / 40d / 60d) β each slot is
the standard composite shape plus horizon + skill_stamp (the honest
OOS evidence behind that window) + a one-word strength grade
(standard for 10d/20d, weak for 40d/60d, live_prior for 1-3d) the
UI reads to label the slot instead of hard-coding horizon names. The 10d/20d slots serve the full
gamma+macro composite (gamma skill lives at 10-20d); the 40d/60d slots
serve a macro-legs-only composite labeled WEAK / in-sample (fails clean
walk-forward β single 2022 bear). The 1-3d slot is the FROZEN hazard
estimate (drawdown_hazard_1_3d calibration): score: None plus
hazard_p15_pct / hazard_p20_pct / band / source_state,
status: "live_prior", resolved from the latest rowβs
complacency_break_state + vix_close (abstains β unvalidated β when
both are NULL). primary_horizon is now 1-3d (operator 2026-06-10);
the legacy top-level keys still mirror the 20d composite.
Parameters
| In | Name | Type | Default | Description |
|---|---|---|---|---|
| query | window |
int |
504 |
Curl
curl -s https://bigclawd.com/api/v1/signals/drawdown-risk