Iceberg Reserve-Depletion Nowcasting Slippage Playbook
Date: 2026-03-21
Category: research
Scope: Detecting hidden-liquidity exhaustion before the absorption cliff
Why this matters
Most hidden-liquidity models stop at: “iceberg present vs not present.”
In production, the expensive event is different:
- liquidity looks stable for minutes,
- your schedule leans into that stability,
- hidden reserve suddenly exhausts,
- the next child order pays a sharp impact jump (the absorption cliff).
This playbook focuses on one objective: estimate time-to-exhaustion hazard of hidden reserve at the active price level, and route/schedule before the cliff prints into your implementation shortfall.
Core concept
Treat displayed+hidden liquidity at a level as a finite reservoir with partial observability.
[ D_{eff,t}=D^{disp}_t + R_t - D^{fragile}_t ]
- (D^{disp}_t): displayed queue size
- (R_t): latent reserve (hidden tranche stock)
- (D^{fragile}_t): likely-to-cancel/evaporate component
The control variable is not only expected fill, but:
[ \mathbb{P}(\text{exhaust in }\Delta t \mid \mathcal{F}_t) ]
When this hazard rises, your strategy should switch from “harvest hidden absorption” to “avoid being first fill after exhaustion.”
Observable signals (online, low-latency)
At the best level (or working level) maintain rolling features:
Refill Event Count (REC)
Number of same-price replenishment signatures in lookback window.Inter-Refill Time (IRT)
Median/quantile of time gaps between refills; stretching IRT often precedes exhaustion.Peak-Size Consistency (PSC)
Similar displayed refill clip size across events (iceberg-like behavior).Consumed-to-Displayed Ratio (CDR)
(\text{aggr volume at level} / \text{avg displayed depth}). Persistent high CDR with falling refill intensity is cliff risk.Refill Decay Slope (RDS)
Local trend of refill intensity (negative slope = reservoir thinning).Queue Survival Residual (QSR)
Realized queue survival minus model-expected survival. Negative residual indicates hidden support weakening.Pressure Imbalance (PI)
Recent signed market-order pressure + microprice tilt toward the level.
Latent reserve nowcasting model
Use a compact state-space formulation (fast enough for live use):
State: [ R_{t+1}=\max{0, R_t - C_t + U_t} ]
- (C_t): consumed hidden quantity proxy from executed flow at level
- (U_t): latent refill increment (stochastic, regime-dependent)
Observation model: [ \Pr(\text{refill event}_t=1)=\sigma(\alpha_0 + \alpha^\top x_t + \alpha_R R_t) ]
Exhaustion hazard: [ h_t=\Pr(R_t \le r_{crit} \mid \mathcal{F}_t)=\sigma(\beta_0+\beta^\top z_t) ]
where (z_t) includes REC, IRT, RDS, CDR, QSR, PI, and venue/session covariates.
Practical estimation choices
- Start with penalized logistic hazard (L1/L2) + isotonic calibration.
- If needed, upgrade to particle filter for (R_t) with 50–200 particles.
- Keep model explainable enough for desk + on-call debugging.
Slippage decomposition with cliff-risk term
Extend your shortfall model:
[ IS = Spread + TempImpact + Delay + Fees + \underbrace{CliffRisk}_{\text{new}} ]
Define: [ CliffRisk_t = h_t \cdot \Delta I_t ]
- (h_t): exhaustion hazard now
- (\Delta I_t): expected impact jump conditional on post-exhaust execution
Estimate (\Delta I_t) empirically from episodes where refill pattern breaks and next child crosses through thinner book.
This term prevents over-sizing when hidden-liquidity support is near collapse.
Controller design (state machine)
State A — ABSORBING
Low hazard, strong refill persistence.
- Action: normal passive participation, moderate clip size.
State B — SATURATING
Hazard rising but not critical.
- Action: trim clip size 10–25%, increase inter-child spacing, diversify venues.
State C — CLIFF-RISK
Hazard above critical threshold (e.g., calibrated p80).
- Action: stop leaning on that level; reroute to alternative liquidity sources; reduce passive queue dependence.
State D — EXHAUSTED
Refill signature vanished + impact jump observed.
- Action: immediate protective mode (hard POV cap, tactical pause, aggressive crossing only if urgency/alpha justifies).
Use hysteresis and minimum dwell times to avoid oscillation.
Execution policy knobs tied to hazard
A minimal policy:
[ POV_t = POV_{base}\cdot(1-\gamma_h h_t) ] [ Clip_t = Clip_{base}\cdot(1-\gamma_c h_t) ] [ PassiveBias_t = PassiveBias_{base}-\gamma_p h_t ]
with hard limits:
- (POV_{min} \le POV_t \le POV_{max})
- max child notional
- max expected post-fill markout budget
- kill-switch if hazard + toxicity jointly spike
Calibration workflow (weekly + intraday drift checks)
- Episode extraction
- Detect candidate iceberg/refill episodes from level events.
- Label exhaustion events
- Refill stop + adverse depth/impact discontinuity within horizon.
- Fit hazard model
- Train by venue, session bucket, volatility regime.
- Calibrate probabilities
- Reliability diagrams / Brier decomposition.
- Estimate conditional impact jump (\Delta I)
- Stratify by symbol liquidity and urgency.
- Shadow deployment
- Run controller in observe-only mode before capital exposure.
Monitoring KPIs
Track by symbol bucket and venue:
- p50/p90/p95 implementation shortfall (bps)
- Cliff-loss bps (cost attributable to post-exhaust fills)
- hazard calibration error (ECE/Brier)
- underfill-at-deadline probability
- adverse markout after state C/D transitions
- intervention rate (how often controller switches to cliff protection)
Success criterion: lower p90/p95 shortfall and cliff-loss without unacceptable underfill growth.
Minimal pseudocode
features = featurize(level_events, trades, microprice)
h = hazard_model.predict_proba(features)
if h < th_absorb:
state = "ABSORBING"
elif h < th_cliff:
state = "SATURATING"
elif refill_signature_alive(features):
state = "CLIFF_RISK"
else:
state = "EXHAUSTED"
params = policy_map[state]
submit_child_orders(params)
log_decision(features, h, state, params)
Anti-footgun guardrails
- Do not infer iceberg from one refill event; require persistence.
- Separate open/close/news regimes; hazard is not portable across regime boundaries.
- Avoid overfitting exact refill clip size (venue microstructure changes).
- Never remove hard risk caps because hazard “looks low.”
- Keep fallback policy deterministic for incident response.
References (starting points)
- Zotikov, D., Antonov, M. (2019), CME Iceberg Order Detection and Prediction (arXiv:1909.09495).
https://arxiv.org/abs/1909.09495 - Frey, S., Sandås, P. (2009), The impact of iceberg orders in limit order books.
- Moinas, S. (2010), Hidden Limit Orders and Liquidity in Order Driven Markets.
- Bouchaud, J.-P. et al. literature on latent liquidity and impact dynamics.
(Use venue-specific legal/compliance constraints before production rollout.)
Bottom line
Detecting hidden liquidity is useful; detecting when it is about to disappear is where the slippage edge is.
Model reserve-depletion hazard, convert it into explicit control actions, and optimize for tail shortfall—not average fills.