Slippage Modeling Regime-Switching Impact Calibration Playbook

2026-03-29 · finance

Slippage Modeling Regime-Switching Impact Calibration Playbook

Stop Using One Global Impact Curve — Fit by Liquidity Regime and Update Online

Why this note: A single slippage model is usually “right on average, wrong when it hurts.” Production execution should calibrate impact by intraday/liquidity regime and switch policies when the regime changes.


1) Failure Mode in One Sentence

If you fit one global impact curve across all sessions and volatility states, you will underprice tails in stressed regimes and overtrade exactly when liquidity is fragile.


2) Practical Model Stack (Structural + Data-Driven)

At decision time (t), expected cost for action (a):

[ \mathbb{E}[IS_t(a)] = C_{spread} + C_{temp\ impact} + C_{perm\ impact} + C_{timing} + C_{fees} ]

A production-friendly decomposition:

  1. Spread term: crossing + queue-loss penalty
  2. Temporary impact: participation/urgency-sensitive
  3. Permanent impact proxy: adverse selection / information footprint
  4. Timing/opportunity term: alpha decay while waiting
  5. Fee/rebate term: venue + order-type economics

Use structure for interpretability and ML residuals for regime-specific corrections.


3) Core Equations You Actually Need

A) Baseline impact prior (square-root family)

[ I_{prior}(Q) = Y,\sigma,\sqrt{\frac{Q}{V}} ]

This is a useful prior, not a production truth.

B) Participation form for child decisions

[ I_{temp}(u) = \eta_r \cdot u^{\beta_r}, \quad u = \frac{\text{participation rate}}{\text{target liquidity}} ]

C) Transient decay (propagator intuition)

[ \Delta p_t = \sum_{k \le t} G_r(t-k),q_k + \epsilon_t ]

Where (G_r) decays faster/slower depending on regime (normal vs stressed refill speed).


4) Regime Definition (Simple and Robust)

Do not overcomplicate with fragile HMMs on day one. Start with deterministic buckets:

Suggested online signals:

Promote to probabilistic regime labeling only after telemetry quality is stable.


5) Calibration Pipeline (Daily + Intraday Online Updates)

Step 1 — Offline robust fit (per symbol bucket × regime)

Step 2 — Tail model

Step 3 — Online coefficient refresh

Step 4 — Policy linkage

Use cost quantiles for action selection:

[ a_t^* = \arg\min_a; \mathbb{E}[IS_t(a)] + \lambda,\mathrm{CVaR}_{q}(IS_t(a)) ]


6) Telemetry Contract (Must-Have Fields)

Decision features

Market features

Execution outcomes

Labels

If regime label at decision time is missing, your calibration is untrustworthy.


7) Control States for Live Routing

Use hysteresis + minimum dwell time to avoid oscillation.


8) KPIs That Catch Model Drift Early

  1. Coverage Error @ q: observed tail exceedance minus target
  2. Regime Confusion Rate: post-hoc regime mismatch vs decision-time label
  3. Tail Cost Inflation: P95/P50 ratio drift
  4. Late Catch-Up Share: cost paid in final bucket
  5. Venue Fee Drift: predicted vs realized fee/rebate gap

A common anti-pattern: average IS improves while Coverage Error worsens.


9) Rollout Plan (Production-Safe)

  1. Shadow predictions for 1–2 weeks (no policy impact)
  2. Compare old vs new by symbol-liquidity deciles
  3. Canary rollout with notional caps and kill-switch
  4. Promote only if:
    • tail coverage improves,
    • deadline breaches do not increase,
    • fee drift remains bounded

10) Fast Checklist

[ ] Define 3 deterministic liquidity regimes from live microstructure signals
[ ] Fit impact coefficients per regime (not global)
[ ] Model tail quantiles and monitor coverage
[ ] Add online update with sample-size and data-quality guardrails
[ ] Wire model output to NORMAL/GUARD/RECOVERY/SAFE_EXIT state machine
[ ] Gate promotion on tail stability, not mean slippage alone

References


TL;DR

Use a structural impact prior, calibrate by liquidity regime, monitor tail coverage continuously, and switch routing behavior when regime stress appears. One global slippage curve is convenient—but expensive.