Ekantik Capital Advisors — Correction Intelligence Program
Methodology & Rulebook
The theory, evidence, and governance behind the Correction Dashboard and the Market Positioning ladder.
This dashboard classifies S&P 500 drawdowns by measuring the seller — who is selling and why — rather than the headline. Its authority is the Correction Dashboard System Specification v1.0 (Jul 14, 2026) and “The Anatomy of Correction Depth,” a 50-year backtest of 54 events (Jan 1974 – Jul 2026). Every threshold was frozen from that backtest before the first live reading; the causal chain runs L0 vulnerability → L1 drivers → L2 seller activation → L3 confirmation, and only drivers and the router can move the tier.
Historical base rates — 54 events, 1974–2026
Base rates from the 54-event catalog: roughly one qualifying event (close ≤ −5%) per year since 1974. Of the 54: 27 stopped short of −10% (half of all events die in the speculative band), 20 landed in the 10–20% fundamental-repricing band, and 7 went past −20% into capitulation. Median event depth ≈ 10%. Every capitulation-class event carried at least one of: major credit widening, a Sahm recession signal, or constrained policy — the deepest (GFC, −56.8%) carried all three.
The failed-recovery router — why 30/60 trading days
The failed-recovery router is the system’s behavioral centerpiece. On the first −5% close it opens two windows: 30 trading days to regain the peak, 60 to avoid a lower low. Clean recoveries (regain inside 30td, or 60td passes without a lower low) extended to ≥10% only 7% of the time in the 1990–2022 cohort; failed recoveries extended 58% of the time. Three crashes (1990 January, Volmageddon, COVID) hit −10% before the window could resolve — when the router is moot, speed itself is the signal.
Depth engine — why a range and never a point
In Tier ≥ 2 the depth engine publishes an estimated further-decline range — never a point estimate (the return type has no point field). Four frozen stages: (1) seller-class base band from the event-register tag — speculative 1–5%, fundamental 5–15%, capitulation 15–50%; (2) cascade scoring — red flags (credit, Sahm, breadth, failed recovery, policy) vs green flags (credit quiet, policy free, stable claims, regain attempt) shift the range to the upper or lower half at net ±2; (3) valuation adjustment — analog-event P/E ratio, clamped ×0.5–2.0; (4) policy overlay — CONSTRAINED forces the upper half. Each range ships with the invalidation close that exits the tier.
Global context — correlated international markets
International indices are tracked because correlated selling across regions distinguishes global repricing from a local shakeout: 1987 was a worldwide crash, 1997–98 arrived through Asia and Russia/LTCM, 2010–12 through the euro area, 2015–16 through China’s devaluation, and the Aug-2024 unwind through the yen carry trade. The panel shows each index’s drawdown from its own 6-month closing high and its trailing 60-session correlation of daily returns with the S&P. High correlation + synchronized drawdowns = global confirmation; a US drawdown the rest of the world ignores points to a domestic, usually shallower, catalyst. Two caveats: Asian and European sessions close before New York, so same-date correlation understates their lead; and correlations themselves surge toward 1 in every cascade (they are partly a symptom). Context only — like VIX, this panel can never move the tier.
Falsifiability — FP ledger and retirement criteria
The system is built to be falsified, not defended. Every TRIGGERED / FIRED / ESCALATE reading opens a 9-month outcome window in the false-positive ledger (did a ≥10% event follow?). Pre-committed retirement criteria fire Slack alerts that propose — never apply — suspension: credit impulse after 3 consecutive live triggers with no ≥10% event; Sahm after a 2nd consecutive FIRED with no recession in 12m; the router if live P(≥10%|ESCALATE) drops below 35% over any 10 escalations; rate shock after 2 failed combined flags. Tripwire and state logs are append-only at the database level, and an annual January export re-runs the backtest against the year’s live readings.
Governance — why the thresholds cannot drift
Thresholds are frozen at the Postgres level: UPDATE/DELETE on a frozen row is rejected by trigger. The only mutation path is a written justification (≥50 chars) → 48-hour minimum cool-off (DB-enforced) → countersignature by a second person (proposer cannot countersign; DB-enforced) → an apply RPC. Portal and worker both verify at load that live thresholds match the committed constants and abort on any divergence without a countersigned change.
Tier reference
| Tier | Entry (frozen) | Exit (frozen) | Historical precedent |
|---|---|---|---|
| TIER 0 Baseline | Default state. Tracks the rolling 6-month closing high daily. | — | Between-event periods. Quiet stretches in the catalog run from a few months to multi-year droughts — the mid-1980s and mid-1990s bulls produced the longest gaps between qualifying events. |
| TIER 1 Speculative unwind | First close ≤ −5.0% below the 6-month closing high. | Close regains the cycle high, or the 30-trading-day window closes with no lower low. | Typical residents: 2013 taper tantrum (−5.8%), 2019 trade-war dips (−6.8%, −6.1%), 2021 Evergrande (−5.2%), 1997 Asia I (−6.3%). |
| TIER 2 Fundamental repricing | Close ≤ −10.0%, or failed-recovery ESCALATE + credit impulse TRIGGERED. | ≥ 50% retrace of the decline with credit Δ3m ≤ 0 (narrowing). | 20 of 54 events landed in the 10–20% band: 1998 LTCM (−19.3%), 2011 debt ceiling (−19.4%), 2015–16 China/EM (−14.2%), 2018 Q4 tightening (−19.8%), 2025 tariff shock (−18.9%). |
| TIER 3 Capitulation | Close ≤ −20.0%, or Sahm FIRED + credit crisis > 250bp + policy CONSTRAINED. | Confirmed higher low (manual entry) + Baa−10y narrowing 4 consecutive weeks. | 7 of 54 events: 1973–74 oil embargo (−48.2%), 1980–82 Volcker bear (−27.1%), 1987 crash (−33.5%), 2000–02 dot-com (−49.1%), 2007–09 GFC (−56.8%), 2020 COVID (−33.9%), 2022 inflation bear (−25.4%). |
The frozen-threshold rulebook
These 16 numbers are everything the state machine runs on — every card on the dashboard is a comparison against one of them. They were fixed by the 50-year backtest before the first live reading, and the “backtest basis” column is each number’s evidence. They are frozen at the database level: edits are rejected by trigger, and the only change path is a written justification, a 48-hour cool-off, and a countersignature from a second person. The worker and portal verify on every run that the live values match the committed constants — so this table is provably what is running, not documentation that might have drifted.
| Key | Value | Unit | Backtest basis |
|---|---|---|---|
| CREDIT_CRISIS_LEVEL_BP | 250 | bp | T3 dose-response; >250bp confirms capitulation regime |
| CREDIT_IMPULSE_DELTA3M_BP | 50 | bp | Depth ρ=+0.65 p<0.001; 92% episode association (11/12 since 1974) |
| POLICY_CPI_YOY_PCT | 4 | pct_yoy | Median depth 13.9% vs 9.4% above/below 4%; ρ=+0.30 p=0.03 |
| RATE_SHOCK_DELTA3M_BP | 80 | bp | 56% standalone hit rate (10/18) — conditioning only |
| ROUTER_LOWER_LOW_WINDOW_TD | 60 | trading_days | Failed-recovery test, n=33 (1990–2022): P(≥10%)=58% vs 7% |
| ROUTER_REGAIN_WINDOW_TD | 30 | trading_days | Failed-recovery test, n=33 (1990–2022): P(≥10%)=58% vs 7% |
| RV_ACCEL_RATIO | 1.75 | ratio | Mechanical-class engagement; directionally validated, small n |
| SAHM_ARM_LEVEL | 0.5 | pp | 56% of ≥15% events vs 24% of shallower; FP Aug-2024 |
| SAHM_CLAIMS_YOY_CONFIRM_PCT | 15 | pct_yoy | Confirmation requirement added after Aug-2024 false positive |
| TIER1_ENTRY_DRAWDOWN_PCT | -5 | pct | Event definition: ≥5% close-basis decline from 6-month closing high |
| TIER2_ENTRY_DRAWDOWN_PCT | -10 | pct | Tier taxonomy: fundamental repricing 10–20% |
| TIER2_EXIT_RETRACE_PCT | 50 | pct | Spec §3 exit condition |
| TIER3_ENTRY_DRAWDOWN_PCT | -20 | pct | Tier taxonomy: buy-and-hold capitulation ≥20% |
| TIER3_EXIT_CREDIT_NARROWING_WEEKS | 4 | weeks | Spec §3 exit condition |
| VIX_CONFIRM_CLOSES | 3 | closes | Sustained-3-closes rule per Spec §2 L3 |
| VIX_CONFIRM_LEVEL | 30 | index | T1 19% · T2 77% · T3 100% — endogenous confirmer only |