Self-Help Hysteresis and Protected-Quote Eligibility Drift in Slippage Models
Date: 2026-04-12
Category: research (execution / slippage modeling)
Why this playbook exists
A lot of execution models quietly assume this:
if a venue is showing the best displayed price, it is a live execution opportunity.
Under Rule 611 reality, that assumption is conditional.
A displayed quote matters for routing only when it is not just visible, but protected, immediately accessible, and operationally actionable. When a venue becomes slow, unresponsive, or operationally suspect, routers can invoke self-help and bypass that venue’s protected quotations. Once that happens, the quote may still exist in market data, but it no longer has the same control meaning.
That creates a slippage problem most teams under-model:
- the observed best price is not always the actionable best price,
- the actionable set can change suddenly,
- it often does not revert instantly once the venue recovers,
- different routers, gateways, or strategies may disagree on venue eligibility at the same moment,
- TCA and model labels can become contaminated if they benchmark fills against quotes that were not realistically accessible.
The result is a distinctive family of execution failures:
- delayed reroutes while waiting on a quote that has already lost practical value,
- panic reroutes after self-help activation,
- over-bypassing after recovery because the venue is still distrusted,
- benchmark errors that make fills look worse or better than they really were.
This note turns that failure mode into a modeling, monitoring, and control blueprint.
Public market-structure facts that make this real
A few public references are enough to show why this is not theory.
- SEC Rule 611 framework and the SEC / FINRA FAQs make clear that a quotation must be immediately and automatically accessible to be protected.
- The SEC’s Regulation NMS FAQ explains that automated trading centers should monitor self-help notifications in real time, and that prompt reclassification of troubled quotes as manual can remove them from trade-through protection before other routers need to invoke self-help.
- The SEC’s 2016 interpretation on automated quotations also makes clear that “immediate” is not literally zero-latency: very small delays can still be consistent with automation, but only within a narrow tolerance.
- The Regulation NMS adopting discussion emphasized the operational difference between automated and manual response times and tied the self-help regime to the idea that accessible quotes must truly be reachable in practice.
The modeling implication is straightforward:
quote visibility and quote accessibility are separate state variables.
If your slippage stack models only the first, it will systematically misread routing opportunity.
The core failure mode: protected status drifts faster than many models notice
For each venue, at least four states matter:
- Displayed — quote is visible in your feed.
- Protected / eligible — quote is currently subject to trade-through protection for your router.
- Reachable — your path to the venue is functioning within tolerance.
- Trusted — your router is willing to rely on that venue right now.
In a clean market these collapse into one concept.
In production they do not.
A venue can be:
- still displayed but operationally unreachable,
- technically reachable but slow enough to trigger self-help logic,
- recovered in reality but still quarantined by your router,
- restored for some gateways but not others,
- protected in the abstract but not meaningfully actionable for your controller at decision time.
That gap is what I call protected-quote eligibility drift.
And because self-help decisions usually involve thresholds, cooldowns, and recovery checks, the drift is often hysteretic:
- entering bypass happens under one set of conditions,
- exiting bypass happens under another,
- the path back is not symmetric.
That asymmetry is where a lot of unexpected slippage lives.
Mechanism map
1. False best-price anchoring
Your router sees Venue A at the NBBO and assumes it remains a legitimate protection target.
But Venue A is already degrading:
- acknowledgements are stretching,
- cancels are lagging,
- response consistency is breaking,
- self-help threshold is near.
A model that still treats Venue A as normal will:
- overestimate passive fill probability,
- underestimate completion risk,
- underprice the opportunity cost of waiting,
- overstate the benefit of posting toward that displayed touch.
2. Self-help jump and reroute tax
Once self-help is invoked, the router’s feasible venue set changes abruptly.
Now the strategy may need to:
- reroute immediately to inferior but reachable prices,
- cross more spread than planned,
- consume thinner depth at alternative venues,
- lose queue position accumulated while waiting.
This is the reroute tax.
3. Recovery hysteresis
The venue recovers, but your router does not immediately trust it again.
That is usually rational.
Immediate re-entry after a venue wobble can create churn, false recovery, and repeated state flips. So production systems often keep venues in a probationary or shadow state.
But the side effect is important:
- the venue is visible again,
- it may even be economically attractive again,
- yet your strategy is still behaving as if that liquidity does not exist.
If the model ignores this recovery lag, it misattributes the resulting cost to market impact or urgency instead of eligibility inertia.
4. Router disagreement
In many stacks, self-help is not truly global.
Different:
- colos,
- gateway clusters,
- strategy processes,
- broker smart-order-router instances,
- market-access paths,
can disagree for a short period about whether a venue is usable.
That means there is no single “actionable NBBO.”
There is a router-specific actionable price set.
A training dataset that merges executions from multiple paths without labeling this state will leak confusion directly into slippage coefficients.
5. Benchmark contamination
After the fact, TCA often compares fills to:
- SIP NBBO,
- direct-feed NBBO,
- arrival mid,
- venue best quotes,
without asking whether the quoted venue was self-helped at the time.
That contaminates both cost attribution and model retraining:
- some fills look unnecessarily aggressive when they were actually rational under a bypass,
- some waits look patient when they were really failed attempts to interact with inaccessible liquidity,
- markouts get misread because the reference price was never feasible.
A better abstraction: observed best price vs actionable best price
For a buy order, let:
- (p_v(t)): displayed offer at venue (v),
- (E_v(t) \in {0,1}): whether venue (v)’s quote is currently eligible / actionable for this router,
- (q_v(t)): actionable size at venue (v),
- (P_{obs}(t) = \min_v p_v(t)): observed best offer,
- (P_{act}(t) = \min_{v:E_v(t)=1} p_v(t)): actionable best offer.
Then the key quantity is the eligibility gap:
[ G(t) = P_{act}(t) - P_{obs}(t) \ge 0 ]
Interpretation:
- (G(t)=0): displayed best price is genuinely actionable,
- (G(t)>0): the visible best price is not currently usable for this router.
A naive slippage model prices execution relative to (P_{obs}(t)).
A production-grade model should often price execution relative to (P_{act}(t)).
For sell orders, the same logic applies with bids and reversed signs.
The hidden state is hysteretic, not iid
Let (H_v(t)) be the venue-state process for venue (v):
NORMALDEGRADINGSELF_HELP_ACTIVERECOVERY_PROBATIONRESTORED
The dangerous mistake is to let (E_v(t)) depend only on current latency.
In reality:
[ E_v(t) = f(\text{latency}_v(t), \text{error}_v(t), \text{age}_v(t), H_v(t-1), \text{cooldown}_v(t), \text{path}_r) ]
So eligibility depends on:
- current symptoms,
- prior state,
- the length of time since self-help activation,
- recovery cooldown rules,
- router / path identity.
That makes the cost of venue degradation path-dependent.
Two moments with identical displayed quotes and identical current latency can still deserve different routing decisions if one occurs right after a self-help event and the other occurs in a stable regime.
Cost decomposition
A useful decomposition is:
[ C_{total} = C_{base} + C_{wait} + C_{reroute} + C_{hysteresis} + C_{benchmark} ]
Where:
- (C_{base}): ordinary spread / impact cost under healthy routing,
- (C_{wait}): cost of waiting on quotes that appear tradable but are not truly reachable,
- (C_{reroute}): extra cost paid once self-help forces execution onto worse alternatives,
- (C_{hysteresis}): opportunity cost from continued bypass after the venue becomes usable again,
- (C_{benchmark}): reporting / model error from comparing fills to ineligible prices.
A practical approximation:
[ C_{wait} \approx \kappa_1 \sum_t \Pr(E_v(t)=0 \mid x_t) \cdot \Delta t \cdot \mu_t ]
where (\mu_t) summarizes adverse drift while waiting.
And:
[ C_{reroute} \approx \kappa_2 \sum_t G(t) \cdot \Delta Q_t ]
where (\Delta Q_t) is quantity forced to execute after the actionable price worsens relative to the observed price.
A simple approximation for hysteresis cost is:
[ C_{hysteresis} \approx \kappa_3 \sum_t 1_{{H_v(t)=RECOVERY}} \cdot R_v(t) ]
where (R_v(t)) measures forgone opportunity at the recovered venue.
The important point is conceptual:
not all “impact” is market impact. Some of it is venue-eligibility transition cost.
Metrics worth instrumenting
1. AEG — Actionability Eligibility Gap
[ AEG(t) = P_{act}(t) - P_{obs}(t) ]
This is the main business metric.
If AEG is frequently non-zero, your NBBO-based features are too optimistic.
2. SHD — Self-Help Dwell
[ SHD_v = \text{time venue } v \text{ stays bypassed after activation} ]
Track by venue, router, symbol bucket, and time of day.
3. RHL — Recovery Half-Life
The median time from first evidence of venue recovery to full routing normalization.
This quantifies distrust inertia.
4. RDR — Router Disagreement Rate
Fraction of control intervals where different gateways / paths disagree about venue eligibility.
If this is non-trivial, you do not have a single global market state.
5. BMC — Benchmark Misalignment Cost
Difference between TCA cost computed against observed benchmark versus actionable benchmark.
This is where many “why did the model regress?” mysteries show up.
6. QFR — Queue-Forgone Regret
Opportunity cost from maintaining bypass while the venue has already resumed offering attractive queueable liquidity.
Feature set for slippage models
A. Venue-health features
ack_latency_ms_p50/p95/p99cancel_ack_latency_ms_p95/p99timeout_rate_100ms/1sreject_ratequote_update_age_msheartbeat_gap_mserror_burst_count
B. Self-help state features
self_help_active_flagtime_since_self_help_start_msself_help_count_5mtime_since_last_clear_msrecovery_probation_flagtime_in_probation_msself_help_flip_count
C. Actionability-gap features
observed_vs_actionable_spread_gap_bpsobserved_vs_actionable_mid_gap_bpsactionable_depth_ratiobest_venue_ineligible_flagtop2_venues_ineligible_count
D. Path-specific features
gateway_idcolo_idsor_instance_idbroker_route_profilefeed_path_type(sip / direct / hybrid)
E. Recovery-quality features
shadow_probe_fill_rateshadow_probe_ack_latencyfirst_post_recovery_fill_qualityrecovery_stability_score
The important modeling rule:
eligibility and recovery variables should enter the slippage model directly, not only as operational alerts.
Control-state blueprint
NORMAL
- Venue fully eligible.
- Standard routing logic.
- Full use of displayed protected quote set.
WATCHLIST
Triggered when latency and error metrics deteriorate but self-help threshold is not yet crossed.
- Downweight passive fill estimates on the venue.
- Increase skepticism toward displayed touch liquidity.
- Prepare alternative routing plan.
SELF_HELP_ACTIVE
- Remove venue from actionable set.
- Recompute actionable best price and depth.
- Re-anchor urgency logic to reachable venues.
- Prevent strategy from waiting on now-ineligible quotes.
RECOVERY_PROBATION
- Reintroduce venue gradually.
- Use small shadow probes or capped passive exposure.
- Require stability, not just one healthy response.
- Separate recovery monitoring from normal fill logic.
RESTORED
- Venue back in full actionable set.
- Continue short-term post-incident monitoring.
- Record whether bypass lingered too long.
This state machine matters because good execution systems do not just ask:
is the venue up?
They ask:
is the venue trustworthy enough, for this router, right now, for this kind of order?
Modeling blueprint
Layer 1: reconstruct router-specific venue eligibility
For each order decision point, store:
- visible venue quotes,
- route path identity,
- self-help activation / clear timestamps,
- acknowledgements and rejects,
- local venue-health metrics,
- whether the venue was considered actionable by the router.
Do not assume that historical market data alone can recover this.
You need router-state logs.
Layer 2: build actionable market snapshots
For every decision timestamp, construct two books:
- Observed book — what the feed showed.
- Actionable book — what this router could plausibly access.
Train and evaluate models against both.
Layer 3: estimate eligibility transition risk
Predict:
[ \Pr(E_v(t+\Delta)=0 \mid x_t) ]
This tells you when a displayed quote is likely to lose control value soon.
That forecast often matters more than microprice alone during venue incidents.
Layer 4: model recovery value separately
After self-help, predict:
- probability venue remains stable if reintroduced,
- expected cost of continued bypass,
- expected churn cost of premature re-entry.
Recovery is not just the reverse of degradation.
Model it separately.
Layer 5: benchmark using actionable references
For training labels and TCA, include:
- cost versus observed benchmark,
- cost versus actionable benchmark,
- gap between the two.
If this gap is material, using raw observed benchmarks alone will poison both supervision and model comparisons.
Practical policy rules
Rule 1: maintain two NBBOs
You probably need both:
- display NBBO for market context,
- actionable NBBO for execution logic and honest TCA.
Treating them as the same number is the root mistake.
Rule 2: make self-help hysteresis explicit
Do not bury entry / exit thresholds in scattered router code.
Document:
- activation condition,
- minimum dwell,
- recovery tests,
- re-entry cooldown,
- who owns the state transition.
If hysteresis exists implicitly, it will be invisible to the model and impossible to audit.
Rule 3: use graded recovery, not binary recovery
A venue that just recovered should not immediately receive full routing weight.
Better:
- shadow probe,
- cap exposure,
- scale up after stable responses,
- fall back fast if relapse occurs.
Rule 4: benchmark fills against feasible prices
When actionability gap is non-zero, comparing to raw displayed best price exaggerates “slippage” that could never have been avoided.
This matters for both trader fairness and model quality.
Rule 5: label the path
If you aggregate executions from multiple network paths or broker routers, eligibility state must be path-aware.
Otherwise the model learns contradictory truths.
Rule 6: isolate venue-incident tails in postmortems
When slippage spikes during a venue incident, do not throw everything into generic “high volatility” buckets.
Break out:
- market volatility,
- routing latency,
- self-help onset,
- recovery lag,
- benchmark contamination.
Those are different problems.
Common anti-patterns
- Using SIP or direct-feed best price as if it were always executable.
- Treating self-help as a pure infrastructure concern instead of a modeling feature.
- Clearing self-help too aggressively after one healthy response.
- Leaving recovery logic undocumented and tribal.
- Measuring fill quality against quotes the router had already bypassed.
- Mixing execution data from multiple routing paths without eligibility labels.
- Attributing recovery-lag opportunity cost to generic impact.
- Training on final cleaned quote states instead of router-time actionability.
30-day rollout plan
Week 1 — Make eligibility observable
- Log self-help activation / clear events with router and venue IDs.
- Log route-path identity on every decision.
- Reconstruct observed vs actionable top-of-book snapshots.
- Baseline AEG, SHD, and RDR.
Week 2 — Shadow actionable benchmark
- Run TCA with both observed and actionable benchmarks.
- Quantify benchmark misalignment by venue and symbol bucket.
- Rank venues by self-help-induced cost.
Week 3 — Add state-aware features to model
- Add self-help flags, dwell times, and recovery variables.
- Retrain slippage model with actionable references.
- Compare error reduction specifically during venue incidents.
Week 4 — Tighten control policy
- Introduce graded recovery.
- Add alerts for excessive recovery half-life.
- Review symbols / venues where bypass linger is most expensive.
- Separate incident cost from ordinary impact in dashboards.
What good looks like
A production-grade execution stack should be able to answer:
- At each decision instant, what was the best displayed price?
- What was the best actionable price for this router?
- Which venues were bypassed and why?
- How much slippage came from venue-state transitions rather than market impact alone?
- How long did recovery distrust last, and was that delay worth it?
- Are we training the model on prices we could not actually access?
If you cannot answer those, then your slippage model is still pricing a market that looked cleaner than the one you actually traded.
That gap gets expensive fast.
Selected public references
- SEC FAQ on Rule 610 / Rule 611 — overview of protected quotations, self-help-related operational procedures, and the importance of immediate / automatic accessibility:
- SEC staff guidance on automated quotations — sub-millisecond intentional access delays can still be considered de minimis, which reinforces that accessibility is operational rather than metaphysical:
- Federal Register, Regulation NMS adopting release — public discussion of why Rule 611 protection was limited to quotations that are truly automated and accessible:
- Federal Register, 2016 interpretation regarding automated quotations — useful background on “immediate” accessibility and the operational distinction between automated and manual response regimes:
- FINRA Notice to Members 07-23 — practical summary of Regulation NMS implementation and protected-quote conditions:
Bottom line
Self-help is not just a compliance exception.
It is a state transition in market reachability.
The quote you see and the quote you can responsibly trade are not always the same thing. When venue eligibility changes, slippage can come from:
- waiting on dead liquidity,
- rerouting too late,
- distrusting recovered liquidity for too long,
- benchmarking against prices that were never truly available.
The fix is not only better routing.
It is better modeling:
- router-specific actionable books,
- explicit self-help state labels,
- recovery-aware controls,
- benchmarking against feasible prices.
In short:
before you model impact against the best displayed quote, make sure that quote was actually in your market.