Slippage Modeling Stack: From IS Decomposition to Live Routing (Practical Playbook)

2026-03-16 · finance

Slippage Modeling Stack: From IS Decomposition to Live Routing (Practical Playbook)

Date: 2026-03-16
Category: research
Audience: small quant/operator teams running real capital with limited infra headcount


Why this research matters

"Slippage" is often tracked as one number (realized vs expected), but execution operations need a causal model:

Without decomposition, teams overfit tactics to noise (e.g., blaming venue when the real issue is decision→gateway delay).

The practical target is not perfect prediction. It is stable pre-trade cost ranking + post-trade attribution that operators trust.


1) Cost decomposition you can run daily

For a parent buy order with decision price (P_0), shares (Q), and executed child fills ((q_i, p_i)):

[ IS_{bps}=10^4\cdot s\cdot\frac{\bar{P}-P_0}{P_0},\quad s=+1\ (buy),\ -1\ (sell) ]

Operationally split into:

[ IS \approx Spread + Fees/Rebates + Delay + TemporaryImpact + PermanentImpact + OpportunityCost ]

Where opportunity cost for unfilled residual (Q-Q_f) is marked at a deadline benchmark (close, TWAP horizon end, or strategy next decision time).

Key rule: keep this decomposition deterministic and versioned (benchmark choice changes numbers materially).


2) Baseline model family (fast, robust)

Before deep models, deploy a strong linear/nonlinear baseline on signed bps cost:

[ \hat{IS}=\beta_0 +\beta_1\cdot \text{halfSpread}{bps} +\beta_2\cdot \left(\frac{|Q|}{ADV}\right)^{1/2} +\beta_3\cdot \sigma{intraday} +\beta_4\cdot \text{participation} +\beta_5\cdot \text{latency}_{ms} +\beta_6\cdot \text{queueImbalance} +\beta_7\cdot \text{regimeDummies} ]

Useful choices:

This already beats many ad-hoc cost heuristics in production.


3) Impact priors that generalize

Use empirical priors as regularizers, not gospel:

A) Square-root impact prior

[ I(Q) \approx Y\cdot\sigma\cdot\sqrt{\frac{|Q|}{V}} ]

B) Participation-rate prior

[ I \propto \sigma\cdot \eta^{\delta},\quad \eta=\frac{\text{traded volume rate}}{\text{market volume rate}},\quad \delta\in[0.4,0.8] ]

In live systems, the right move is usually:


4) Feature contract for production slippage models

Minimum feature blocks (point-in-time safe):

  1. Order state: side, remaining qty, urgency, deadline
  2. Microstructure: spread, top-N depth, imbalance, recent trade sign pressure
  3. Participation: child size / rolling venue volume
  4. Volatility: short-horizon realized vol + gap/open/close flags
  5. Path latency: decision→send, send→ack, ack→fill
  6. Venue/routing: venue id, order type, midpoint/peg flags
  7. Fee table version: explicit snapshot id at decision time

If one of these is missing, model confidence must be downgraded automatically.


5) Training/validation protocol (operator-safe)

Split

Metrics

Deployment gates


6) Online serving pattern

Two-stage serving works best:

  1. Fast scorer (<1 ms): predicts mean + q90/q95 per tactic
  2. Policy layer: chooses tactic minimizing

[ Score = E[IS] + \lambda_{tail}\cdot Q95(IS) + \lambda_{deadline}\cdot P(unfinished) ]

Hard constraints override score:


7) Post-trade attribution loop (the part teams skip)

Daily runbook:

Weekly runbook:

This is where slippage models become operations tooling, not just research output.


8) Common failure patterns and fixes

  1. Ignoring opportunity cost → model recommends passive tactics that “look cheap” but miss fills.
    Fix: include deadline-completion terms and residual mark-to-benchmark.

  2. Latency treated as noise → unexplained drift during infra incidents.
    Fix: make path-latency first-class features and alert dimensions.

  3. Single global model across all liquidity regimes.
    Fix: hierarchical/bucketed models with shared priors.

  4. Fee table drift not versioned.
    Fix: point-in-time fee snapshot id in both features and attribution.

  5. No tail governance (mean error looks fine, blowups keep happening).
    Fix: quantile objectives + breach-rate SLOs.


9) Minimal 10-day implementation plan

Days 1-2
Define deterministic IS decomposition + benchmark policy.

Days 3-4
Build feature contract and PIT-safe dataset manifests.

Days 5-6
Train robust baseline (mean + q90/q95), bucketed by liquidity regime.

Days 7-8
Wire online scorer + policy layer with hard constraints.

Day 9
Shadow run against current tactic, collect residual diagnostics.

Day 10
Canary with tight kill-switches; freeze runbook v1.


Bottom line

A practical slippage model is a control system:

If you can only do one thing this month: ship deterministic IS decomposition + q95-aware tactic ranking. That alone typically removes a large fraction of avoidable execution drag.


References