Self-Help Declarations Under Reg NMS Rule 611
Self-help declarations let one venue route around another's broken quote under Reg NMS. What changes for ISOs, and why the tape can print an impossible NBBO.
A self-help declaration is the escape hatch in Regulation NMS that most market-structure writing skips. When one trading venue stops answering orders reliably, another venue may declare self-help against it, stop routing orders to it, and treat its published quotes as unprotected until the declaration is revoked. Rule 611 otherwise forbids trading through a better-priced protected quote, and that single suspension is why a reader watching the tape can sometimes see a national best bid and offer nobody will honour.
What Rule 611 protects, and what it does not
Rule 611 of Regulation NMS, the order protection rule, says a trading center may not execute a trade at a price inferior to a protected quotation displayed somewhere else. The definition of a protected quotation is narrow: it is the best bid or best offer of an automated trading center, displayed in the consolidated data, immediately accessible, and sized in round lots. Anything outside that definition sits outside the rule, which is why odd lots do not set the NBBO and why the depth sitting behind the top of book is never protected. The NBBO itself is the running best of those protected quotes.
The rule binds venue to venue, so the first thing worth knowing is how many venues there are.
| venue | acronym | mic | venue_type | tape_code |
|---|---|---|---|---|
| OTC Equity Security | OOTC | ORF | ||
| Consolidated Tape Association | SIP | S | ||
| Unlisted Trading Privileges | SIP | E | ||
| Cboe Stock Exchange | CBSX | TRF | W | |
| FINRA Alternative Display Facility | XADF | TRF | D | |
| FINRA NYSE TRF | FINY | TRF | ||
| FINRA Nasdaq TRF Carteret | FINN | TRF | ||
| FINRA Nasdaq TRF Chicago | FINC | TRF | ||
| International Securities Exchange, LLC - Stocks | XISE | TRF | I | |
| 24X National Exchange LLC | 24X | 24EQ | exchange | G |
| Cboe BYX | BATY | exchange | Y | |
| Cboe BZX | BATS | exchange | Z | |
| Cboe EDGA | EDGA | exchange | J | |
| Cboe EDGX | EDGX | exchange | K | |
| Investors Exchange | IEXG | exchange | V | |
| Long-Term Stock Exchange | LTSE | exchange | L | |
| MIAX Pearl | EPRL | exchange | H | |
| Members Exchange | MEMX | exchange | U | |
| NYSE American, LLC | AMEX | XASE | exchange | A |
| NYSE Arca, Inc. | ARCX | exchange | P |
The exact SQL behind every number
SELECT
name AS venue,
acronym,
mic,
type AS venue_type,
participant_id AS tape_code
FROM global_markets.stocks_exchanges
WHERE asset_class = 'stocks'
AND locale = 'us'
ORDER BY venue_type, venueThe registry carries 27 US equity entries. Only the exchanges among them display protected quotations. The trade reporting facilities print trades executed away from an exchange and never publish a quote at all, and the tape code column is the participant identifier that travels beside every quote on the consolidated feed. A self-help declaration always names one specific entry. It is never a market-wide switch.
What a self-help declaration actually does
Rule 611(b)(1) excepts a transaction from the trade-through prohibition when the trading center displaying the protected quotation was experiencing a failure, material delay, or malfunction of its systems or equipment. No regulator approves it in advance. SEC staff set the working threshold in the Reg NMS guidance, measured against an immediate-or-cancel order, an order that fills what it can on arrival and cancels the rest:
the repeated failure of a destination trading center to respond within one second to an incoming IOC order (after adjusting for order transmission time) would justify use of the exception.
The declaring venue does not get to keep it quiet. The same guidance sets a notice obligation:
A trading center that elects to use the self-help exception must notify the trading center whose quotations are bypassed. The notice can be sent by electronic mail and must be sent immediately upon use of the exception.
Both passages come from the SEC Division of Trading and Markets paper Responses to Frequently Asked Questions Concerning Rule 611 and Rule 610 of Regulation NMS, last updated April 4, 2008. Four things change the moment a declaration goes out:
- The declaring venue stops routing orders to the named venue.
- The named venue's quotes stop being protected quotations for the declaring venue's executions.
- The named venue keeps running, keeps quoting, and keeps every obligation it owes to everyone else.
- The declaration ends when the declaring venue revokes it, published the same way the declaration was.
The market absorbs the loss of one venue since the best bid is rarely a monopoly of any single one. The panel below ranks which venues supplied the national best bid in AAPL across one pinned session.
| venue | mic | best_bid_share_pct |
|---|---|---|
| Nasdaq | XNAS | 37.11 |
| Investors Exchange | IEXG | 24.54 |
| NYSE Arca, Inc. | ARCX | 21.32 |
| Cboe BZX | BATS | 7.31 |
| Members Exchange | MEMX | 3.44 |
| Cboe EDGX | EDGX | 2.68 |
| Binance | 1.5 | |
| New York Stock Exchange | XNYS | 1.5 |
| NYSE Texas, Inc. | XCHI | 0.51 |
| MIAX Pearl | EPRL | 0.37 |
| Cboe EDGA | EDGA | 0.35 |
| Cboe BYX | BATY | 0.33 |
The exact SQL behind every number
SELECT
ex.name AS venue,
ex.mic AS mic,
round(100 * count() / (
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-11 00:00:00', 'UTC')
AND bid_price > 0
), 2) AS best_bid_share_pct
FROM global_markets.cache_stocks_quotes AS q
INNER JOIN global_markets.stocks_exchanges AS ex ON ex.id = q.bid_exchange
WHERE q.ticker = 'AAPL'
AND q.sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
AND q.sip_timestamp < toDateTime('2026-06-11 00:00:00', 'UTC')
AND q.bid_price > 0
GROUP BY venue, mic
ORDER BY best_bid_share_pct DESC
LIMIT 12On that date, Nasdaq held the national best bid on 37.11% of AAPL quote updates, and 12 venues appear in the ranking, trailing down to 0.33% at the bottom. Remove any one row from that chart and a bid remains.
What self-help changes about an intermarket sweep order
An intermarket sweep order, or ISO, is a limit order marked so the receiving venue fills it immediately against its own book without pausing to check protected quotes elsewhere. The marking carries a condition. The sender must simultaneously route ISOs to every protected quotation it would otherwise trade through. The mechanics of trade-throughs and ISOs are worth reading alongside this section.
Self-help edits the destination list, and nothing else. While a declaration stands, the named venue's quote is not a protected quotation for the declaring trading center. A sweep no longer has to include it, and the rest of the list is untouched: every other protected quote at a better price still has to be hit.
A few details are easy to get wrong. The exception belongs to the party that declared it, and a broker-dealer routing its own ISOs measures against its own view of protected quotes rather than against someone else's declaration. The named venue's duties are unchanged: it must still protect everyone else's quotes while sitting under self-help at a rival. And the scope points one way and covers one venue. Venue A declaring against venue B says nothing about venue C's duty toward B.
Why the book can look locked or crossed with no Rule 610 breach
Rule 610(d) requires each exchange to maintain rules preventing its members from displaying quotations that lock or cross a protected quotation during regular trading hours. A locked market is a bid equal to an offer. A crossed market is a bid above an offer. Locked and crossed markets walks through both states.
The prohibition is written against protected quotations. Once a venue's quote stops being protected for the declaring venue, members of the declaring venue can post a bid at or through it while breaching nothing. The consolidated view, which knows nothing about the declaration, shows the lock anyway. The panel below counts every NBBO update in AAPL over one pinned extended session and measures how often the best bid met or passed the best offer in each ET hour.
| et_hour | nbbo_updates | updates_label | locked_pct | crossed_pct |
|---|---|---|---|---|
| 04:00 | 1478 | 1.48 thousand | 0 | 0 |
| 05:00 | 2070 | 2.07 thousand | 0 | 0.0483 |
| 06:00 | 528 | 528.00 | 0.947 | 0.947 |
| 07:00 | 2207 | 2.21 thousand | 0.0906 | 0.0453 |
| 08:00 | 3490 | 3.49 thousand | 0.086 | 0.0287 |
| 09:00 | 221819 | 221.82 thousand | 0.2912 | 0.0329 |
| 10:00 | 279898 | 279.90 thousand | 0.3373 | 0.0857 |
| 11:00 | 307855 | 307.86 thousand | 0.1709 | 0.0403 |
| 12:00 | 268815 | 268.81 thousand | 0.2053 | 0.0275 |
| 13:00 | 251012 | 251.01 thousand | 0.3486 | 0.0805 |
| 14:00 | 174920 | 174.92 thousand | 0.5025 | 0.0303 |
| 15:00 | 233433 | 233.43 thousand | 0.6966 | 0.0934 |
| 16:00 | 1335 | 1.33 thousand | 0.5243 | 0.5243 |
| 17:00 | 341 | 341.00 | 0.2933 | 0 |
| 18:00 | 1107 | 1.11 thousand | 0.0903 | 0 |
| 19:00 | 1101 | 1.10 thousand | 0.0908 | 0.0908 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_hour,
count() AS nbbo_updates,
formatReadableQuantity(count()) AS updates_label,
round(100 * countIf(bid_price = ask_price) / count(), 4) AS locked_pct,
round(100 * countIf(bid_price > ask_price) / count(), 4) AS crossed_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-11 00:00:00', 'UTC')
AND bid_price > 0
AND ask_price > 0
GROUP BY et_hour
ORDER BY et_hourThe series runs from the 04:00 bucket through 19:00, 16 hourly buckets in all, opening with 1.48 thousand quote updates in the first one. Locked prints account for 0% of updates in that first bucket and 0.0908% in the last, with crossed prints at 0% early on. Read the locked and crossed columns as a pair rather than as a single headline rate: locked prints turn up in buckets on both sides of the opening bell, so the presence of one says nothing on its own about whether a rule was breached. What decides that is whether the locking quote was protected at the moment it printed.
The same two windows are worth comparing name by name. Here the early window covers 4 a.m. to 9 a.m. ET and the midday window covers 10 a.m. to 4 p.m. ET on the same date.
| symbol | premarket_locked_pct | session_locked_pct | locked_gap_pct |
|---|---|---|---|
| KO | 0.848 | 2.413 | -1.565 |
| MSFT | 0.352 | 0.118 | 0.234 |
| AAPL | 0.102 | 0.356 | -0.254 |
| NVDA | 0.099 | 0.338 | -0.24 |
| SPY | 0.098 | 0.807 | -0.709 |
The exact SQL behind every number
SELECT
symbol,
round(100 * countIf(locked AND et_hour < 9) / countIf(et_hour < 9), 3) AS premarket_locked_pct,
round(100 * countIf(locked AND et_hour >= 10 AND et_hour <= 15) / countIf(et_hour >= 10 AND et_hour <= 15), 3) AS session_locked_pct,
round(100 * countIf(locked AND et_hour < 9) / countIf(et_hour < 9)
- 100 * countIf(locked AND et_hour >= 10 AND et_hour <= 15) / countIf(et_hour >= 10 AND et_hour <= 15), 3) AS locked_gap_pct
FROM
(
SELECT
ticker AS symbol,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) AS et_hour,
bid_price = ask_price AS locked
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 20:00:00', 'UTC')
AND bid_price > 0
AND ask_price > 0
)
GROUP BY symbol
HAVING countIf(et_hour < 9) > 0
AND countIf(et_hour >= 10 AND et_hour <= 15) > 0
ORDER BY premarket_locked_pct DESCThe panel covers 5 names, sorted by the early-window rate. KO leads that column at 0.848% of updates locked, and the same name reads 2.413% at midday. The last column subtracts the midday rate from the early one and comes out at -1.565 percentage points, a negative number, so for this name the locked rate runs higher inside regular hours than before the open. That is the point worth carrying away. A lock printed in the middle of the session is an ordinary event in the consolidated data, and Rule 610(d) reaches only a member quotation that locks a protected quotation, so a quote that is unprotected, whether it sits under a live self-help declaration, arrives in an odd lot, or comes from a venue that is not automated, can be locked at noon with the rule having nothing to bite on.
Why the SIP keeps printing a quote nobody will honour
The securities information processor consolidates what each venue publishes. It has no field for whether a venue currently sits under self-help at some other venue, and the venue under self-help usually keeps quoting normally throughout, since its own systems may look fine from the inside. The declaration travels on a separate channel: the declaring venue's system status feed. A reader watching only the consolidated tape sees the artifact and never the notice, which is one more reason the SIP and direct exchange feeds tell different stories about the same moment.
A dated episode: August 22, 2013
The clearest public trail belongs to the UTP SIP failure of August 22, 2013. At 10:53 a.m. ET, NYSE Arca could not connect to the UTP SIP after repeated attempts, and Nasdaq declared self-help against Arca. The declaration was revoked at 11:09 a.m. ET, sixteen minutes later, which is the ordinary shape of one of these events. Contemporaneous reporting of the participants' timeline carries those two timestamps (CNBC, August 27, 2013).
The venue's own notice covers what came next. UTP Vendor Alert #2013-9, dated August 23, 2013, timestamps intermittent outages across multiple UQDF quote channels at 11:48 a.m. ET, an outage on all UQDF channels at 12:03 p.m., the issue resolved and the SIP environment stable at 12:24 p.m., connectivity reestablished at 2:00 p.m., and all quoting and trading in Tape C securities resumed at 3:25 p.m.
A useful contrast sits two years later. The SEC data highlight on the NYSE trading suspension of July 8, 2015, published February 3, 2016, records NYSE suspending trading from 11:32 a.m. to 3:10 p.m. ET. A venue that withdraws its quotations entirely leaves nothing to protect and nothing to declare against. Self-help exists for the harder case, where the quote is still published and still consolidated while orders sent to it go unanswered.
How to watch a declaration in real time
Venues publish declarations and revocations as system status messages, and IEX and MIAX both post them. Reading a pair of those messages end to end is the fastest way to internalise the mechanism: one message naming the venue being bypassed, then a revocation, often within minutes. Between the two, the tape may carry an NBBO no router would trust.
Data notes
All three market-data panels are pinned to the extended session of June 10, 2026, so the numbers do not move when the post is regenerated. Quote counts are consolidated NBBO updates, one row per change to the national best bid or offer, restricted to two-sided quotes with a positive bid and offer. A locked print is a best bid equal to the best offer; a crossed print is a best bid above the best offer. The ET hour buckets are derived from the UTC timestamp of each quote, never from a hardcoded session clock, and the registry panel is the current exchange reference list rather than a snapshot of that date.
FAQ
What is a self-help declaration under Reg NMS?
It is a trading center's formal notice that another venue's systems are failing or materially delayed, letting the declaring venue bypass that venue's quotes without violating the Rule 611 trade-through prohibition. The declaring venue must notify the bypassed venue immediately, and it lifts the declaration by revoking it.
Does self-help stop the other exchange from trading?
No. The named venue keeps matching orders, keeps publishing quotes to the consolidated feed, and keeps every obligation it owes to other venues. What changes is that one counterpart stops routing to it and stops treating its quotes as protected.
Can a locked market be legal?
Yes. Rule 610(d) reaches quotations that lock or cross a protected quotation during regular trading hours. Outside regular hours the prohibition does not apply, and when a venue's quote has lost protected status the prohibition has nothing to bite on, which is how a legal lock can appear midday.
How long does a self-help declaration last?
As long as the declaring venue keeps it in force. Many run for minutes, ending once the other venue's response times return to normal. The August 22, 2013 declaration against NYSE Arca lasted sixteen minutes from declaration to revocation.
Who decides that a venue is unreachable?
The declaring trading center does, against its own written parameters. SEC staff guidance points to repeated failures to answer an immediate-or-cancel order within one second, after adjusting for transmission time, as the benchmark that justifies the exception.
Every panel on this page ships with the SQL that produced it, open any one to see exactly how a locked print was counted. To run the same quote-level counts on a date or a symbol of your own, ask the question in plain English on the Strasmore terminal.