IOC Reject-Retry Burst Slippage Playbook

2026-03-10 · finance

IOC Reject-Retry Burst Slippage Playbook

Date: 2026-03-10 Category: research (quant execution / slippage modeling)

Why this matters

IOC (Immediate-Or-Cancel) looks “safe” because it avoids queue risk:

But in fast, fragile books, IOC-heavy logic can create a hidden cost loop:

  1. send IOC into thin touch,
  2. partial/no fill,
  3. immediate retry at worse price,
  4. repeated urgency escalation,
  5. terminal catch-up cost.

This reject-retry burst often behaves like a convex slippage tax, especially near deadlines.


Core concept: IOC Retry Tax (IRT)

Define IRT as the incremental execution cost caused by repeated IOC retries under unstable microstructure.

[ \text{Total Slippage} = \text{Spread/Fee} + \text{Impact} + \text{Delay} + \text{Opportunity} + \text{IRT} ]

IRT is not just “bad luck.” It is a policy-dependent microstructure penalty.


Mechanism map

Typical burst pattern

Why average models miss it

Mean slippage models often blur together:

You need explicit branch modeling for retry episodes.


Observable metrics

1) IOC Reject Rate (IRR)

[ \text{IRR} = \frac{#\text{IOC attempts with zero fill}}{#\text{IOC attempts}} ]

2) Retry Burst Length (RBL)

Number of IOC attempts in one parent-order micro-episode (e.g., within 1–3 seconds and same residual intent).

3) Retry Gap (RG)

Median inter-attempt time during burst. Very short RG can amplify market-impact signaling and chase risk.

4) Retry Slippage Slope (RSS)

Incremental bps cost per additional retry index within episode.

[ \text{RSS} \approx \frac{\Delta \text{episode cost (bps)}}{\Delta \text{retry index}} ]

5) Terminal Catch-Up Share (TCS)

Fraction of parent-order slippage realized in final completion window after retry bursts.

High TCS means retries deferred cost instead of reducing it.


Modeling approach

Use a two-stage model.

Stage A: Fill/Reject branch model

For each IOC attempt, estimate:

with features such as:

Stage B: Episode-level cost model

Condition on episode trajectory:

Optimize action policy with tail awareness:

[ \min_a ; \mathbb{E}[\text{Cost}|a] + \lambda,\text{CVaR}_{95}(\text{Cost}|a) + \eta,\text{MissPenalty} ]

where action (a) includes retry timing, size decay, route split, and fallback trigger.


Execution state machine

Add hysteresis and minimum dwell time to avoid state flapping.


Practical policy knobs

When state >= FRAGILE_TOUCH:

  1. Retry pacing: enforce minimum retry gap (anti-thrash).
  2. Size shaping: reduce per-attempt IOC size in fragile depth.
  3. Route diversification: avoid repeated collisions on one venue/path.
  4. Fallback ladder: predefine IOC -> passive join/improve -> controlled take escalation.
  5. Deadline-aware cap: stop low-information retries near cutoff; switch early to deterministic completion mode.

Data contract (minimum)

Per child attempt:

Without event-time quality, retry-episode attribution becomes noisy.


Calibration and monitoring

Weekly

Daily

Intraday guardrails


Rollout plan

  1. Shadow (2–3 weeks): compute episode metrics and counterfactual policies only.
  2. Canary (5–10% flow): enable retry pacing + fallback ladder.
  3. Scale by cohort: liquid names first, then thinner names.
  4. Promotion gates:
    • q95 slippage non-inferior or improved,
    • completion reliability stable,
    • TCS reduced,
    • no excessive opportunity-loss increase.

Rollback quickly if completion degrades or tail cost widens.


Common failure modes


Bottom line

IOC is not automatically low-risk execution.

Under fragile microstructure, repeated IOC retries can become a convex slippage engine. Model the retry episode explicitly, control it with state-aware pacing and fallback rules, and optimize for tail-safe completion, not just first-attempt elegance.


References (starting points)