Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

SIP Feeds vs Direct Exchange Feeds

Why two screens show different prices for the same stock: what the SIP consolidated tape carries, and where direct exchange feeds gain speed and depth.

SIP feeds vs direct exchange feeds is the reason two people can look at the same stock in the same second and see two different prices, with neither screen broken. Every US equity quote reaches you along one of two paths: the consolidated tape published by a securities information processor, known as the SIP, or an individual exchange's own proprietary feed. The consolidated tape is the official, regulated picture of the whole market. A direct feed is one venue's private picture, delivered sooner and with more of the order book attached.

What does the SIP actually consolidate?

A securities information processor is regulated market plumbing. Every national securities exchange sends its best quote and its trade reports to the processor for the plan its listing venue belongs to. Two plans divide the tape between them. The Consolidated Tape Association plan covers NYSE-listed securities (Tape A) and other exchange-listed issues (Tape B), carrying trades on CTS and quotes on CQS. The UTP Plan covers Nasdaq-listed securities (Tape C), carrying quotes on UQDF and trades on UTDF. Each one is a national market system plan filed with the SEC and governed by an operating committee of the participating exchanges, not by a single vendor.

The word consolidated is literal. The processor takes in one message stream per venue and republishes one ordered stream, applying its own timestamp and sequence number on the way through. The panel below lists the US equity exchanges on file, 18 of them, each a participant obliged to feed the tape.

QueryUS equity exchanges that feed the consolidated tape
The exact SQL behind every number
SELECT
    name                     AS venue,
    acronym                  AS venue_code,
    mic                      AS market_identifier_code,
    toString(participant_id) AS sip_participant_code
FROM global_markets.stocks_exchanges
WHERE lower(asset_class) = 'stocks'
  AND lower(locale) = 'us'
  AND lower(type) = 'exchange'
ORDER BY name
Run this yourself

The single-letter participant code in the last column is how the tape identifies each venue inside a quote message. The consolidated record those venues build together is what gets used for official closing prices and best execution reviews, whatever a private feed showed a moment earlier.

Why the NBBO only exists on the consolidated feed

The national best bid and offer, the NBBO, is the highest bid and the lowest offer available anywhere across those participants at a given moment. No single exchange can publish it, since a venue sees its own book and no one else's. The processor is the only party in the design that sees every venue's top of book at once. The NBBO lives there. Our guide to how the NBBO is built takes the construction apart quote by quote.

A direct feed answers a narrower question: what does this one exchange's book look like right now, in full. Firms that want a national picture without the SIP buy many direct feeds and run their own consolidator, which is what the largest trading firms do.

The panel below counts, for one household name across a single tape day, how often each venue appeared on the bid side of the quote record.

QueryWhich venues sat on the bid side of the quote record, KO on June 16, 2026
The exact SQL behind every number
SELECT
    ex.venue_name                                     AS venue,
    qt.bid_updates                                    AS bid_quote_update_count,
    round(100 * qt.bid_updates / qt.total_updates, 1) AS share_of_updates_pct
FROM
(
    SELECT
        toUInt32(bid_exchange) AS venue_id,
        count()                AS bid_updates,
        sum(count()) OVER ()   AS total_updates
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'KO'
      AND sip_timestamp >= '2026-06-16 12:00:00'
      AND sip_timestamp <  '2026-06-16 22:00:00'
    GROUP BY venue_id
) AS qt
INNER JOIN
(
    SELECT
        toUInt32(id) AS venue_id,
        name         AS venue_name
    FROM global_markets.stocks_exchanges
    WHERE lower(asset_class) = 'stocks'
) AS ex ON ex.venue_id = qt.venue_id
ORDER BY bid_quote_update_count DESC
Run this yourself

17 venues turned up on the bid across that day. The busiest of them, Investors Exchange, carried 56.9% of the bid-side updates, and the rest was spread over the other venues in the table. One exchange's feed would have shown you a true quote and a partial one.

Where the latency gap between the feeds comes from

A quote on a direct feed leaves the matching engine and travels to a subscriber cross-connected in the same building. A quote on the consolidated tape leaves that same matching engine, travels to the processor's site, waits its turn to be normalized and sequenced against every other venue's messages, then travels again to the subscriber. The extra hops are physical: fiber between data centers in northern New Jersey, plus processing time at the processor.

Part of that gap is measurable from the tape itself. Every quote record carries two clocks. The participant timestamp is stamped at the exchange when the venue published the quote. The SIP timestamp is stamped at the processor when it consolidated the quote. The difference between them is the consolidation hop.

QueryVenue clock to consolidated tape clock, KO quotes on June 16, 2026
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(quantileDeterministic(0.5)(toFloat64(toUnixTimestamp64Nano(sip_timestamp) - toUnixTimestamp64Nano(participant_timestamp)) / 1000, toUInt64(sequence_number)), 1)  AS median_hop_us,
    round(quantileDeterministic(0.95)(toFloat64(toUnixTimestamp64Nano(sip_timestamp) - toUnixTimestamp64Nano(participant_timestamp)) / 1000, toUInt64(sequence_number)), 1) AS p95_hop_us,
    count()                                                                                                       AS quote_update_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'KO'
  AND sip_timestamp >= '2026-06-16 12:00:00'
  AND sip_timestamp <  '2026-06-16 22:00:00'
  AND toUnixTimestamp64Nano(participant_timestamp) > 0
GROUP BY et_time
HAVING quote_update_count >= 200
ORDER BY et_time
Run this yourself

Read the shape rather than any single bar. Over that session the median hop measured 33.7 microseconds in the 09:00 ET bucket and 28.1 microseconds in the 16:00 bucket, across 15 half hour windows that cleared the minimum quote count. A microsecond is a millionth of a second. A thousand of them make one millisecond.

Two caveats keep this honest. The measurement covers the leg from the venue to the processor only, and not the leg from the processor out to a subscriber, which is usually the larger of the two. Clock synchronization between separate firms also carries a tolerance, so read the level as an order of magnitude rather than a stopwatch reading.

How much traffic a quote feed carries

Speed is one axis. Volume is the other. The panel below counts quote updates across 5 household tickers over a single hour of the same session.

QueryQuote update traffic across five household tickers, 10:00 to 11:00 a.m. ET on June 16, 2026
The exact SQL behind every number
SELECT
    ticker,
    count()                         AS quote_update_count,
    formatReadableQuantity(count()) AS quote_updates_readable,
    round(count() / 3600, 1)        AS updates_per_second,
    uniqExact(bid_exchange)         AS bid_venues
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'SPY')
  AND sip_timestamp >= '2026-06-16 14:00:00'
  AND sip_timestamp <  '2026-06-16 15:00:00'
GROUP BY ticker
ORDER BY quote_update_count DESC
Run this yourself

The busiest name in that group, SPY, printed 1.03 million quote updates in the hour, roughly 286.5 a second, spread over 16 bid venues. Multiply that by thousands of symbols and the scale of a market data plant becomes concrete. The options tape is heavier again, as the size of the options quote feed shows.

Top of book versus full order book depth

The second real difference is depth. The consolidated feed publishes each venue's best bid and best offer with the size resting there, plus every trade. It does not publish the orders behind that price. A direct feed typically carries the venue's full book, every resting price level with its size, along with auction and imbalance messages that never reach the tape. That split is the same one behind Level 1 and Level 2 market data on a retail platform.

One more gap is worth knowing. The protected quote has historically been built from round lots, so an odd lot priced better than the NBBO does not appear in it. The SEC adopted a market data infrastructure rule in 2020 that revises the round lot definition and widens the content of core data toward depth and auction information.

SIP vs direct exchange feeds: who the gap matters for

Here is the honest verdict. The consolidated tape is not wrong. It is slower and shallower, and both gaps are bounded and measurable, as the panels above show.

For a market maker quoting continuously, the gap decides whether a quote is stale by the time someone trades against it. That firm buys direct feeds and puts its servers in the exchange's building, keeping the consolidated tape as a compliance reference.

For someone holding a position for days or weeks, the same gap is not observable. The fill comes from a broker's execution at the moment of the order, and a quote from a second earlier was accurate to the resolution any human can act on.

Two related questions have answers of their own. The free quote that arrives fifteen minutes late is a licensing convention, covered in why stock quotes are delayed 15 minutes. The fee tier you agree to when you open an account is covered in professional versus non-professional market data.

FAQ

Is the SIP feed wrong or inaccurate?

No. The consolidated tape carries the same quotes and trades the exchanges sent, and it is the official record for US equities. It arrives later than a venue's direct feed, and it carries only the top of each venue's book.

What is the difference between the SIP and a direct exchange feed?

The SIP consolidates. It merges every exchange's best quote and all trades into one stream and computes the NBBO from them. A direct feed is a single exchange's own stream, carrying that venue's full order book depth with no consolidation step in between.

How much slower is the SIP than a direct feed?

The venue to processor leg measures in microseconds, as the panel above shows for one session. Delivery from the processor onward adds more, depending on distance and connection. For automated market making that gap is decisive. On a timescale of minutes it is not observable.

Which exchanges does the consolidated tape cover?

Every registered US equity exchange. The Consolidated Tape Association plan covers Tape A and Tape B, and the UTP Plan covers Nasdaq-listed names on Tape C. The first panel on this page lists the venues on file.

Can I get the NBBO from a direct exchange feed?

Not from one feed. The NBBO spans every venue, and one exchange publishes only its own book. Firms that want an NBBO without the SIP subscribe to many direct feeds and build the consolidation themselves.


Every panel here ships with the SQL that produced it, so open one to see how the hop was counted. To run the same measurement on a different ticker or session, ask the question in plain English on the Strasmore terminal.