Intraday Liquidity-Drought Slippage Playbook
Date: 2026-03-10
Category: research (quant execution / slippage modeling)
Why this matters
Most slippage models learn a smooth intraday volume curve and assume “midday is slower but predictable.”
In live trading, midday often behaves like a liquidity drought regime:
- displayed depth looks normal until touched,
- refill speed collapses,
- quote lifetimes shrink,
- completion pressure accumulates into the final hour.
If this regime is not explicitly modeled, desks under-price passive miss risk at noon and then overpay catch-up cost later.
Core concept: Liquidity Drought Cost (LDC)
Model midday execution as a branch problem:
[ \text{LDC} = \text{PassiveMissTax} + \text{RerouteTax} + \text{DeadlineCatchupTax} - \text{SpreadSavedByPatience} ]
Control objective:
[ \min_a; \mathbb{E}[C|a] + \lambda,\mathrm{CVaR}_{95}(C|a) + \eta,\mathrm{CompletionRisk}(a) ]
where action (a) includes participation, passive/aggressive mix, and urgency schedule by time bucket.
Regime signals (drought detection)
Build a Liquidity Drought Score (LDS) from standardized features:
- Refill Half-Life (RHL): time for top-of-book depth to recover after a touch.
- Quote Survival Median (QSM): median lifetime of best quotes.
- Executable Depth Ratio (EDR): realized fillable size / displayed size near touch.
- Micro-Spread Fragility (MSF): probability spread widens within (\Delta t) after interaction.
- Residual-Time Pressure (RTP): remaining parent size relative to time-to-deadline.
Suggested state map:
- HEALTHY: low LDS, normal refill
- DRYING: LDS rising, refill slowing
- DROUGHT: high LDS, passive miss/cancel risk elevated
- SAFE: uncertainty spike or budget breach; preserve completion
Use hysteresis to avoid flip-flopping.
Modeling stack
Layer 1 — Child-order branch model
Estimate:
- (P(\text{fill})), (P(\text{partial})), (P(\text{miss}))
- post-fill markout (multi-horizon)
- expected retry latency and queue-reset loss
Key features:
- LDS components,
- time-of-day bucket,
- local volatility and microprice drift,
- cancel intensity and depth convexity,
- parent residual and urgency.
Layer 2 — Parent completion model
Estimate cumulative parent cost under state trajectory:
- early patience savings,
- miss accumulation,
- terminal-window catch-up penalty.
This prevents a false “good average fill” conclusion when the endgame becomes expensive.
Policy design
State-aware passive cap
In DRYING/DROUGHT, cap passive exposure and shorten passive dwell time.Retry budget with cooldown
Limit repeated passive retry bursts when QSM is low and MSF is high.Midday anti-cliff pre-allocation
Pull a fraction of parent completion earlier if drought probability rises.Deadline-protect trigger
Force deterministic completion mode when RTP crosses threshold.Venue robustness tilt
Prefer venues/routes with better historical refill resilience in drought states.
Data contract (minimum)
Per child order:
- decision/send/ack/fill/cancel timestamps,
- venue and route-hop history,
- top-N book snapshot at decision and effective interaction,
- fill status/size/price,
- markout ladder,
- parent residual + deadline metadata,
- reason codes (reject, timeout, cancel-ack lag).
Missing timestamp integrity makes drought attribution unreliable.
Calibration loop
Weekly
- Refit branch probabilities by symbol-liquidity cluster and time bucket.
- Re-estimate LDS thresholds and state transition probabilities.
- Stress-test on low-liquidity days (event + non-event).
Daily
Track by time bucket:
- q50/q95 slippage,
- completion ratio,
- passive miss rate,
- catch-up share (cost paid in terminal window).
Intraday guards
- If LDS stays above drought threshold for N windows: reduce passive cap.
- If catch-up share exceeds budget: move to DEADLINE_PROTECT/SAFE.
Rollout plan
- Shadow (2 weeks): calculate LDS + simulated decisions only.
- Canary (5–10% notional): enable state-aware passive cap.
- Scale: widen symbol universe after q95/completion gates pass.
- Rollback conditions: completion failures, elevated terminal catch-up tax, or state flapping.
Common failure modes
- Treating midday as a static low-volume bucket rather than a regime.
- Optimizing spread capture while ignoring miss-and-chase convexity.
- Letting retry loops consume queue priority and deadline budget.
- Calibrating only average bps and missing q95 deterioration.
Bottom line
Midday slippage is often a liquidity drought control problem, not a simple slower-volume problem.
Model refill fragility + miss accumulation explicitly, then drive execution with state-aware caps and deadline protection. This is how you avoid noon patience turning into end-of-day panic cost.