Order Book and Depth of Market (DOM) Guide: Price Ladder Mechanics & Absorption Math
Learn how to read a Depth of Market (DOM) price ladder, separate passive limit queues from aggressive market sweeps, and calculate ES/MES tick slippage and absorption.
A Depth of Market (DOM) price ladder shows the live auction between passive limit orders waiting in queue and aggressive market orders crossing the spread. While candlestick charts summarize where price opened, peaked, bottomed, and closed over a fixed interval, the DOM reveals how many contracts are resting at each tick increment and how quickly aggressive buyers or sellers are consuming that liquidity.
This guide covers vertical DOM price-ladder mechanics, FIFO queue math, liquidity absorption, and execution slippage in futures and multi-asset order books. For stock-specific ECN quote windows, see our guide to reading a Level 2 order book. If you want to replay recorded Level I and Level II futures depth on Windows, see our NinjaTrader Market Replay setup guide.
Anatomy of a Depth of Market (DOM) vertical price ladder
Unlike a two-column stock quote box, a futures or crypto DOM arranges every minimum tick increment vertically like a thermometer. Passive bids sit on the left below the current market price, passive offers sit on the right above the market price, and executed volume prints in the center or side columns.
| DOM ladder column | What it displays in real time | Order type represented | Execution and microstructure rule |
|---|---|---|---|
| Resting bid size (left column) | Total contracts waiting to buy at each tick below the ask | Passive buy limit orders | Adds liquidity to the book; fills only when an aggressive seller hits the bid |
| Center price spine | Every contiguous tick increment (such as 0.25 pts on ES/MES) | Reference price axis | Anchors the inside spread, daily high/low, and Volume Profile nodes |
| Resting ask / offer size (right) | Total contracts waiting to sell at each tick above the bid | Passive sell limit orders | Adds liquidity to the book; fills only when an aggressive buyer lifts the offer |
| Last traded print / time & sales | Contracts actually executed at the bid or ask | Aggressive market or marketable-limit orders | Removes liquidity from the book; drives immediate tick-by-tick price movement |
| Session volume profile column | Cumulative volume traded at each price level during the session | Historical completed transactions | Identifies High Volume Nodes (acceptance) and Low Volume Nodes (vacuums) |
| Working order column | Your own resting limit, stop, or bracket orders | User account working instructions | Shows exact tick distance to target and protective stop invalidation |
Passive limit queues vs aggressive market sweeps: the core DOM equation
Price cannot move up a single tick on a centralized exchange simply because there are "more buyers than sellers." Every filled trade matches one bought contract with one sold contract.
Instead, a tick advances from 5,850.00 to 5,850.25 only when aggressive buy orders completely exhaust the passive sell limit queue resting at 5,850.00 (or when passive sellers pull their resting offers upward). Two distinct forces control whether a price level holds or breaks:
- Liquidity absorption (passive defense): Aggressive sellers hit the
5,850.00bid with 800 market orders, yet a passive institutional buyer absorbs all 800 contracts using reloading iceberg orders without letting5,850.00clear. Once aggressive selling dries up, price bounces back to5,850.50as trapped short sellers cover. - Liquidity vacuum (thin book sweep): Only 35 contracts sit on the offer at
5,850.25,5,850.50, and5,850.75. A single 150-contract aggressive buy sweep clears all three price levels in milliseconds, creating a multi-tick slippage jump.
Worked ES and MES futures DOM math: passive queue fill vs aggressive sweep
On CME Globex, E-mini S&P 500 (ES, $12.50 per 0.25-point tick) and Micro E-mini S&P 500 (MES, $1.25 per 0.25-point tick) match orders using a First-In, First-Out (FIFO) queue. The table below traces a 4-tick DOM ladder around a 5,850.00 support test to show how queue priority, absorption, and sweep slippage affect a 2-contract ES trade ($25.00 per tick) or 20-contract MES equivalent.
| Price ladder level | Resting bid queue | Resting ask queue | Volume traded at level | Scenario 1: Late passive buy limit at 5,850.00 | Scenario 2: Aggressive market buy after absorption confirms at 5,850.25 |
|---|---|---|---|---|---|
| 5,850.75 | 0 | 290 contracts | 140 contracts | Target exit resting in ask queue | Partial scale-out level (+2 ticks = +$50.00 gross) |
| 5,850.50 | 0 | 215 contracts | 310 contracts | Unrealized gain if filled (+2 ticks) | +1 tick above entry (+$25.00 gross) |
| 5,850.25 (Inside Ask) | 0 | 180 contracts | 620 contracts | Price bounces here without filling late 5,850.00 bid | Enters immediately by lifting 5,850.25 offer (guaranteed fill, pays 1-tick spread) |
| 5,850.00 (Inside Bid) | 540 contracts | 0 | 485 contracts | Joins #541 in FIFO line; 485 trade at 5,850.00 -> 0 contracts filled (missed winner) | Waited for 485 contracts to absorb at 5,850.00 without breaking lower |
| 5,849.75 | 410 contracts | 0 | 0 contracts | Adverse selection if 5,850.00 breaks -> fills only when support fails! | Protective stop-market trigger placed at 5,849.50 (3 ticks risk = -$75.00) |
Look closely at the adverse-selection trap in Scenario 1. When you join the back of a 540-contract passive bid queue at 5,850.00 and only 485 contracts trade before price bounces, you get zero fill on the winning bounce. Even worse, the only time your #541 order is guaranteed to fill is when sellers dump 900 contracts through 5,850.00, filling you right as support breaks.
Three classic DOM traps that fool beginners
1. Chasing large visible spoof walls
A 1,200-contract resting offer four ticks above current price looks like a brick wall to an untrained trader. In practice, high-frequency participants frequently pull resting orders milliseconds before price reaches the tick, or institutional buyers intentionally sweep into the 1,200-contract pool because it is the only place they can fill size without 5 ticks of slippage. Never fade a trend solely because a single large number appears in the ask column.
2. Ignoring iceberg orders and hidden replenishment
The DOM only displays visible limit size. An institutional desk accumulating 2,000 contracts at 5,850.00 rarely posts all 2,000 contracts at once; instead, an iceberg algorithm shows 25 contracts on the bid and automatically reloads another 25 contracts every time the visible lot is hit. You spot an iceberg by comparing the Volume Traded column against the Resting Bid: if 600 contracts trade at 5,850.00 while the visible bid never held more than 80 contracts, hidden passive buying is absorbing the flow.
3. Over-trading noise inside the midday value area
Watching numbers flash on a price ladder at 11:45 AM ET encourages impulsive clicking inside a 6-tick chop range where commission and 1-tick bid-ask friction destroy expectancy. The DOM is an execution tool for predefined higher-timeframe levels, not a reason to trade every tick fluctuation.
6-step DOM price-ladder execution checklist
Use these six rules to integrate Depth of Market reading into a structured intraday plan:
- Mark higher-timeframe structural levels first (prior day high/low, overnight high/low, VWAP, and 15-minute support/resistance zones) before looking at the DOM ladder.
- Observe average resting book thickness during the current session; a 150-contract bid during a quiet session carries different weight than 150 contracts during a volatile CPI morning when top-of-book depth drops by 80%.
- Watch how price behaves when it touches your pre-marked level: look for high traded volume with zero tick progression (absorption) rather than placing blind limit orders at the back of a crowded FIFO queue.
- Confirm that aggressive flow shifts in your favor (for example, sellers fail to break
5,850.00after 500 traded contracts and buyers begin lifting5,850.25in size). - Submit your entry with an automated bracket order (hard stop loss 1 to 2 ticks below the absorption low and a predefined target at the next high-volume node) so a sudden liquidity vacuum cannot cause an uncapped loss.
- Step away from the ladder immediately if spreads widen abnormally or if two consecutive absorption setups fail at the same price zone.
Practicing chart structure and intraday execution before trading live DOM flow
Reading a fast DOM ladder only works when you already know how to identify higher-timeframe support, resistance, and volatility expansion on the price chart. If your structural levels are placed in the middle of random chop, order-book reading will only accelerate your losses.
You can sharpen your level identification and intraday decision speed right now using ChartMini's browser-based day trading simulator or test multi-timeframe setups bar by bar in the Market Replay workspace. Read our guide on using a paper trading simulator without login and start a free practice session in seconds at /play.
Frequently asked questions
What is the difference between Depth of Market (DOM) and a Level 2 montage?
A Depth of Market (DOM) window displays a vertical price ladder where bids, offers, and recent prints align beside every tick increment for one-click order entry. A traditional equity Level 2 montage lists two side-by-side columns of market-maker quotes sorted by price.
Why do price levels with huge resting limit orders often get broken?
Visible resting size on the DOM represents passive liquidity waiting to be filled, not guaranteed support or resistance. Institutional algorithms frequently target thick liquidity pools to fill large positions, or spoofers cancel resting orders right before price touches the level.
What is liquidity absorption on a DOM price ladder?
Absorption occurs when aggressive market orders repeatedly hit the bid or lift the offer at a specific price tick, yet the passive limit queue reloads or holds firm via iceberg orders, preventing price from advancing through the level.
How does FIFO queue priority affect limit orders on the DOM?
On First-In, First-Out (FIFO) exchanges such as CME Globex for E-mini S&P 500 futures, your limit order sits behind every contract already resting at that price. Even if price touches your tick and trades 300 contracts, you will not get filled if 450 contracts were ahead of you in line.
Related reading
- How to Read a Level 2 Order Book: Bids, Asks & Execution Context
- NinjaTrader Market Replay: Setup, Cost & Playback Guide
- Order Flow Trading: Footprint Charts and Cumulative Volume Delta
- Futures Trading Strategies for Beginners: 4 Setups to Test
- Scalping Strategies Guide: Execution Speed, Spreads & Risk