Level 2 Market Data Explained: Reading Order Book Depth in Futures
What Level 2 market data really shows, how to read order book depth and imbalance, and where the edge is — and isn't — for futures traders and quants.
Open a depth-of-market ladder for the first time and it looks like the cockpit of a plane: columns of numbers flickering on both sides of the price, sizes appearing and vanishing faster than you can read them. That ladder is Level 2 market data, and understanding what it actually represents — and what it doesn’t — separates traders who use it from traders who get mesmerized by it.
Related: what Level 2 and other CME market data costs · L1 vs L2 vs L3 explained.
Level 1 vs Level 2: top of book vs the whole stack
Every futures contract has an order book: a list of resting buy orders (bids) below the current price and resting sell orders (offers/asks) above it, each at a specific price and quantity.
- Level 1 gives you the top of the book only — the best bid, the best ask, and the last trade. It answers “what can I buy or sell right now, and at what price?”
- Level 2 gives you depth: the bid and ask quantities at multiple price levels stepping away from the touch. It answers “how much size is waiting at each price, and which side is heavier?”
A simplified Level 2 snapshot for an E-mini contract might look like this:
| Bid size | Bid price | Ask price | Ask size |
|---|---|---|---|
| 142 | 5275.00 | 5275.25 | 88 |
| 310 | 5274.75 | 5275.50 | 205 |
| 477 | 5274.50 | 5275.75 | 331 |
The “touch” — the best bid and ask — is the top row. Everything below is depth. In this snapshot there is more size resting on the bid than the offer, a simple order book imbalance that some traders read as short-term buying pressure.
What depth actually tells you
Three things are genuinely informative in the book:
- Where liquidity sits. Large resting orders at a round number act like soft walls — places where price may pause because there is real size to absorb it. Knowing the next big level up and down is useful context for stops and targets.
- Imbalance. The ratio of total bid size to ask size in the visible book correlates, weakly and fleetingly, with the direction of the next few ticks. Heavier bids, slight upward drift; heavier offers, slight downward drift. Emphasis on weak and fleeting.
- How fast it refreshes. A book that rebuilds instantly after a sweep is deep and liquid; one that stays thin after a print is fragile and prone to fast moves.
What depth does not tell you
Here is the part most “DOM trading” courses gloss over. The order book is not a list of intentions — it is a list of resting orders that can be cancelled in microseconds. That has consequences:
- Liquidity is largely fleeting. A huge bid can evaporate the instant price approaches it. Size you can see is not size you can necessarily trade against.
- Some of it is noise on purpose. Orders placed only to be pulled — to create the appearance of pressure — are part of the landscape. You cannot reliably tell a genuine resting order from a fleeting one by looking at the ladder.
- The visible edge is often sub-spread. This is the quiet killer for retail. In our own research on E-mini and Nasdaq futures, order book imbalance does carry real predictive information about the next move — but the median move it predicts is smaller than the bid-ask spread. A maker sitting on the queue might harvest it; a taker crossing the spread to act on it pays more in cost than the edge is worth.
That last point is worth sitting with. “Order book imbalance predicts price” can be simultaneously true and untradeable depending on whether you cross the spread. A lot of seductive DOM strategies die exactly there.
Order flow: pairing depth with the tape
Depth on its own is a static photograph. Order flow adds the verb. By combining Level 2 (resting liquidity) with the trade feed — time and sales, with the aggressor side of each print — you can see not just where size rests but where it is being consumed. Aggressive buyers lifting offers while the bid stack holds is a different story than the same imbalance with no trades going through.
This is why serious order-flow work needs both channels, aligned on the same clock:
from tickstream import Stream
# subscribe to depth + trades on one connection, same timestamp base
for evt in Stream("sk_live_…").subscribe("ES", channels=["book", "ticks"]):
if evt.channel == "book":
imbalance = sum(evt.bids_size) / max(sum(evt.asks_size), 1)
else: # a trade printed
...
The non-negotiable requirement is a single, consistent timestamp across both channels. If your book updates are stamped in milliseconds and your trades in microseconds, you cannot reliably say which came first — and sequencing is the entire point of order flow.
Backtesting order book strategies
If you want to test a depth-based idea properly, snapshots won’t cut it. You need historical Level 2 data that captures every book update with accurate timestamps, so you can replay the book as it actually evolved. Three things separate a real backtest from a fantasy:
- Queue position. Being filled on a resting order depends on where you are in the queue, which a naive backtest ignores — turning losing strategies into “winners.”
- Latency. The book you’d actually see is delayed by your network path; acting on the instantaneous book overstates every edge.
- Spread and fees. As above, sub-spread edges evaporate once you pay to cross.
A feed that archives full-depth Level 2 history — not just top-of-book — lets you do this honestly. tickstream keeps complete order-book history (every level, microsecond-stamped, back to 2019 for the major contracts) for exactly this reason: so depth strategies can be tested against what the book really did, spread and all, before any capital is at risk.
The honest summary
Level 2 market data is real information, not magic. It shows you where liquidity rests, how imbalanced the book is, and how quickly it heals — genuinely useful context. What it is not is a push-button signal, because the liquidity is fleeting, some of it is intentionally misleading, and the cleanest statistical edges in the book tend to live inside the spread where takers can’t reach them.
Use it to understand structure, pair it with the tape for order flow, and if you want to trade on it, prove the edge survives queue position, latency and the spread on real historical depth first. That discipline is the difference between reading the book and being read by it.
Frequently asked questions
What is the difference between Level 1 and Level 2 market data?
Level 1 shows only the best bid and best offer (the top of the book) plus the last trade. Level 2 shows the full depth of the order book — the resting bid and ask quantities at multiple price levels away from the touch — so you can see how much size is queued above and below the current price.
Is Level 2 data useful for retail futures traders?
It can be, but with caveats. Depth reveals where resting liquidity sits and how imbalanced the book is, which is genuine information. However, much of that liquidity is fleeting and some is deliberately misleading, so reading the DOM is a skill, not a signal generator. It is most useful combined with trade (time-and-sales) data, not in isolation.
Can you backtest order book strategies?
Yes, but only with historical Level 2 data that reconstructs the book over time, not just snapshots. You need every book update with accurate timestamps to replay how depth evolved. Many edges that look strong on snapshots disappear once you account for queue position, latency and the bid-ask spread.