Skip to content

What a footprint chart cannot show

By Author of ORDER FLOW — Market Mechanics

A footprint records what traded. Liquidity is what was available to trade. Those are different sets, and almost every misreading of a footprint lives in the gap between them.

This is usually framed as a tooling problem with a purchasable solution. Yet some of what a footprint misses cannot be recovered by any feed, at any price, because the exchange never publishes it in the first place. Knowing exactly where that boundary sits is more useful than being told a product moves it.

Two populations, one record

At any price level there are participants waiting with resting limit orders and participants executing against them at whatever price is available. The waiting side supplies liquidity; the executing side consumes it. Order flow is the record of that consumption.

Waits · limit order Executes · market order Wants to buy Wants to sell Rests an order at the bid Adds liquidity. Does not move price. Pays the ask Consumes liquidity. Can move it. Rests an order at the ask Adds liquidity. Does not move price. Hits the bid Consumes liquidity. Can move it. Buying or selling is the intent; waiting or executing decides who can move price.
Schematic of the four combinations of intent and execution decision at a single price level.

A footprint is built entirely from the second population. Every number in every cell is an execution: a contract that crossed the spread and found a counterparty. The first population appears in the record only to the extent that it was traded against.

The liquidity that never traded

Resting orders that are never hit leave no trace. Neither do resting orders that are pulled before anyone reaches them. In both cases the liquidity existed, influenced how other participants behaved, and then vanished from the historical record entirely.

What was resting What the footprint records 21,302.25 30 21,302.00 210 21,301.75 95 21,301.50 — executed never touched, or pulled The record is the intersection of aggression and available liquidity. Everything outside that intersection leaves no trace.
Schematic of resting liquidity at four NQ levels and the footprint record that results. Values are illustrative.

This produces a specific and common failure. Price advances through a level on light volume and the footprint shows a small number there. The natural reading is that there was no resistance. But a level where 190 contracts were resting and were pulled at the last moment records exactly the same small number as a level where nothing was ever there. One of those is a seller who changed their mind; the other is an empty book. The record cannot tell you which.

The depth of market shows resting size while it is resting, which is why it remains useful alongside execution data. But it is a live view with no memory. Once the moment passes, neither the DOM nor the footprint can reconstruct what was there.

Pulled quotes and spoofing

A wall that disappears as price arrives is the pattern that usually gets called spoofing. Under CME Rule 575, as the exchange sets it out in its current advisory on disruptive practices, in force from 13 August 2026, what is prohibited is entering an order with the intent, at the moment of entry, to cancel it before it executes. The same advisory says that a bona fide order later cancelled because circumstances appear to have changed does not breach the rule, and that resting orders at several price levels to hold queue position are allowed when nothing else points to a misleading purpose.

The rule turns on intent at entry, and the record contains no intent. A spoofed wall, a wall pulled to cut risk and a wall cancelled after the picture changed can leave the same sequence in the depth of market and the same empty cell in the footprint.

Four walls in the book, as the screen records them Entered to be cancelled spoofing executed at the level: 0 price reached the level Pulled to cut risk legitimate executed at the level: 0 price reached the level Cancelled after the picture changed legitimate executed at the level: 0 price reached the level Price never arrived untested executed at the level: 0 price stopped short wall level · 300 The first three rows leave the same DOM sequence and the same footprint. Only the cause differs.
Schematic of four resting walls and the record each one leaves: price path, displayed size and contracts executed at the level. Values are illustrative.

In the first three rows a 300-contract wall vanishes one tick before price reaches it, and nothing trades at the level. The three rows cannot be told apart, although only the first is spoofing. The book's reading stops short of the label: a wall that disappears when price arrives, especially if it keeps doing so through the session, is a spoofing candidate. A wall that price never reached, as in the fourth row, has not been tested, and nothing can be concluded about it.

Regulators do bring cases, such as the CFTC order over spoofing in Treasury futures announced in May 2026, but they work from records of who entered which orders, which no public feed carries. What a screen supports is the rule the book sets out in chapter 7: trust what was executed. If a wall vanishes and price trades through the level, the level did not hold, whatever the reason the wall left.

Iceberg orders and the size you cannot see

An iceberg is a large resting order that displays only a fraction of itself and replenishes the displayed portion after each partial execution. CME Globex accepts a display quantity on the order itself: the matching engine shows only that part and tops it up as it fills, and no public feed carries what is left. A platform or broker can also slice a large order itself and send each clip as a new order. With that synthetic iceberg, the hidden size sits on the trader's side and never reaches the exchange at all.

Displayed in the book 40 40 40 40 40 40 40 40 Cumulative executed 40 80 120 160 200 240 280 320 Footprint entry 320 Hidden size: unknowable The refills are visible only after they trade. What is left behind them never appears in any feed.
Schematic of repeated iceberg refills at one level, and the single footprint value they produce. Values are illustrative.

The presence of an iceberg cannot be known before it executes. Its hidden size cannot be measured at any point. What can be inferred, after the fact, is that displayed size at a level kept reappearing while volume traded through it, which is evidence that something larger was sitting there.

Even that inference has a ceiling. Market makers use icebergs routinely for inventory management, which carries no directional information at all. Detecting one tells you size was present; it does not tell you why.

The same limit applies to a widely quoted reading: that heavy aggression met by a stalled price indicates a large passive participant. That inference is sound, but it is an inference. The footprint shows the aggression and the absence of movement. The participant itself is never in the data.

Intent is missing from the record too

A footprint cell records volume, side and level. It does not record why. The same 1,240 contracts of aggressive buying could be a directional position being opened, a short being covered, a hedge against exposure in another instrument, or one leg of a spread whose other leg is in ES.

The last of those is the one most likely to mislead on NQ specifically, because index futures carry a steady background of hedging and arbitrage flow that is directional in the record and meaningless as a signal. It is one of several reasons why the same readings do not transfer cleanly between NQ and ES.

What the footprint still offers

The footprint stays useful, for something narrower than is usually claimed.

What the record does contain is exact and verifiable: how much aggression occurred, on which side, at which price, and whether it produced movement. That relationship between effort and result is not available anywhere else, and it is the basis of reading bid/ask execution data properly.

What it does not contain is the resting liquidity those executions happened against. Any statement about hidden size, about who was on the other side, or about what a participant intends is an inference layered on top of the record.

The practical discipline that follows is small and unglamorous: separate the two when you describe what you see. “Heavy buying was absorbed at this level” is a statement about the record. “A large seller is defending this level” is a hypothesis about the world. The first is verifiable. The second may be right, and is the more useful of the two when it is right, but it carries an uncertainty that the first does not.