DOM and tape reading — the complete guide
A ladder and a time-and-sales window sit side by side on most order flow screens, and they are not two views of the same thing. One is a list of what people say they will do. The other is a list of what they have already done. This page is about the gap between them, and about how narrow that gap makes your conclusions.
The depth of market lists resting limit orders: advertisements that can be withdrawn for free, at any moment, by anyone. The tape lists completed transactions, which cannot be taken back. Reading the ladder is reading intentions. Reading the tape is reading commitments. Most beginner errors come from treating the first as the second.
The book is a menu, the tape is a receipt
Every order flow screen carries two live windows. The ladder shows the limit orders resting at each price right now, level by level. The time-and-sales window shows executions, one line per transaction, in the order they happened. The two are fed by different messages from the exchange, and they answer different questions.
The asymmetry between them is economic, not stylistic. Placing a limit order costs nothing and commits nothing: it can be cancelled a microsecond later and the person who placed it is no worse off. Crossing the spread costs the spread and creates a position that has to be managed. The two datasets are therefore not equally strong evidence, and no amount of screen resolution changes that. A displayed order is a revocable statement of intent. A print is a fact — the only kind a market produces.
This is why one rule survives every venue, every instrument and every piece of software: believe what trades, not what is displayed. The ladder tells you what could happen if nothing changes between now and contact. In an order book, nothing changing is not the normal state. It is the exception.
The two datasets, compared
Read it by row rather than by column: each line is a property on which the two differ, and the last two are where most of the confusion in this subject starts.
| Property | Depth of market (the book) | Time and sales (the tape) |
|---|---|---|
| What it is | Resting limit orders at each price | Completed transactions, in sequence |
| Cost to create | Nothing — a limit order is free to place | The spread, plus a position to manage |
| Can it be revoked | Yes, instantly and without trace | No — an execution is final |
| What it proves | Someone is advertising size | Someone paid to be filled |
| Memory | None — the present state only | A full record, as far back as you keep it |
| Main blind spot | Hidden size, reserve size, and stops | Who traded, and why |
| Typical misreading | A bid-heavy book read as bullish | A big print read as significant |
What the ladder shows, and what it cannot resolve
A standard ladder is market by price: one quantity per level, the sum of everything resting there. That sum is genuinely ambiguous. Four hundred lots at a price can be one participant with conviction or eighty participants with none, and those two books behave in opposite ways when aggression arrives. The first defends. The second evaporates the moment the orders at the front of the queue decide the price is going through.
Market by order removes that ambiguity by giving each resting order an identifier and a queue position, and it is the most expensive tier in every data stack. A middle ground is worth knowing about: some feeds publish an order count per level without the identifiers. Size divided by count gives an average order size per price — enough to separate a wall of small orders from a single large one, at a fraction of the cost.
Two behaviours deserve their names. Pulling is size withdrawn before price reaches it, often leaving an air pocket where the level used to be. Stacking is size added as price approaches, which reads as a defence. Neither is remarkable in itself — anyone quoting continuously cancels and replaces all day — and neither means anything until the level is actually tested.
Why displayed size is cancelled before it trades
A resting limit order is an option you have written and given away for free. Anyone may exercise it, and they will do so precisely when it suits them rather than you — adverse selection, at the level of a single order. The rational response, for anyone quoting continuously, is to keep the order alive only while the price it implies is still the price you want, and to cancel the instant it is not.
Every input to that decision moves constantly: the instrument you are hedging with, the inventory you are carrying, the volatility of the last few seconds, the three levels of offers somebody has just lifted. So the book is rewritten far more often than it is traded against, and cancellations outnumber executions on any electronic venue. By how much is a question about one instrument, one venue and one distance from the touch, and no ordinary feed lets you compute it for your contract. Take the direction of the effect, which is not in doubt, and refuse the number attached to it, which you cannot check.
The operational consequence is small and complete: displayed size proves nothing until it is tested. A level showing nine hundred lots that trades forty and then vanishes told you nothing about the other eight hundred and sixty. What informs is behaviour at contact — filled and replenished, filled and gone, or withdrawn before price arrives. Price reacting before it reaches a conspicuous order is the cheapest tell there is: nobody ever had to find out whether the order was real.
Icebergs are inferred, never seen
An iceberg order displays a fraction of its real quantity and replenishes the visible slice after each fill. It exists because showing a very large resting order is expensive: it invites others to trade ahead of it, and it pushes the price away before the order is filled. It is a standard, exchange-supported order type, and it is the mechanism behind a great deal of what traders call absorption.
You never see one. What you see is a ratio. A level displays fifty lots, executes twelve hundred over the next few minutes, and still displays fifty. Twenty-four refreshes have happened, and none was published as anything but a level that stubbornly refused to shrink. The display never changed; the executed record did all the talking.
Order-level data sharpens the inference without ever completing it. You can watch the visible slice consumed and a fresh order appear at the same price with a new identifier, immediately and repeatedly — a signature rather than an impression. It stays an inference, because whether a venue reassigns an identifier on replenishment is a venue rule, not a law of nature. The honest position on an ambiguous case is size unconfirmed, I am not counting on it. The second trap is inventing icebergs after the fact, which is the fate of every level that absorbed more than you expected.
Spoofing, and the conclusion you are not entitled to draw
Spoofing is entering orders with the intention of cancelling them before execution, in order to create a false impression of supply or demand. Layering is the same conduct spread across several price levels. In US derivatives markets it was made explicitly unlawful by the Dodd-Frank Act, and it has been pursued both as a civil matter and as a criminal one.
The distinguishing element is intent at the time of entry, not the cancellation itself. Cancelling is ordinary — the previous section is an argument that it is the rational behaviour of anyone quoting continuously. Regulators establish intent with internal communications, complete order histories and forensic reconstruction. You have a ladder.
So the useful conclusion is not accusatory, it is operational. A large order withdrawn before it was touched and a large order that was simply never reached look identical from the outside, and they call for the same response: confirm displayed size by execution before relying on it. Do that and you are covered against spoofs, against ordinary cancellations and against your own pattern-matching, without ever having to decide what anybody intended.
Reading the tape: what is actually legible
The tape is a sequence of prints — price, size, time, and on most venues a flag for which side crossed the spread. Read in sequence rather than compressed into candles, it carries a handful of genuinely legible patterns and a great deal that is not. These are the ones worth learning first, because each is a mechanism rather than a shape.
One caveat covers all of them: the aggressor flag is a convention, not a measurement. Venues differ in how they tag transactions between the quoted prices and how they report the legs of a spread. Reliable enough to build on, not reliable enough to argue over a handful of contracts.
- Sweeps. One aggressive order clearing several levels at once. Offers of 40, 25 and 60 at three consecutive ticks meet a 130-lot market buy: all three go, five lots come out of the fourth level, and the best offer is three ticks higher than a second earlier. On the tape that is a burst of prints walking up the book, and it reads as urgency rather than opportunism.
- Algorithmic slicing. A rapid run of near-identical sizes — 30, 28, 32, 31, 29 — is one parent order being worked by an execution algorithm, not five participants independently reaching the same conclusion. Counting it as breadth is the classic first-year error.
- Refresh. A price that keeps executing far more than it ever displays is replenishing. That is the iceberg signature from the previous section, seen from the tape instead of from the ladder.
- Aggression that does not move price. A 250-lot market buy meets 400 resting at the touch: the buy fills completely, 150 lots remain, the price has not moved a tick. Effort without result is the one tape observation visible in the numbers themselves rather than in your reading of them.
Calibrate large by percentile, not by a number
Every tape reading depends on a threshold: what counts as a large print, and what counts as a fast tape. Numbers get passed around for both, and a number is the wrong shape of answer, because the same size means opposite things on two instruments and at two hours of the same session. A size that would be a shock on a thinly traded contract is a rounding error at the cash open.
The alternative costs one afternoon and is arithmetic rather than judgement. Record the size of every print for the instrument and session you actually trade, over several days. Sort them. Read off the deciles. You now hold a distribution instead of an opinion, and large has a definition: a print in the top decile of your own record, on that contract, at that hour.
The exercise usually kills the belief it was built to calibrate. Suppose your session produces six thousand prints and the ninety-ninth percentile of their size sits at forty-five lots. Then a normal day contains around sixty prints of at least that size — several an hour, in a session where nothing happened. A print that big is not information. It is Tuesday.
Recompute the distribution whenever the market changes character — around the open, around scheduled announcements, across a contract roll. Keep the same discipline for pace: a rate of prints per minute that means panic on one instrument is a quiet afternoon on another. Any threshold offered to you as universal was measured on a market that is not yours, if it was measured at all.
What the ladder and the tape cannot do
This section is not a disclaimer bolted onto the end of a sales page. It is the part that decides whether the rest of this one deserves your time. The limits set out here are structural — properties of what an exchange publishes and of how a continuous auction works — and none is fixed by better software or more hours in the chair.
Say it plainly: the ladder and the tape have the worst ratio of screen time to insight of any order flow tool, and they are the most often sold as intuition. They are worth learning because everything else is computed from them. They are not worth staring at.
- Stops are not in the book. A stop is a trigger held away from the book until it fires. The liquidity that matters most at a level — the orders forced to transact if price touches it — is exactly the part nobody can see in advance.
- Hidden size is invisible by construction. Iceberg reserves and fully hidden orders are never published. The quantity you can count is a lower bound on what may trade against you, and nothing tells you by how much.
- Nothing is attributed. The feed is anonymous. A large buy can be a directional bet, a hedge against a position in another instrument, or an algorithm meeting a benchmark handed to it this morning. Those three have nothing in common, and the print looks the same.
- Depth is one venue's depth. On fragmented markets — equities, and crypto especially — the book on your screen is a share of the trade rather than the trade, and it can look thin while the size sits elsewhere.
- Your own latency is part of the instrument. By the time a human perceives a change, decides and clicks, the book has been rewritten. The delay between observing and acting is the same order of magnitude as the thing observed.
- Almost every observation admits two readings. Heavy selling into a bid is absorption if the level holds and the opening of a break if it does not. Neither tool resolves that at the moment it matters, and no future version will.
In short
- The book lists revocable intentions, the tape lists finished transactions. They are not two views of one dataset, and they are not equally strong evidence.
- Displayed size proves nothing until it is tested. What informs is behaviour at contact: filled and replenished, filled and gone, or withdrawn before price arrives.
- Icebergs are always inferred from the ratio of executed to displayed size. Order-level data sharpens the inference; it never turns it into an observation.
- Spoofing is defined by intent at entry, which no ladder displays. Confirming size by execution protects you without requiring you to accuse anyone of anything.
- Define large as a percentile of your own recorded prints, per instrument and per session. A threshold copied from someone else was measured on a different market.
Frequently asked
- Can you trade from the DOM alone?
- Some do, and it asks a great deal of screen time in exchange for a fragile reading. The ladder shows the present with no context: no levels, no history of what was accepted, no session structure. Most order flow work uses it as a confirmation layer at a level identified elsewhere — a smaller job, and a far more defensible one.
- How do you spot an iceberg order?
- By the ratio between what a price displays and what it executes, never by an indicator. A level that keeps showing a small quantity while absorbing many multiples of it is replenishing. With order-level data you can watch a fresh identifier appear at the same price after each fill, which is a stronger inference — and still an inference.
- What counts as a large print on the tape?
- Whatever the top decile of your own recorded prints says it is, for that instrument and that hour. Sizes are not comparable across contracts or sessions, so a threshold learned on one market is misinformation on another. Recording the distribution takes an afternoon and replaces a guess with a definition.
- Can I detect spoofing myself?
- Not reliably, and treating every cancelled order as a spoof will mislead you more often than it protects you. Cancelling is ordinary behaviour for anyone quoting continuously. What you can observe is whether displayed size actually trades — an observation that stays useful whatever anybody intended.
- Do I need market-by-order data to read the tape?
- No. The tape is built from executions and needs no order identifiers, and neither do footprint charts or delta. Order-level data answers a narrower question: how a price level is composed and how its queue moves. Treat it as a specialised instrument, not a prerequisite.