Cross-Impact Propagator Slippage Model for Basket Execution

2026-02-27 · finance

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:

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:

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):

For basket modeling, also persist:


Estimation blueprint

1) Universe compression first

Estimate cross-impact in a reduced factor space to avoid noisy (N\times N) overfit.

This gives better stability than brute-force pairwise estimation.

2) Constrain kernels for sanity

Practical constraints:

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:

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:

  1. Forecast next-horizon cost surface with current (G_{\ell}) regime,
  2. Solve constrained optimization for child vector (u_t),
  3. Enforce hard limits (participation, residual deadline, per-name max chase),
  4. Receding-horizon update every bucket.

A practical objective:

[ \min_{u_{t:t+H}} ; \mathbb{E}[\text{Cost}] + \eta,\text{Var}({\text{Cost}})

subject to inventory completion and risk caps.


Execution heuristics that usually help


Validation framework

Weekly scorecard:

  1. Forecast quality

    • MAPE / calibration by horizon for total and cross-impact components.
  2. Execution outcomes

    • p50/p95/p99 implementation shortfall vs diagonal-only baseline,
    • completion delay incidents,
    • underfill rate by basket type.
  3. Model stability

    • kernel drift magnitude,
    • symmetry-gap metric (\lVert G-G^\top\rVert),
    • regime-switch frequency.
  4. Attribution sanity

    • names where cross-impact term dominates >40%,
    • post-trade markout consistency on those names.

Failure modes and guardrails


Minimal rollout plan

Phase 1 — Shadow

Phase 2 — Canary (5–10% baskets)

Phase 3 — Scaled control

Phase 4 — Governance


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