Index-Futures Spillover Slippage Modeling Playbook
Date: 2026-03-08
Category: Research (slippage modeling)
Focus: Modeling and controlling execution slippage in single names when index-futures flow and basis dislocations spill into cash microstructure.
1) Why this matters
Many equity execution models assume each symbol’s short-horizon slippage is mostly local (spread, depth, queue, own participation). In practice, that fails during:
- index futures bursts (open, macro timestamps, close ramps),
- basis dislocations,
- ETF create/redeem pressure,
- cross-venue risk-off de-leveraging.
In these windows, cash-book conditions are partly downstream of derivatives flow, so local-only slippage models underprice tails and respond too late.
2) Core idea
Model expected child-order cost as:
[ \text{Slippage}{t,h} = f{\text{local}}(X_t) + f_{\text{spill}}(Z_t) + f_{\text{interaction}}(X_t, Z_t) + \epsilon ]
Where:
- (X_t): local microstructure features (spread, depth slope, queue pressure, cancel intensity, own POV)
- (Z_t): derivatives/portfolio spillover features (futures return shock, futures OFI, basis z-score, ETF flow proxy, cross-asset realized vol)
- (f_{\text{interaction}}): nonlinearity (e.g., futures shock * thin local depth)
Use a quantile-first target (q50/q90/q95) instead of mean-only, since spillover mostly explodes upper tails.
3) Data contract
3.1 Required event clocks
- Exchange timestamp (if available)
- Gateway receive timestamp
- Strategy decision timestamp
- Child order sent/ack/fill timestamps
Maintain strict time quality flags; stale or uncertain clocks should lower model confidence.
3.2 Join domains
- Cash symbol microstructure (L1/L2, queue stats, cancels/trades)
- Index futures stream (best bid/ask, trades, order-flow imbalance)
- ETF / basket pressure proxies (premium-discount, implied rebalance pressure)
- Volatility and regime context (intraday RV, event windows)
Resample to a common short horizon (e.g., 100ms / 250ms / 1s) with explicit missingness markers.
4) Feature set
4.1 Local (X)
- Relative spread (bps)
- Effective depth at top k levels
- Queue imbalance / microprice skew
- Cancel-to-trade ratio and refill half-life
- Own participation and recent aggressive volume
4.2 Spillover (Z)
- Futures return burst: (r^{fut}_{t,\Delta})
- Futures OFI shock percentile
- Basis dislocation z-score: [ B_t = \frac{P^{cash_index}_t - \beta P^{fut}_t}{\hat\sigma_B} ]
- Cross-impact proxy: weighted peer move excluding target symbol
- ETF pressure proxy: premium/discount + primary-flow indicators (when available)
4.3 Interaction terms
- futures_shock × low_depth
- basis_z × cancel_intensity
- futures_OFI × own_POV
These terms usually explain why similar local books produce very different realized costs.
5) Modeling stack
Use a two-layer stack:
- Baseline local model: robust linear/GBDT quantile model on (X)
- Spillover residual model: predict residuals with (Z) and ((X,Z)) interactions
Final quantile estimate: [ \hat Q_{\tau} = \hat Q^{local}{\tau} + \hat Q^{spill}{\tau} ]
Practical note: this decomposition helps diagnose whether slippage miss came from local-book misfit vs cross-asset shock.
6) Regime state machine (for execution controls)
Define a Spillover Stress Score (SSS) combining normalized futures shock, basis z, and local fragility:
[ SSS_t = w_1|r^{fut}_{burst}| + w_2|B_t| + w_3\text{Fragility}_t ]
States:
- NORMAL: SSS < a
- WATCH: a ≤ SSS < b
- STRESS: b ≤ SSS < c
- SAFE: SSS ≥ c or model confidence collapse
Control policy example:
- NORMAL: standard adaptive POV
- WATCH: reduce clip size, widen passive patience bands
- STRESS: cap aggression, throttle participation, avoid fragile venues
- SAFE: freeze high-risk tactics, execute only minimal risk-reducing flow
Use hysteresis (enter at high threshold, exit at lower threshold) to prevent state flapping.
7) Calibration and monitoring
7.1 Offline (weekly)
- Refit feature transforms and model parameters
- Re-evaluate feature importance drift
- Stress-test on top 5% futures shock windows
7.2 Online (intraday)
- Quantile coverage tracking (target vs realized exceedance)
- Tail breach rate in STRESS/NORMAL separately
- Spillover attribution ratio: [ SAR = \frac{|\hat Q^{spill}{0.95}|}{|\hat Q{0.95}| + \epsilon} ]
If SAR spikes and coverage worsens, tighten controls or degrade to safer policy.
8) Validation checklist
Before promotion:
- q95 calibration error improves vs local-only baseline
- Tail exceedances reduced in high futures-shock windows
- Completion risk does not blow out beyond desk limits
- State machine transitions are stable (low flap rate)
- Rollback and SAFE-mode triggers tested in replay
9) Common failure modes
- Clock misalignment between futures and cash streams -> false lead-lag signals
- Feature leakage from post-fill windows -> fake model gains
- Overfitting event days -> poor normal-day behavior
- No completion constraint -> slippage improves by simply not filling
- Control overreaction -> aggressive throttling causes opportunity-cost blowups
Guardrails: time-quality checks, strict as-of joins, dual objective (cost + completion), and canary rollout with hard rollback rules.
10) Minimal rollout plan
- Shadow mode (1–2 weeks): score only, no control actions
- Assist mode: operator-visible recommendations, manual acceptance
- Limited auto mode (small notional): WATCH/STRESS controls enabled
- Scaled mode: expand notional only after stable q95 and completion metrics
Always keep a deterministic fallback policy available for SAFE state.
11) Practical takeaway
When index-futures flow is driving local books, local-only slippage models become structurally blind. A spillover-aware stack (with explicit regime controls and tail calibration) converts that blind spot into measurable, controllable execution risk.