Futures mechanics

Level I vs Level II futures data: reading quotes and depth

Read what the quote shows, what deeper levels add, and what neither can tell you about a future fill.

By Boxcar Trading3 min read

Level I shows the best quote; Level II adds depth

Level I futures data provides the last traded price and the best bid and ask. Level II adds displayed buy and sell quantities at multiple prices. The additional levels help you inspect resting orders beyond the current quote; they do not make the feed inherently faster.

A single pair of blue and brass quote bars beside a glass panel showing multiple levels of market depth.

The best bid is the highest displayed buying price; the best ask is the lowest displayed selling price. The last traded price records an execution, so it is a different observation from either current quote.

Sources: Tradovate: Level I and Level II data · NinjaTrader: quote and depth columns

Read the quantity at each price separately

Consider this hypothetical snapshot of one futures contract. Quantities are contracts, and the three rows are selected depth levels rather than a claim about any provider’s full feed.

The best quote is 6,000.00 bid for 5 contracts and 6,000.25 offered for 2. The next two ask levels bring the displayed sell quantity across all three prices to 2 + 3 + 5 = 10 contracts. That does not mean 10 contracts are offered at 6,000.25. These are resting quantities at the instant shown, not completed trades or a forecast of your execution.

Read the quantity at each price separately
Bid quantityBid priceAsk priceAsk quantity
56,000.006,000.252
85,999.756,000.503
105,999.506,000.755

Sources: NinjaTrader: quote and depth columns

Displayed depth is not traded volume

A depth column describes quantities currently advertised at prices. A volume-at-price column counts contracts that have already traded over its stated period. NinjaTrader’s SuperDOM, for example, separates bid/ask depth from its Volume column, which counts executions during the session.

A change in a depth number alone does not establish how many contracts traded. Nor does the visible book necessarily disclose an order’s total size: where iceberg orders are supported, only their display quantity is public. CQG’s example shows an order with 1,000 total contracts but only 100 visible.

Sources: NinjaTrader: traded volume and queue estimates · CQG: total versus displayed iceberg quantity

Aggregated levels do not reveal individual orders

Market by Price (MBP) combines quantities at each price. A displayed total of 40 contracts alone cannot tell you whether that is one 40-contract order or several smaller orders, much less how many different traders submitted them.

CME’s MBP format includes aggregate quantity and order count, while its Market by Order (MBO) format supplies individual order sizes and anonymous order IDs for more detailed queue analysis. An order ID is not a trader’s identity. Level II is a broad label: confirm whether your provider and platform deliver aggregated price levels or individual orders.

Sources: CME: Market by Price and Market by Order · dxFeed: aggregated levels and individual orders

Match the data to the display you use

Start with the information your actual view needs. A best-quote and last-trade display uses top-of-book information; a depth ladder or liquidity heatmap needs quantities beyond the best quote. Indicator requirements can differ even within one platform: Tradovate says certain Order Flow+ indicators require Level II.

Do not assume Level II always means ten rows or the entire available book. NinjaTrader’s SuperDOM defaults to ten depth levels, but the exchange/data-provider combination limits how many can be displayed. Enlarging the window or changing a display setting cannot supply depth missing from the feed.

For Boxcar’s current data packages and activation steps, use the linked Level II support guide. Market depth does not change an account’s stage: Boxcar evaluations and simulated-funded accounts use virtual funds, and live trading requires express designation under a separate written agreement. A simulated order does not gain a real place in the exchange queue merely because the screen shows live depth.

Sources: Tradovate: Level I and Level II data · NinjaTrader: quote and depth columns · Boxcar: Level II packages and activation · Boxcar: evaluation, simulated-funded and live stages · NinjaTrader: traded volume and queue estimates