Strasmore Research
Learn Matt ConnorBy Matt Connor

How Exchange Speed Bumps Work

How exchange speed bumps work: which messages a 350 microsecond delay holds back, what it does to queue position, and when the quote stays protected.

An exchange speed bump is a fixed delay, from a few hundred microseconds to a few milliseconds, inserted between the moment an order reaches a venue and the moment it can touch the order book. The length is written into the exchange's rule filing and applies to named message types. The revealing part of any speed bump is the list of messages that skip it.

What an exchange speed bump actually is

A microsecond is one millionth of a second, and a millisecond is one thousandth, or 1,000 microseconds. The best documented US equity speed bump runs 350 microseconds and is built from cable: a coil of optical fiber roughly 38 miles long, sitting between the venue's point of presence and its matching engine. Light in glass needs about 350 microseconds to cover that distance. Nothing inside the coil decides anything, and no message can jump ahead of another within it.

Two details from the filings do the real work. The delay covers inbound orders, cancels and modifications, and it covers the outbound execution report on the way back. The exchange's own logic sits on the matching-engine side of the coil: when the venue reprices a resting pegged order against the national best bid and offer, that calculation reads market data the exchange receives directly and never enters the cable. A pegged order can move while an inbound order is still travelling.

Which messages get delayed, and which skip the coil

Filed designs fall into two families.

The symmetric-inbound family delays every message a member sends. Two orders sent 5 microseconds apart reach the book 5 microseconds apart, both shifted by the same 350 microseconds, and the venue releases them in arrival sequence. Standing among members survives intact. The party that gains time is the venue's own repricing logic, which was never in the cable.

The asymmetric family delays only liquidity-removing messages. An order that would take the displayed quote goes through the delay, while a new posting order, a cancel or a size reduction from a resting maker goes straight to the book. A maker watching another venue's feed can pull a quote inside that window. The taker sent first and arrives second.

How often does a quote change in the first place?

A delay length means little without the clock it runs against. The panel below counts consolidated quote messages for five household names over one fixed hour of a June 2026 session, then divides the hour by the count to get the average spacing between quote updates.

QueryAverage spacing between national best quote updates, one fixed hour
symbolquote_message_countavg_ms_between_quotes
SPY13384012.69
NVDA8068024.462
AAPL30785511.694
KO11773830.576
MSFT7728246.583
The exact SQL behind every number
SELECT
    ticker                        AS symbol,
    count()                       AS quote_message_count,
    round(3600000.0 / count(), 3) AS avg_ms_between_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
  AND sip_timestamp >= '2026-06-10 15:00:00'
  AND sip_timestamp <  '2026-06-10 16:00:00'
GROUP BY symbol
ORDER BY avg_ms_between_quotes ASC
Run this yourself

Average spacing runs from 2.69 milliseconds for SPY, the busiest of the 5 names, out to 46.583 milliseconds for MSFT. The coil is 0.35 milliseconds. Divide any figure in that column by 0.35 and you have the number of coil transits that fit between two consecutive updates of the national best quote for that name.

Averages hide the bursts. The next panel splits the same hour into minutes for one name, counting quote messages against the number of distinct prices the best bid visited.

QueryQuote messages per minute against distinct best-bid prices (NVDA)
60 rows (showing 20)
et_timequote_message_countdistinct_bid_level_count
11:001846865
11:011997192
11:021321530
11:031533339
11:041489976
11:051245337
11:061194948
11:071321034
11:081592642
11:091328224
11:101688442
11:111270830
11:121421135
11:131445858
11:141355755
11:151396849
11:161646158
11:171546132
11:181327747
11:191814057
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
    count()                  AS quote_message_count,
    countDistinct(bid_price) AS distinct_bid_level_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'NVDA'
  AND sip_timestamp >= '2026-06-10 15:00:00'
  AND sip_timestamp <  '2026-06-10 16:00:00'
GROUP BY et_time
ORDER BY et_time
Run this yourself

In the minute beginning 11:00 ET the tape carried 18468 quote messages for the name while the best bid visited 65 distinct prices. Quote traffic and price movement are separate quantities: most messages restate size or hand the best bid from one venue to another at a price that does not move. The moments a speed bump is built around are the minority in which the price itself steps, and the panel shows they do not arrive evenly across the hour.

Speed bumps outside US equities

Futures venues use the asymmetric design openly. ICE Futures U.S. applied a 3 millisecond delay to aggressing orders in its gold and silver futures in 2019, under the name Passive Order Protection: a resting order can be cancelled during those 3 milliseconds while the aggressor waits out the clock. Eurex runs a comparable mechanism on selected options, delaying aggressing orders by a few milliseconds while quote updates pass untouched. A futures contract trades on one exchange, so no cross-venue price protection rule is in play and the design reduces to who wins a race inside a single venue.

Canadian equities produced the clearest regulatory answer. TSX Alpha introduced a randomized delay of roughly 1 to 3 milliseconds in 2015 on orders that would remove liquidity, with posting orders exempt. Canadian regulators treated the asymmetry as disqualifying: the venue's displayed quote falls outside the Order Protection Rule, and routers on other marketplaces are not obliged to respect it.

Is a delayed venue's quote still protected?

Reg NMS Rule 611 protects the top of book at an automated trading center, provided the quote is an automated quotation, meaning one that answers an incoming order immediately and automatically. In 2016 the SEC read immediately as tolerating a de minimis delay and put the practical boundary at less than one millisecond. A 350 microsecond coil sits inside that boundary, so the delayed venue's best bid and offer is a protected quote: other venues may not print through it, and a router has to account for a price it cannot reach for another 350 microseconds. That obligation, and the intermarket sweep order a router uses to clear several venues at once, are the subject of trade-throughs and ISO orders.

Protection has a second edge. A quote nobody can hit for 350 microseconds can sit at the same price as an opposite-side quote elsewhere for that window, the condition covered in locked and crossed markets. And the quote a router reads is only as current as the feed it arrived on, the distinction drawn in SIP versus direct exchange feeds.

The best bid moves around the market constantly. The panel below counts how best-bid updates distributed across venues for one name over a half-hour slice of the same session.

QueryWhich venues held the best bid, half-hour slice (AAPL)
venuemicbest_bid_update_countpct_of_best_bid_updates
NasdaqXNAS5142636.17
Investors ExchangeIEXG3680925.89
NYSE Arca, Inc.ARCX3543924.93
Cboe BZXBATS84435.94
Members ExchangeMEMX43633.07
Cboe EDGXEDGX20901.47
New York Stock ExchangeXNYS9850.69
NYSE Texas, Inc.XCHI6600.46
Cboe EDGAEDGA4320.3
Cboe BYXBATY4270.3
MIAX PearlEPRL3440.24
Nasdaq Philadelphia Exchange LLCXPHL2040.14
24X National Exchange LLC24EQ1740.12
Nasdaq Texas, Inc.XBOS1730.12
NYSE National, Inc.XCIS1320.09
NYSE American, LLCXASE580.04
The exact SQL behind every number
SELECT
    e.name                                           AS venue,
    e.mic                                            AS mic,
    count()                                          AS best_bid_update_count,
    round(100.0 * count() / sum(count()) OVER (), 2) AS pct_of_best_bid_updates
FROM global_markets.cache_stocks_quotes AS q
INNER JOIN
(
    SELECT
        toUInt32(id) AS exchange_id,
        any(name)    AS name,
        any(mic)     AS mic
    FROM global_markets.stocks_exchanges
    WHERE asset_class = 'stocks'
    GROUP BY exchange_id
) AS e ON toUInt32(q.bid_exchange) = e.exchange_id
WHERE q.ticker = 'AAPL'
  AND q.sip_timestamp >= '2026-06-10 15:00:00'
  AND q.sip_timestamp <  '2026-06-10 15:30:00'
GROUP BY venue, mic
ORDER BY best_bid_update_count DESC
Run this yourself

16 venues appear at the best bid in that slice, and the busiest holds 36.17% of the updates. Any of those quotes can be protected, delayed or not, and a marketable order sweeping the market has to respect each one it passes.

What a speed bump does to queue position and fill rates

  1. Position in the book is untouched by a uniform inbound delay. Every member pays the same 350 microseconds and the venue releases messages in arrival order, so the sequence that sets priority is the sequence that would have happened without the coil.
  2. Measuring your position gets harder. The acknowledgement you time-stamp travelled back through the delay, so the interval between your send and your ack carries the bump on both legs. Subtract the documented delay before inferring anything from your own timestamps, as how to estimate queue position works through.
  3. Displayed size is least reliable in the moments you most want it. On an asymmetric venue cancels are undelayed while takes are not, so a resting quote can leave during your transit. Marketable-order fill rates hold up in quiet markets and slip in fast ones.
  4. Allocation rules still decide the fill. At a price-time venue the bump preserves the arrival sequence that ranks resting orders; at a pro-rata venue, size does the ranking and arrival time counts for less, as set out in price-time priority versus pro rata.

In the overwhelming majority of transits the price you saw is the price you get. The exception is the case the design was built around: a market moving in the window between your order leaving and your order arriving.

FAQ

What is a speed bump on a stock exchange?

A rule-mandated delay between an order's arrival at a venue and its interaction with the order book. The best known US example is 350 microseconds, produced by a coil of fiber rather than by software, covering inbound orders and cancels along with outbound execution reports.

Is 350 microseconds long enough to matter?

It matters most for the messages that skip it, including the venue's own pegged-order repricing. Against the market's clock, average spacing between consecutive updates of the national best quote on active names is measured in milliseconds and fractions of a millisecond, as the first panel above shows.

Are speed-bumped quotes protected under Reg NMS?

Sub-millisecond delays are, under the SEC's 2016 reading of immediately in the automated quotation definition, so a 350 microsecond venue's quote is protected and other venues may not trade through it. Canadian regulators reached the opposite conclusion for an asymmetric multi-millisecond delay.

Do futures exchanges use speed bumps?

Yes, usually the asymmetric kind. ICE Futures U.S. gold and silver futures carry a 3 millisecond delay on aggressing orders, and Eurex applies a few milliseconds to aggressing orders in selected options. Resting quotes can be cancelled inside the window.

Data notes

The quote panels read the consolidated quote stream, one message per change in the national best bid and offer, so a count here is a count of best-quote changes rather than every order-book event on every venue. The window is a fixed hour, 11:00 to 12:00 ET on June 10, 2026, pinned so the figures do not move between readings. Average spacing is the slice length divided by the message count rather than a median of observed gaps.


Every panel here carries the SQL that produced it. To count quote updates for a name and a window you pick, ask the question in plain English on the Strasmore terminal.

#market-microstructure#iex#latency#order-types#reg-nms