Slippage Jump-Risk in News Windows: A Practical Playbook
Why this matters
Average slippage models fail exactly when it hurts most: around scheduled/unscheduled news. In these windows, spread, depth, and impact parameters move discontinuously (jump risk), so static execution settings become expensive fast.
Objective
Build a news-window aware execution policy that:
- Detects event-risk regime in real time,
- Shrinks participation and aggressiveness before liquidity cliffs,
- Restores speed only after microstructure stabilizes,
- Measures whether policy reduced tail slippage, not just average bps.
1) Regime definition (Normal / Event-Watch / Event-Shock)
Use a compact state machine:
- Normal: baseline spread/depth/imbalance behavior.
- Event-Watch: known macro/earnings window approaching or elevated pre-event signals.
- Event-Shock: post-release dislocation detected (spread jump + depth collapse + high short-horizon volatility).
Transition triggers (example):
t in [event_time - 10m, event_time + 20m]=> at least Event-Watch.spread_z > 3ANDtop_depth_z < -2ANDrv_1m_z > 2=> Event-Shock.- Require persistence (e.g., 20-30s) before downshifting from Shock to Watch.
2) Slippage model extension with jump component
Baseline:
slippage = spread_cost + temp_impact + delay_cost + opportunity_cost
Event extension:
slippage_event = baseline + jump_term
Where jump_term is conditional on regime and captures abrupt repricing risk:
- Event-Watch: small positive premium
- Event-Shock: large premium tied to realized micro-vol + depth scarcity
Practical parameterization:
jump_term = a_r + b_r * rv_1m + c_r * (1/depth_top)where coefficients depend on regimer.- Fit with robust regression / quantile regression (p70, p90) to focus on tail control.
3) Execution controls by regime
Normal
- Standard POV and urgency.
- Passive-first if toxicity is low.
Event-Watch
- Reduce POV cap (e.g., 30-50% cut).
- Tighten max child size.
- Expand minimum refill interval.
- Cancel stale quotes faster.
Event-Shock
- Hard cap on aggression and marketable size.
- Prefer slicing with stricter pause/re-evaluate gates.
- If liquidity is one-sided and markout deteriorates, trigger temporary participation freeze.
- Allow kill-switch when projected residual cost exceeds trade thesis edge.
4) Pre-event checklist (operational)
Before each high-impact event:
- Confirm event schedule + symbol exposure map.
- Load event-specific caps (POV, child size, max sweep).
- Arm automated Shock detector.
- Predefine “resume-normal” conditions.
- Assign explicit fallback (skip/halve/continue) if detector or feed fails.
5) Monitoring metrics that actually matter
Track separately for Normal/Watch/Shock:
- Slippage median, p90, p95
- Adverse markout (30s, 5m)
- Fill rate and underfill ratio
- Budget-breach frequency
- Time spent in each regime
Key KPI:
- Tail Slippage Reduction: p95 in Watch/Shock vs prior policy
- Cost of Defense: extra underfill/opportunity cost from defensive throttling
Goal is better tail survival at acceptable opportunity trade-off.
6) Calibration loop (weekly)
- Re-label event windows from realized data.
- Re-fit jump coefficients by regime.
- Re-test thresholds for false-positive/false-negative balance.
- Evaluate policy frontier:
- x-axis: underfill/opportunity cost
- y-axis: p95 slippage
- Select parameters on efficient frontier, not single best average.
7) Common implementation mistakes
- Using one global slippage coefficient for all times.
- Optimizing mean slippage only while tails explode.
- No hysteresis in state transitions (policy flaps).
- Missing fail-safe path when event feed is delayed.
- No post-event re-acceleration logic, causing unnecessary underfills.
Minimal rollout plan
- Week 1: Regime labeling + monitoring only (no control changes).
- Week 2: Enable Event-Watch throttles.
- Week 3: Enable Event-Shock hard guards with manual override.
- Week 4: Tail-focused review and threshold tuning.
This keeps rollout reversible while quickly reducing “one bad print ruined the day” outcomes.
Bottom line
News-window execution is not a faster/slower toggle. It is a regime-switching risk problem. If you price jump risk explicitly and bind execution controls to regime states, you usually sacrifice a bit of average speed to gain a lot of tail robustness—which is the trade that keeps compounding alive.