Queue-Depletion Velocity × Refill-Latency Asymmetry Slippage Playbook

2026-03-30 · finance

Queue-Depletion Velocity × Refill-Latency Asymmetry Slippage Playbook

Date: 2026-03-30
Category: research
Focus: Practical slippage modeling for markets where displayed depth disappears faster than it refills (especially during microbursts and queue-shock regimes).


1) Problem Framing

Most execution models assume “depth loss is temporary” and that refill arrives quickly enough to keep impact near expected curves.

In production, that assumption fails in specific windows:

This creates a convex slippage regime: small participation changes can produce outsized cost changes.

The useful abstraction is:

When QDV rises while RLA worsens, passive edge decays quickly and aggressive catches become expensive.


2) Core Metrics (Live + Research)

2.1 QDV — Queue Depletion Velocity

For side (s \in {bid, ask}), level band (L) (e.g., top 3 levels), horizon (\Delta t):

[ QDV_s(t)=\frac{\max(0, D_s(t)-D_s(t+\Delta t))}{\Delta t} ]

Where (D_s) is displayed size in the monitored band.

Use robust versions:

2.2 RLA — Refill-Latency Asymmetry

Measure time to recover a fraction (\rho) (e.g., 70%) of pre-shock depth:

[ \tau_s(\rho)=\inf{u>0: D_s(t+u) \ge \rho D_s(t^-)} ]

Then

[ RLA(t)=\log\left(\frac{\tau_{ask}(\rho)+\epsilon}{\tau_{bid}(\rho)+\epsilon}\right) ]

2.3 DSI — Depletion Synchrony Index

How synchronized are depletion bursts across venues/symbol peers:

[ DSI = \text{corr}\left(\mathbb{1}[QDV_s>q], \mathbb{1}[QDV_{peer,s}>q]\right) ]

High DSI means local routing won’t easily escape pressure.

2.4 QHL — Queue Half-Life

Time for available queue ahead to halve (passive order perspective). Short QHL with adverse drift implies queue position decays before fill odds materialize.


3) Model Architecture

Use a two-head model sharing microstructure features.

Head A: Fill Hazard Model

Estimate short-horizon fill probability / time-to-fill:

[ \lambda_{fill}(t)=f_1(\text{queueAhead}, QDV, RLA, spread, OFI, quoteAge, venueState) ]

Suggested families:

Head B: Conditional Slippage Model

Estimate expected cost given action and realized fill path:

[ E[Slip|a_t, x_t] = f_2(a_t, QDV, RLA, volatilityBurst, DSI, latency, childSize) ]

Use quantile outputs (p50/p90/p99), not only mean.

Coupling

Expected action value:

[ J(a_t)=E[Slip|a_t] + \lambda \cdot P(\text{not filled by deadline}|a_t) ]

where (\lambda) converts deadline risk into bps penalty.


4) Regime State Machine (Execution Controls)

Define practical states from QDV and RLA:

Example policy by state


5) Feature Set That Actually Matters

Microstructure features

System/transport features

Context features

Avoid feature leakage:


6) Calibration & Validation Ladder

Offline

  1. Build shock-labeled datasets via QDV/RLA thresholds.
  2. Calibrate fill hazard first (Brier + calibration curves by regime).
  3. Calibrate slippage quantiles by side, venue, and state.
  4. Evaluate deadline-adjusted objective (J(a_t)), not standalone RMSE.

Counterfactual replay

Live ramp


7) Operational Guardrails


8) Minimal Pseudocode

for each decision tick t:
  x <- build_features(t)
  state <- regime_classifier(QDV, RLA, DSI, telemetry_health)

  for action in action_set:
    fill_hazard <- model_fill(action, x, state)
    slip_dist   <- model_slip(action, x, state)
    score[action] <- E[s slip_dist] + lambda * P(miss_deadline | fill_hazard)

  action* <- argmin(score) subject to risk/tail/deadline guards

  if telemetry_health bad or confidence too low:
    action* <- safe_degrade_policy()

  execute(action*)

9) Failure Modes to Watch

  1. False stability: mean spread looks normal while refill latency drifts up.
  2. Venue mirage: routing to “thicker” venue that is simultaneously depleting (high DSI).
  3. Passive toxicity trap: high queue age mistaken for queue edge.
  4. Control oscillation: overly reactive state transitions causing self-induced churn.
  5. Timestamp drift contamination: apparent refill lag due to clock mismatch, not market mechanics.

10) Practical Takeaway

Slippage spikes in modern books are often less about static liquidity level and more about liquidity recovery kinetics.

A robust execution stack should explicitly model:

If your controller does not account for depletion/refill asymmetry, it will over-trust passive exposure exactly when queue edge is evaporating.


Suggested reading (for deeper implementation)