Complacency-break calm-lane score
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.
Complacency-break calm-lane score
What it is
Complacency-break calm-lane score β registry key complacency_break_score.
Complacency-break calm-lane state flag (CB-1, 2026-06-10) β the calm-lane sibling of the air-pocket flag (which requires bearish dealer gamma and is structurally blind to complacency breaks). Deterministic STATE descriptor β NOT scored, NOT a predictor; no classification bands, no health-score contribution. LIVE-PRIOR grade (in-sample discovery, permutation-gated); the forward card (CB-2) is the judge.
Data-pyramid tier
T3 β Lens. This metric sits at the lens 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: 1-3d β the window this metricβs measured skill speaks to. A horizon stamp is an evidence claim, not a trading signal.
Evidence: Calm-lane 1-3d drawdown HAZARD read (not a forecast). Two legs survived a locked circular-shift permutation gate at LIVE-PRIOR grade (research/planning/prereg_complacency_break_2026-06-10.md, run 2026-06-10): legA at-flip-into-catalyst shift_p 0.000 (n=40, 20.0% vs ~6.7% calm base, p20); legB expiring-pin shift_p 0.026 (n=28, 28.6% vs 13.3% calm base, p15, modern-era 2024+ only). In-sample discovery 2026-06-10 (research/findings/DDX_complacency_breaks_2026-06-10.md); the permutation gates temporal alignment, not discovery bias β graduation needs the forward card (60+ live calm-lane sessions). Panel evidence; live-flip re-derivation pending. Duty cycle ~14% of calm days. Amplification context, never direction.
Source
Source module: capture
Data source: computed
Derived metric β produced inside the platform (app/signals/capture.py or equivalent) rather than fetched as a raw upstream value. See the How it's computed section below for the formula.
How itβs computed
Number of complacency-break triggers currently firing (0β2) in the calm lane (VIX < 18; VIX >= 18 forces state out_of_lane and zero triggers): at_flip_catalyst (|pct_to_flip| <= 0.25% AND the next trading session is a registered catalyst β FOMC decision, Employment Situation, or monthly OPEX) + expiring_pin (net-GEX 252d percentile rank >= 0.8 AND <= 3 calendar days to monthly OPEX). Each leg null-safe β a missing input makes that leg abstain. CPI/PPI are excluded from the catalyst set (dilution test). See app/signals/complacency_break.py:evaluate_complacency_break.
Where it surfaces
- API field:
positioning.complacency_break.scoreonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence) - Surface:
/signals/historytime series - Surface:
/signals/sparklines(UI sparklines)
Health-score / alignment role
Data carrier β no implication, no health-score contribution.
Persisted for downstream consumers (sparklines, base-rate matcher, calibration substrate) but does not classify into BULLISH / NEUTRAL / BEARISH and does not contribute to the 0-100 health score.
Release cadence
- Publishes:
intraday
See also
- /kb/api/get-signals-latest β API endpoint that serves this field.