Cross-Impact Propagator Slippage Model for Basket Execution
Date: 2026-02-27
Category: research (quant execution / slippage modeling)
Why this playbook
Single-name slippage models underestimate cost when orders are executed as a correlated basket. In practice, trading AAPL can move QQQ, and QQQ flow can feed back into AAPL fills. Ignoring this cross-effect causes:
- optimistic cost estimates,
- wrong urgency allocation across names,
- avoidable p95/p99 slippage blowups during macro-flow windows.
This playbook introduces a production-oriented cross-impact propagator design that extends per-symbol models into a basket-level controller.
Core idea
Model execution impact in vector form:
[ \Delta p_t = \sum_{\ell=0}^{L} G_{\ell},u_{t-\ell} + \varepsilon_t ]
Where:
- (u_t \in \mathbb{R}^N): signed trading rate vector across (N) symbols,
- (G_{\ell} \in \mathbb{R}^{N\times N}): lag-(\ell) impact matrix,
- diagonal entries = self-impact, off-diagonal = cross-impact,
- (\varepsilon_t): exogenous return noise.
So child-order sizing is no longer independent by symbol; it is jointly optimized under cross-coupled costs.
What to log (minimum data contract)
Per child-order and per time bucket (e.g., 250ms/1s):
- symbol, side, qty, notional, participation at send,
- decision/sent/ack/fill timestamps,
- spread, top-of-book depth, imbalance, microprice,
- signed own flow + signed peer flow (same sector/index basket),
- short-horizon markouts (1s, 5s, 30s),
- venue/session flags (open, close, auction-adjacent, event windows).
For basket modeling, also persist:
- dynamic correlation block ID (e.g., tech mega-cap, KOSPI theme cluster),
- index-membership and ETF overlap features,
- rolling ADV-normalized flow vector.
Estimation blueprint
1) Universe compression first
Estimate cross-impact in a reduced factor space to avoid noisy (N\times N) overfit.
- Build (K)-factor flow representation (PCA/sector/index factors),
- Estimate factor-space propagator (\tilde{G}_{\ell} \in \mathbb{R}^{K\times K}),
- Map back to symbol space for execution-time costing.
This gives better stability than brute-force pairwise estimation.
2) Constrain kernels for sanity
Practical constraints:
- decay with lag (transient impact),
- non-explosive cumulative response,
- near-symmetry regularization for cross terms (anti-manipulation prior),
- stronger shrinkage on weakly related pairs.
A useful penalty:
[ \mathcal{L}=\mathcal{L}{\text{fit}} + \lambda_1\sum{\ell}\lVert G_{\ell}\rVert_1 + \lambda_2\sum_{\ell}\lVert G_{\ell}-G_{\ell}^{\top}\rVert_F^2 ]
3) Regime-conditional fit
Fit separate kernels for:
- open auction transition,
- continuous day session,
- close auction transition,
- volatility-stress windows.
Cross-impact is regime-sensitive; one global kernel usually drifts quickly.
Slippage forecast decomposition
For a candidate basket schedule (u_{t:t+H}):
[ \widehat{\text{Cost}} = \underbrace{\widehat{C}{\text{spread+fees}}}{\text{instantaneous}} + \underbrace{\widehat{C}{\text{self-impact}}}{\text{diagonal }G} + \underbrace{\widehat{C}{\text{cross-impact}}}{\text{off-diagonal }G} + \underbrace{\widehat{C}{\text{timing risk}}}{\sigma, residual horizon} ]
Track cross-impact share explicitly:
[ \rho_{\text{cross}} = \frac{\widehat{C}_{\text{cross-impact}}}{\widehat{\text{Cost}}} ]
When (\rho_{\text{cross}}) spikes, independent per-name schedulers are unsafe.
Online controller (production policy)
At each control step:
- Forecast next-horizon cost surface with current (G_{\ell}) regime,
- Solve constrained optimization for child vector (u_t),
- Enforce hard limits (participation, residual deadline, per-name max chase),
- Receding-horizon update every bucket.
A practical objective:
[ \min_{u_{t:t+H}} ; \mathbb{E}[\text{Cost}] + \eta,\text{Var}({\text{Cost}})
- \gamma,\text{ResidualPenalty} ]
subject to inventory completion and risk caps.
Execution heuristics that usually help
- Synchronize correlated legs when cross-impact is strong (do not front-run one leg too far ahead).
- Delay secondary names briefly if lead-name sweep already moved the factor.
- Throttle basket-wide aggression (not just one symbol) in systemic toxicity states.
- Prefer liquidity windows with natural two-way flow for high cross-correlation clusters.
Validation framework
Weekly scorecard:
Forecast quality
- MAPE / calibration by horizon for total and cross-impact components.
Execution outcomes
- p50/p95/p99 implementation shortfall vs diagonal-only baseline,
- completion delay incidents,
- underfill rate by basket type.
Model stability
- kernel drift magnitude,
- symmetry-gap metric (\lVert G-G^\top\rVert),
- regime-switch frequency.
Attribution sanity
- names where cross-impact term dominates >40%,
- post-trade markout consistency on those names.
Failure modes and guardrails
Pairwise overfitting in sparse names
- Use factor compression + shrinkage.
Regime leakage (open/close dynamics pollute day model)
- Fit and serve kernels by session phase.
False precision in weakly linked pairs
- Zero out low-confidence off-diagonal entries.
Controller oscillation
- Add turnover penalty on child-vector changes.
“Great IS, terrible completion” pathology
- Dual-objective with explicit deadline penalty; monitor both.
Minimal rollout plan
Phase 1 — Shadow
- Compute cross-impact forecasts, no execution changes.
- Log counterfactual deltas vs current scheduler.
Phase 2 — Canary (5–10% baskets)
- Enable only synchronization + mild aggression scaling.
- Auto-rollback on p95 degradation or completion SLO breach.
Phase 3 — Scaled control
- Full receding-horizon optimization across correlated basket legs.
- Keep per-basket kill-switch and per-regime override.
Phase 4 — Governance
- Weekly champion/challenger review (cross-impact vs diagonal baseline),
- Drift alerts on kernel instability,
- Monthly stress replay in macro-shock windows.
Practical takeaway
For correlated portfolios, slippage is a network phenomenon, not a sum of independent single-name costs.
A constrained cross-impact propagator framework gives better basket synchronization, fewer tail slippage events, and more reliable completion under real market coupling.
Pointers for deeper reading
- Huang, Lehalle, Rosenbaum — Simulating and analyzing order book data: The queue-reactive model (arXiv:1312.0563).
- Bacry, Mastromatteo, Muzy — Hawkes processes in finance (arXiv:1502.04592).
- Mastromatteo et al. — Trading Lightly: Cross-Impact and Optimal Portfolio Execution (arXiv:1702.03838).
- Schneider & Lillo et al. — Cross-impact and no-dynamic-arbitrage (arXiv:1612.07742).