Strasmore Research
Learn Matt ConnorBy Matt Connor

Level 1 vs Level 2 vs Level 3 Market Data

Level 1 vs Level 2 vs Level 3 market data, explained with real quote panels: top of book, depth by price, order by order, and what retail feeds skip.

Level 1 vs Level 2 market data is a question about how much of the order book you are allowed to see. Level 1 is the top of the book: the best bid, the best offer, the size quoted at each, and the last trade. Level 2 is the depth behind that top line, every displayed price level with the total size resting at it. Level 3 carries each individual order separately, with its own identifier. Each tier is a superset of the one below it.

What is Level 1 market data?

Level 1, or top of book, answers one question: what is the best price available right now, and how much is quoted there. In US equities the consolidated version of that line is the national best bid and offer, which our guide to what the NBBO is covers in full. A Level 1 record carries the best bid, the best offer, the displayed size on each side, and on the trade side the last print with its size. Nothing about the second-best price, and nothing about who is quoting.

Two numbers do most of the work at this tier: the spread in cents, and the same spread in basis points, where one basis point is a hundredth of a percent. The panel below plots both for one large-cap stock across a single pinned session, from the 4:00 a.m. ET premarket open through the end of after-hours trading at 8:00 p.m. ET.

QueryLevel 1 top of book: quoted spread across a full session (AAPL, June 17 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(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2)       AS spread_cents,
    round(avg((toFloat64(ask_price) - toFloat64(bid_price))
              / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2)) * 10000, 2) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
  AND sip_timestamp >= '2026-06-17 08:00:00'
  AND sip_timestamp <  '2026-06-18 00:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
  AND (toFloat64(ask_price) - toFloat64(bid_price)) / toFloat64(bid_price) < 0.05
GROUP BY et_time
ORDER BY et_time
Run this yourself

At 04:00 ET the average quoted spread ran 37.38 cents wide, or 12.51 basis points. The last bucket in the panel, 19:30 ET, averaged 16.85 cents, or 5.67 basis points. The 32 half-hour buckets trace the whole day. Every point on that chart is Level 1: one line of the book, measured again and again.

What is Level 2 market data?

Level 2, also called market by price or depth of book, shows the ladder underneath the top line. For each price it aggregates the total displayed size resting there: 4,000 shares bid at $49.98, 1,200 at $49.97, 900 at $49.96 and 2,500 at $49.95, with a mirror image on the offer side. That shape is what traders mean by depth.

What Level 2 withholds is composition. The 4,000 shares at $49.98 could be one institutional order or forty retail ones, and the ladder reads the same either way.

A related shape can be measured from public trade data: where a stock's shares actually changed hands across price levels. A quoted ladder is resting interest. The panel below is executed volume, over half an hour of the same session.

QueryExecuted volume by price level: the traded ladder (KO, 30 minutes)
The exact SQL behind every number
SELECT
    toString(px)             AS price_level,
    round(sum(sz) / 1000, 1) AS shares_thousands,
    count()                  AS prints
FROM
(
    SELECT
        round(toFloat64(price), 2) AS px,
        toFloat64(size)            AS sz
    FROM global_markets.stocks_trades
    WHERE ticker = 'KO'
      AND sip_timestamp >= '2026-06-17 14:30:00'
      AND sip_timestamp <  '2026-06-17 15:00:00'
      AND price > 0
      AND size > 0
)
GROUP BY px
ORDER BY px
Run this yourself

Trading in that half hour spread across 63 distinct price levels, from $79.42 at the low end to $80.04 at the high end. The two extreme levels are thin, 0.1 thousand shares at the bottom and 0.8 thousand at the top, with the bulk of the volume printing between them. A Level 1 feed shows one price at a time through all of that. A Level 2 feed shows the ladder in advance, as resting orders rather than after the fact as prints.

What is Level 3 market data?

Level 3, or market by order, is the complete picture: every resting order individually, each with an identifier, a price, a size and a position in the queue at its price. Aggregate a Level 3 feed by price and you have rebuilt Level 2. Take the best price on each side and you have Level 1.

Level 3 answers two questions the aggregated tiers cannot. Where does an order sit in line at a price, which governs whether it gets filled when that price trades. And what happened to one specific order over its life, from placement to cancellation. Exchange proprietary feeds such as Nasdaq TotalView-ITCH carry this depth. The consolidated tape does not.

What does a retail Level 2 subscription actually give you?

Here the label gets loose. "Level 2" on a retail platform is rarely the full national depth of book. What usually arrives is one venue's book, often the venue your broker routes to, or a merged book capped at five or ten price levels a side. A ten-level book on a stock quoting in pennies covers ten cents of range, and on an active name that range refreshes constantly.

Message volume is a large part of why the tiers are priced so far apart. The panel below counts top-of-book quote records for five household names over one hour of the same session, alongside the average spread for each.

QueryTop-of-book spread and quote message count by name (10:00 to 11:00 a.m. ET)
The exact SQL behind every number
SELECT
    ticker                                                                 AS symbol,
    round(avg((toFloat64(ask_price) - toFloat64(bid_price))
              / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2)) * 10000, 2) AS spread_bps,
    count()                                                                AS quote_update_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO')
  AND sip_timestamp >= '2026-06-17 14:00:00'
  AND sip_timestamp <  '2026-06-17 15:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
  AND (toFloat64(ask_price) - toFloat64(bid_price)) / toFloat64(bid_price) < 0.05
GROUP BY symbol
ORDER BY spread_bps
Run this yourself

SPY quoted the tightest average spread of the five at 0.32 basis points, while KO averaged 1.95. Those update counts cover the top of the book only. A depth feed carries every change at every price level below it, and an order-by-order feed carries every message behind those. Options are the extreme case of the same arithmetic: how big the options quote feed is puts a number on it.

Why the visible book understates real liquidity

A displayed ladder is a floor on available liquidity rather than a measure of it. Two large pieces sit outside the picture.

Hidden and reserve orders. An iceberg order displays a small slice and keeps the rest in reserve, refreshing the visible piece as it fills. The book shows 200 shares; twenty thousand can be standing behind them. How iceberg orders work walks through the mechanics.

Off-exchange execution. A substantial share of US equity volume prints away from the lit exchanges, at broker internalizers and alternative trading systems that publish no pre-trade quote at all. Dark pool trading, explained covers where that volume goes.

What does conflation mean in a market data feed?

A conflated feed does not send every update. It snapshots the book on a fixed interval, perhaps every 250 milliseconds or every second, and sends the state as of that instant. Anything that happened between two snapshots never arrives, and two subscribers on two different intervals see two different books, each accurate as of its own clock.

The distinction matters most for anyone building on a feed. Un-conflated data means every message in sequence, which is what a matching-engine simulation or a queue-position model runs on. On a conflated feed those calculations become approximations. For a person reading a ladder with their eyes, the interval is close to irrelevant.

QueryTop-of-book message rate, minute by minute (NVDA, one hour)
The exact SQL behind every number
SELECT
    et_time,
    round(avg(sec_updates), 1) AS avg_updates_per_second,
    max(sec_updates)           AS peak_updates_in_one_second
FROM
(
    SELECT
        formatDateTime(toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
        toDateTime(sip_timestamp)                                                              AS et_second,
        count()                                                                                AS sec_updates
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'NVDA'
      AND sip_timestamp >= '2026-06-17 14:00:00'
      AND sip_timestamp <  '2026-06-17 15:00:00'
    GROUP BY et_time, et_second
)
GROUP BY et_time
ORDER BY et_time
Run this yourself

In the first minute of that hour, 10:00 ET, top-of-book records arrived at an average of 163.8 per second, and the busiest single second inside the minute carried 371 of them. A feed snapshotting once a second passes along one book state out of that stream. That is the top of the book on one stock. Depth and order-by-order feeds multiply the count.

Is Level 2 data worth paying for?

The value tracks the holding period. A trader working orders inside the spread, timing entries in seconds, reads depth for information the top line does not carry: where size is stacked and which side is thinning. That reading is imperfect for the hidden-liquidity reasons above, and it still beats no ladder at all.

Over days or weeks, the marginal information in a ten-level book is small next to its cost. The tier below Level 1 matters here too: delayed quotes, typically fifteen minutes behind, cost nothing on most platforms and are adequate for decisions measured in days. Why stock quotes are delayed 15 minutes explains where that convention came from. One last thing worth pinning down is delivery: a ladder fed by one venue and conflated at an interval the vendor never publishes is a partial view of a partial view.

FAQ

What is the difference between Level 1 and Level 2 market data?

Level 1 gives the best bid and best offer with the size at each, plus the last trade. Level 2 adds the displayed price levels underneath with the total size resting at each one, so it contains everything Level 1 has and more.

Is Level 2 market data real time?

That depends on the subscription. Exchange depth feeds are real time and carry a fee, while many retail platforms deliver a conflated version that snapshots on an interval. The product page rarely says which, and a broker's support desk can confirm it.

Does Level 2 show hidden orders?

No. A depth-of-book feed shows displayed size only. Iceberg reserve quantity and fully hidden orders stay invisible in the ladder until they print as trades.

What is Level 3 market data used for?

Level 3, or market by order, carries every individual resting order with its own identifier, price, size and queue position. It is sold mainly to firms running execution and order-routing models, where queue position changes the economics of a fill.

Do I need Level 2 data to trade?

No. Level 1 quotes and a trade tape are enough to place and manage orders on any retail platform. Depth becomes useful when a decision turns on liquidity at the moment of execution rather than on where a price closes.


Every panel here ships with the SQL underneath it, so you can open one and see exactly how each number was counted. The same questions run against any ticker and any session on the Strasmore terminal.

#market data#level 2#order book#depth of book#nbbo