Queue-Position Hazard + Fill-Probability Slippage Playbook
Date: 2026-03-11
Category: knowledge (quant execution / slippage modeling)
Why this matters
Most execution stacks still model slippage with coarse features (spread, top-of-book size, volatility, participation).
That misses a critical reality: you pay slippage when your expected queue outcome is wrong.
If your model assumes passive fills that never happen (or happen too late), you overstay, then cross at worse prices. The hidden cost is not just impact; it is queue-outcome miscalibration.
Core idea: two coupled models, not one
Use a coupled system:
- Queue-position hazard model: predicts event-time risk that your passive order loses economic value (stale, bypassed, or canceled before useful fill).
- Fill-probability-conditioned slippage model: predicts cost distribution under that hazard state.
The first model predicts what execution path is likely. The second prices the cost of that path.
Definitions
Let:
- (q_t): estimated queue position (shares ahead) at time (t)
- (\lambda^{fill}_t): hazard of receiving meaningful fill in next (\Delta t)
- (\lambda^{decay}_t): hazard that passive edge decays (adverse move / stale quote / miss risk)
- (p^{fill}_{t,H}): probability of reaching target fill by horizon (H)
- (C): implementation shortfall in bps
Expected cost with path mixture:
[ \mathbb{E}[C] = p^{fill}{t,H} \cdot \mathbb{E}[C \mid \text{passive-success}] + (1-p^{fill}{t,H}) \cdot \mathbb{E}[C \mid \text{fallback-aggressive}] ]
Tail-aware objective:
[ \min ; \alpha \cdot \mathbb{E}[C] + (1-\alpha) \cdot Q_{95}(C) ]
Feature set (practical, production-friendly)
A) Queue-state features
- estimated shares ahead (L1/L2 reconstruction)
- cancellation intensity ahead of us
- same-side join rate vs opposite-side depletion rate
- queue age (time since order entered)
- venue-specific matching behavior proxy
B) Microstructure regime features
- spread state (1-tick vs multi-tick)
- microprice imbalance and drift
- short-horizon realized volatility (e.g., 100ms/500ms)
- trade sign autocorrelation
- quote update burstiness
C) System + routing features
- decision-to-wire latency
- ack latency / venue jitter
- cancel-replace success latency
- smart-router hop count / recent rejects
D) Constraint features
- remaining schedule urgency
- parent completion gap
- participation cap headroom
- hard deadline distance
Model architecture
Layer 1 — Event-time queue hazard
Train two hazards in event time (not wall-clock only):
- (\lambda^{fill}): chance of useful passive fill event
- (\lambda^{decay}): chance passive alpha decays before fill
Good candidates:
- piecewise exponential hazard with regime buckets
- gradient-boosted survival model
- discrete-time hazard classifier (fast online refresh)
Output:
- (p^{fill}_{t,H})
- expected time-to-fill
- decay-risk score
Layer 2 — Conditional slippage surface
Predict (C) distribution conditioned on Layer-1 outputs + market regime:
- q50/q75/q90/q95 bps forecasts
- separate heads for passive-success vs fallback-aggressive paths
- quantile model preferred over mean-only regression
Layer 3 — Policy selector
Convert predictions into action class:
- HOLD_PASSIVE (stay)
- REPRICE_PASSIVE (improve queue chance)
- CROSS_SMALL (controlled aggression)
- CROSS_FAST (deadline/tail override)
Decision policy (simple version)
At each decision slice:
- compute (p^{fill}_{t,H}) and decay risk
- estimate passive-path and fallback-path cost quantiles
- choose action minimizing cost under completion constraints
Example guardrail rule:
- if (p^{fill}{t,H} < p{min}) and projected q95 overshoots tail budget, force
CROSS_SMALLorCROSS_FASTdepending on deadline.
This avoids the classic “wait too long, panic-cross too big” failure.
Calibration + monitoring
Calibration targets
- reliability of (p^{fill}_{t,H}) (bin calibration error)
- Brier/log loss by symbol-venue-time bucket
- quantile coverage for slippage heads (e.g., q90 hit rate)
Online drift checks
- queue-position proxy drift (reconstruction mismatch)
- latency regime drift (p50/p99 wire+ack)
- markout drift after policy transitions
Red flags
- overconfident fill probabilities in fast tape
- good mean cost but worsening q95/q99
- completion misses rising while model “thinks” passive is safe
Backtest / replay protocol
Use event replay with frozen market data + realistic latency injection:
- baseline policy (current production)
- hazard-only gating
- full coupled model (hazard + conditional slippage)
Compare:
- implementation shortfall (mean + tails)
- completion rate
- cancel/replace load
- regime-specific performance (open, lunch, close, news bursts)
Require improvement in tail cost without completion damage before rollout.
Rollout plan
- Shadow mode (1-2 weeks): compute predictions, no action change.
- Canary (5-10% notional): enable policy selector with conservative thresholds.
- Progressive scaling: widen universe by liquidity buckets.
- Full production with automatic rollback if:
- q95 shortfall degrades beyond threshold,
- completion misses exceed budget,
- calibration error spikes.
Implementation checklist
- Event-time order book reconstruction validated
- Queue-position estimator versioned + tested
- Hazard model + quantile slippage model trained per bucket
- Real-time feature parity checks (train vs live)
- Policy simulator approved by risk constraints
- Canary alerts wired (tail, completion, drift)
Bottom line
Slippage is path-dependent. The path is largely decided by queue outcomes before your final cross.
A queue-hazard + fill-probability-conditioned cost model turns that hidden path risk into explicit control logic, reducing panic aggression and improving tail behavior where real PnL damage usually lives.