Halt-State Order-Persistence Assumption Slippage Playbook

2026-04-09 · finance

Halt-State Order-Persistence Assumption Slippage Playbook

Date: 2026-04-09
Category: research
Scope: Modeling the slippage tax from assuming resting orders survive halt / LULD / auction-state transitions with unchanged economics

Why this matters

A lot of execution stacks still compress order state into one dangerously simple question:

"Is the order still working?"

That question is too coarse for halt and auction regimes.

Around LULD pauses, halt auctions, and close-related state transitions, venue handling can change in ways that break naive residual accounting:

Public venue documentation makes the broader point clear:

The exact rule set is venue- and order-type-specific. But the operational lesson is general:

accepted is not the same as executable, executable is not the same as auction-eligible, and auction-eligible is not the same as preserving the queue economics your model thinks it owns.

That gap creates a distinct slippage regime:


Failure mode in one line

The controller assumes a resting order survives a halt-state transition with materially unchanged participation value, overstates credited working quantity, misses the intended auction or reopen liquidity, and later pays catch-up slippage when the residual is rebuilt under worse conditions.


The key distinction: administrative persistence vs economic persistence

A halt-state order can be "alive" in one sense and dead in another.

Separate these four concepts:

  1. Administrative persistence
    Does the venue still show the order as accepted / open / resting in some formal sense?

  2. Economic executability
    Can the order still execute in the intended regime at the intended price behavior?

  3. Auction eligibility persistence
    Will the order actually participate in the reopen / close event the strategy is counting on?

  4. Queue / timing persistence
    Even if it participates, does it still have the same effective queue edge, timestamp meaning, or priority economics the model implicitly assumes?

Most production mishaps happen because the stack tracks (1) and quietly assumes (2)-(4).


Market-structure facts that matter operationally

1) Halt-state transitions are order-semantics transitions

A halt or LULD event is not just a market-state label. It is often a change in how existing and newly entered orders are interpreted.

That means your router should treat venue-state transitions as potential order-state transitions too.

2) Band logic can preserve the order object while changing its economics

If an aggressively priced order is slid or re-priced to fit price-band constraints, your system may still regard it as a working child. But economically it is no longer the same child:

3) Auction cutoffs can turn "working" into "gone"

Close-related and halt-related auction handling is not just about fill probability. Some order types have hard participation windows. If the symbol remains halted or paused at the relevant cutoff, what the controller thought was parked liquidity may vanish.

4) Pause-period flexibility does not imply persistence certainty

A venue may allow new orders, cancels, and modifications during the pause. That does not mean previously submitted children retain the same path to execution. It means the order-handling regime is dynamic and venue-specific.

5) Primary-listing state and destination-venue state can diverge in your stack

Execution systems often ingest:

Those channels do not always align in time. So the slippage tax is often caused less by one bad rule and more by a state-coherence lag.

6) The cost usually arrives as residual surprise, not one obvious reject

The dangerous branch is not always:

"the order was rejected immediately."

It is often:

"the order seemed covered, the residual looked smaller than it really was, and we discovered the truth only after the useful liquidity window had passed."


Mechanical path to slippage

Step 1) The strategy parks residual inventory in resting children

These may be day orders, auction-intended orders, or children expected to survive into a reopen / pause-ending event.

Step 2) Market state flips into halt / LULD / auction-transition mode

Now venue handling semantics matter:

Step 3) The OMS over-credits the working quantity

Because the order still looks present somewhere in the stack, the controller reduces residual urgency.

Step 4) The intended liquidity event does not deliver what was assumed

Typical branches:

Step 5) Residual-vs-clock gap widens abruptly

The execution schedule that looked healthy suddenly is not.

Step 6) Catch-up aggression happens in a worse regime

Now the strategy pays the real bill:


The modeling upgrade

Treat credited working quantity as probability-weighted, not binary.

Let each working child order (i) have size (q_i). Define:

Then credited working size should be:

[ Q^{credited}_t = \sum_i q_i \cdot Pr(A_i=1, E_i=1, U_i=1 \mid \mathcal{F}_t) \cdot \gamma(P_i) ]

where:

Then effective residual is:

[ R^{effective}t = Q^{parent}{remaining,t} - Q^{credited}_t ]

This is the crucial change. Many controllers effectively use:

[ Q^{credited}_t = \sum_i q_i \cdot \mathbf{1}[A_i=1] ]

and that is exactly how halt-state slippage gets underpriced.


Order Persistence Mismatch Premium (OPMP)

Add an explicit term to the shortfall model:

[ IS = Spread + Impact + Delay + Fees + MissCost + OPMP ]

with

[ OPMP_t = Pr(Mismatch_t \mid \mathcal{F}_t) \cdot C^{rebuild}_t ]

where:

This is not the same as generic delay cost. It is specifically the price of believing inventory is parked when it is not.


Features that matter online

Maintain features by symbol × venue × order-type × transition regime.

1) Venue State Regime (VSR)

Current regime label:

2) Order Handling Class (OHC)

Order type + TIF bucket:

3) Price-Band Distance (PBD)

How far the child price or intended aggressiveness is from current LULD band constraints. Useful because band-slide risk is not binary far from the boundary.

4) State-Transition Age (STA)

Time since the last market-state transition. Execution semantics are most fragile near the transition itself.

5) Order-State Coherence Gap (OSCG)

Lag / disagreement between:

6) Auction Eligibility Confidence (AEC)

Model-estimated probability the child will actually participate in the intended reopen / close event.

7) Priority Preservation Score (PPS)

Discount for how much queue / timing value plausibly survives the state change. This is venue- and rule-driven, not just order-age driven.

8) Residual-vs-Clock Pressure (RCP)

How expensive it would be if the child turned out not to count. This is what converts a state mismatch into real slippage.

9) Reconciliation Delay (RD)

Time between venue-side semantic change and internal recognition of that change.

10) Missed-Event Recovery Cost (MRC)

Expected cost of rebuilding inventory if the reopen / close / first post-halt window is missed.


Observable signatures

1) Working inventory looks stable, but realized participation collapses at the transition

The OMS says coverage is fine. The fills say otherwise.

2) Residual surprise spikes immediately after a halt ends or a close cutoff passes

This is one of the clearest diagnostics.

3) Post-transition late aggression clusters after apparently well-covered periods

That usually means working inventory was over-credited just before the catch-up.

4) Expected auction participation repeatedly exceeds actual fill / participation

A model that ignores eligibility semantics will look overconfident exactly here.

5) Child orders near price bands show poor realized queue economics despite clean administrative state

That is a strong hint the order object survived but its economics did not.

6) State mismatch is concentrated in certain order-type / venue combinations

This regime is rarely uniform. Usually a few specific combinations create most of the tail pain.


Controller design

State A — CONTINUITY_CONFIRMED

Order-state and venue-state are coherent. Auction eligibility and executable value look stable.

Policy:

State B — TRANSITION_EXPOSED

A halt / pause / auction transition has occurred, but persistence semantics are not yet clear.

Policy:

State C — PERSISTENCE_UNCERTAIN

Signals indicate the order may still be administratively alive but economically degraded or cutoff-exposed.

Policy:

State D — EVENT_MISSED_REBUILD

The intended reopen / close liquidity branch has effectively failed.

Policy:

Use hysteresis and minimum dwell times so the controller does not thrash across state boundaries.


Practical policy overlay

A simple live adjustment:

[ Q^{credited,adj}_t = Q^{credited,base}_t \cdot (1 - a \cdot MismatchProb_t) ]

[ Urgency_t = Urgency_{base,t} + b \cdot MismatchProb_t \cdot RCP_t ]

[ AuctionTrust_t = AuctionTrust_{base,t} - c \cdot (1 - AEC_t) ]

Interpretation:


Replay / backtest design

This regime is easy to miss in naive replay. Trades alone are not enough.

You need event streams that let you reconstruct:

Minimum viable episode label set

For each candidate episode record:

Key counterfactual

Compare:

  1. Binary working-order policy
    Counts accepted resting children at nearly full credit.

  2. Persistence-aware policy
    Discounts working credit based on executable / eligibility / timing persistence probability.

The success metric is not just lower mean shortfall. It is fewer extreme residual surprises and lower post-transition p90 / p95 rebuild cost.


Monitoring KPIs

Track by venue, order type, and event regime:

A particularly useful summary metric is:

[ OPG = E[Q^{credited}{pre} - Q^{realized ext{-}useful}{post}] ]

Call it the Order Persistence Gap. If OPG is consistently positive, your stack is hallucinating usable parked liquidity.


Common mistakes

1) Using one boolean for "working order"

That throws away exactly the semantics that matter during halts and auctions.

2) Treating accepted as equivalent to executable

Administrative survival is the weakest form of survival.

3) Ignoring order-type-specific cutoff rules

The slippage tax often lives in order-type semantics, not just in price dynamics.

4) Assuming venue behavior is uniform

Even broadly similar LULD frameworks differ enough in handling details that one global rule is dangerous.

5) Forgetting that price-band sliding changes economics even without a reject

If the child no longer expresses the original intent, residual credit should change.

6) Backtesting without state-coherence lag

The production pain is often caused by when the system learns the truth, not just by the truth itself.


Minimal pseudocode

features = build_features(
    venue_state,
    primary_state,
    order_type,
    tif,
    price_band_distance,
    transition_age,
    reconciliation_lag,
    residual_clock_gap,
)

mismatch_prob = persistence_model.predict_proba(features)
auction_eligibility = auction_model.predict_proba(features)
priority_preservation = priority_model.predict_score(features)

credited_qty = sum(
    child.qty
    * child.admin_alive_prob
    * child.exec_prob
    * auction_eligibility
    * priority_preservation
    for child in working_children
)

effective_residual = parent_remaining - credited_qty

if mismatch_prob < th1:
    state = "CONTINUITY_CONFIRMED"
elif mismatch_prob < th2:
    state = "TRANSITION_EXPOSED"
elif auction_eligibility > a_min:
    state = "PERSISTENCE_UNCERTAIN"
else:
    state = "EVENT_MISSED_REBUILD"

params = policy_map[state]
submit_or_replace(params, effective_residual)
log_transition(features, mismatch_prob, credited_qty, effective_residual, state)

Bottom line

In halt and LULD regimes, the expensive mistake is usually not just "we had a bad auction fill."

It is earlier than that:

we believed parked liquidity still counted.

A robust slippage stack should separately model:

Once those are separated, halt-state transitions stop behaving like mysterious execution bad luck and start looking like what they are:

order-semantics regime changes that must be priced before the residual surprise bill arrives.