SIP–Direct Feed Dislocation Slippage Playbook
Date: 2026-03-06
Category: research (execution / slippage modeling)
Why this playbook exists
Many execution stacks still benchmark urgency and price quality on a single top-of-book view. In fragmented markets, that view can be stale for milliseconds to tens of milliseconds relative to direct venue feeds.
That tiny lag is enough to cause recurring hidden slippage:
- we think we are joining/taking the best quote,
- the quote is already gone on direct feeds,
- we either get no fill and chase later, or fill into adverse-selection pockets,
- TCA shows “normal variance” instead of control-plane blind spots.
This playbook treats feed dislocation as a first-class slippage factor.
Core failure mode
For a buy child order:
- SIP shows best ask at
A_sip. - Direct feed best ask has already moved up or size has vanished.
- Router decisions based on SIP-marked state submit passive/improving/taking intent too late.
- Outcome branches:
- stale-take miss -> reject/no-fill -> later aggressive catch-up,
- stale-passive fill -> fill occurs, but short-horizon markout is strongly negative,
- late reroute -> opportunity decays while queue priority resets.
Mirror this for sells.
Minimum data contract
Per child-order and per market-data event:
parent_id,child_id,symbol,side,qty,venuedecision_ts,send_ts,ack_ts,fill_ts- decision snapshot fields:
sip_bid/ask,direct_bid/ask(per primary venues),depth_l1/l2 - feed timestamps:
sip_event_ts,direct_event_ts, local receive timestamps reject_code,replace_count,cancel_countfill_px,fill_qty, fees/rebates- short-horizon markouts (10ms/100ms/1s/5s)
- clock-quality telemetry (NTP/PTP offset, packet drops, sequence gaps)
Without parallel SIP + direct capture and synchronized clocks, dislocation cost is unobservable.
Metrics that expose the leak
1) Feed Dislocation Interval (FDI)
[ FDI = t_{decision} - t_{direct_state_equivalent_on_SIP} ]
Interpretation: how “behind” SIP state is at decision time.
2) Phantom Best Quote Rate (PBQR)
[ PBQR = \frac{#(SIP\ best\ quote\ not\ executable\ on\ direct\ at\ decision)}{#(decisions)} ]
Segment by symbol liquidity bucket and time-of-day.
3) Direct-Touch Miss Cost (DTMC)
Cost from attempted touch based on SIP that was absent on direct, then completed later.
[ DTMC = \frac{\sum q_i (p^{late}_i - p^{counterfactual\ direct}_i)}{\sum q_i p^{counterfactual\ direct}_i} \times 10^4 ]
4) Stale-Reference Fill Share (SRFS)
[ SRFS = \frac{\sum fill_qty\ where\ FDI > \tau}{\sum fill_qty} ]
Useful thresholds: \tau at 1ms, 3ms, 5ms, 10ms.
5) Dislocation-Adverse Markout Spread (DAMS)
Difference in post-fill markout between high-FDI and low-FDI cohorts.
[ DAMS_h = E[markout_h | FDI > \tau] - E[markout_h | FDI \le \tau] ]
for horizon h.
Modeling blueprint (branch decomposition)
Model child-order net cost as branch mixture:
[ C = \pi_{miss}C_{miss} + \pi_{staleFill}C_{staleFill} + \pi_{clean}C_{clean} ]
Branch A: stale-touch miss
Predict miss probability and catch-up cost.
Features:
FDI,PBQR, quote-age, queue depth decay- spread regime, micro-volatility, cancel intensity
- venue-specific ack latency and reject bursts
Branch B: stale-passive adverse fill
Predict markout-conditioned adverse selection when fills occur under dislocation.
Features:
FDIbucket, microprice drift, imbalance slope- refill half-life, odd-lot inside dominance
- venue and time-of-day interaction terms
Branch C: clean state
Baseline branch when SIP/direct aligned and clock telemetry healthy.
Execution control state machine
ALIGNED
FDI_p95 <= 1.5ms,PBQR <= 2%- normal policy
DRIFTING
1.5ms < FDI_p95 <= 4msor risingPBQR- reduce passive slice size, tighten quote TTL, increase recheck frequency
DISLOCATED
FDI_p95 > 4msorPBQR > 6%orDAMSbreach- benchmark/routing decisions on direct touch for targeted symbols
- widen conservative limit bands, cap participation
SAFE
- persistent feed/clock integrity issues or repeated tail breaches
- hard participation cap, venue downweight/quarantine, optional pause
Use hysteresis: stronger evidence to exit DISLOCATED than to enter.
Practical controls
Control 1: dual-reference benchmark
Keep both SIP and direct touch benchmarks in TCA and online decisions. If divergence exceeds threshold, pivot decision reference to direct feed for high-risk names.
Control 2: feed-age guard
Reject “take/join” actions when quote age + FDI exceeds symbol-specific budget.
Control 3: dislocation-aware urgency
When dislocation rises, split residual into:
- small protective aggressive tranche,
- passive remainder only if direct-book resiliency is acceptable.
Control 4: clock-integrity gate
If clock offset or sequence-gap health degrades, automatically move to conservative mode (don’t trust fine-grained dislocation estimates when clocks are suspect).
Control 5: venue-specific dislocation map
Maintain per-venue FDI + PBQR heatmap and dynamically downweight venues where effective executable top-of-book is most unstable.
Calibration workflow
- Build synchronized event tape (SIP + direct + order lifecycle).
- Label branch outcomes (miss / stale-fill / clean).
- Fit branch probabilities and branch-cost models (quantile-first).
- Validate across regimes (open, lunch, close, event windows).
- Shadow-run controller and compare q95/CVaR and fill-completion tradeoffs.
- Promote via canary traffic ladder.
Promotion gates (example)
- q95 slippage improvement >= 5 bps on high-dislocation cohort
PBQRreduction >= 25%- underfill increase <= 1.2 percentage points
- no degradation in low-dislocation baseline cohort
- zero unresolved clock-integrity incidents during canary windows
Rollback triggers:
- two consecutive windows with q95 regression > 7 bps
- dislocation false-positive explosion (excess SAFE transitions)
- unexpected reject/timeout spike post-switch
Common mistakes
“SIP is good enough because average spread is fine.” Tail slippage lives in brief dislocation episodes, not averages.
“Faster router solves everything.” If reference feed is stale or clocks are off, faster wrong decisions are still wrong.
“One benchmark is simpler.” Simpler, yes; diagnostically blind, also yes.
“This is only for HFT.” Even mid-frequency execution leaks bps in open/close/news windows if feed dislocation is ignored.
Desk takeaway
Execution quality is not just impact + spread. It is also reference-truth quality.
If SIP/direct dislocation is not modeled explicitly, you will keep paying a repeatable hidden tax and call it market noise.