In the previous lesson, we learned that the aggressor moves the price. But how exactly does the exchange match the aggressor with a passive order? Let’s look at this process from the inside.
Matching engine: step by step
A trader submits a market order to buy 10 ES contracts. At that moment, the order book looks like this:
Order Book BEFORE:
5525.50 | 10 contracts
5525.25 | 7 contracts
5525.00 | 5 contracts ← best ask
A market order does not wait. It takes liquidity, starting from the best available price:
Step 1. 5 contracts are filled at 5525.00. The best ask is empty. Another 5 contracts still need to be bought.
Step 2. The next best ask is 5525.25. There are 7 contracts at that level. The order takes 5 of them and is fully filled.
Order Book AFTER:
5525.25 | 2 contracts ← new best ask (there were 7, 5 were taken)
5525.50 | 10 contracts
The price moved from 5525.00 to 5525.25. One tick higher. One aggressive buyer consumed the liquidity at the best ask and moved the price.
Here is what the matching engine recorded:
| Price | Sold (at bid) | Bought (at ask) |
|---|---|---|
| 5525.25 | 0 | 5 |
| 5525.00 | 0 | 5 |
This is the foundation of a footprint candle. Each row is a price level. Each number represents contracts executed aggressively. A footprint records not what was resting in the order book, but what actually happened: every interaction between an aggressor and a passive order.
Play through this scenario in the simulator below. Watch how the order book changes, what appears in the tape, and what is displayed in the footprint. Click the Next button, and the top row will show which event occurred, for example:
Market BUY 15 contracts Filled: 5/15 Best ask 5525.00 fully consumed (5 contracts) — spread widens
On the left, you will see the exchange order book, with limit sell orders above and limit buy orders below. On the right, you will see a simulation of the candle being filled and moving. Each new trade changes its structure and fills the cluster levels.
Market BUY 15 — eats through the first three ask levels
Next: Market BUY 15
Order Book
Time & Sales
Footprint
Absorption: When the Seller Does Not Move
Let’s return to the fruit market. The buyer took all 5 kg from the seller at 100. The stall is empty. The buyer is about to move to the next stall, but the seller takes another 5 kg from under the counter and offers them at the same price — 100. The buyer takes them. The seller brings out more. The buyer takes them. The seller brings out more again. The executed volume is enormous, but the price remains unchanged.
On the exchange, this is called absorption. An aggressive buyer attacks the level, but a passive seller absorbs the entire flow. In the footprint, this appears as huge volume at one level while the price remains unchanged.
ES, with the best bid currently at 7478.50. Over 5 seconds, a series of market sells executes for a total volume of 119 contracts. Normally, this kind of flow would move the price by 2–3 ticks. But the price does not move by even one tick: a passive limit seller is positioned at 7478.50 and absorbs everything. Sellers take the available volume — the participant places more. It is taken again — and the participant places more again.

The footprint shows a clear picture: 119 contracts accumulate on the bid side at 7478.50 through aggressive buying. Huge turnover at a single price level with no price movement. This indicates a large passive buyer at that level.
High volume without price movement = liquidity is absorbing market orders. On a candlestick chart, absorption may look like a small candle with a wick — nothing remarkable. Inside that candle, however, a real battle involving hundreds of contracts may be taking place
Market Maker: The Middleman
Another participant at the fruit market is the middleman. They buy apples from one seller at 100 and immediately offer them at the neighboring stall for 101. Their earnings are 1 per kilogram. They are not interested in whether the price of apples rises to 150. Their business is that same 1 on every transaction.
On the exchange, this is the market maker (MM). A market maker simultaneously places limit buy orders at the bid and limit sell orders at the ask. The spread is their source of earnings. On ES, one tick equals $12.50 per contract. The market maker buys at the bid and sells at the ask, capturing that tick. Tens of thousands of times per day.
The best conditions for a market maker occur when the price remains stable. The worst conditions occur when the market moves rapidly. Before major news releases such as NFP, CPI, or FOMC decisions, market makers remove orders from the order book. The order book becomes thin, and the first seconds after the news release produce extreme candles: market orders sweep through 5–10 empty levels almost instantly.
Most orders in the order book belong to market makers. They create the background and the noise. Actual price movements are driven by aggressors — large directional market orders.
- The matching engine connects the aggressor with a passive order and records every trade
- A footprint candle is a direct record of what the matching engine captured
- Absorption: high volume without price movement = someone is absorbing the aggression
- A market maker earns from the spread, not market direction — market makers create background noise
A candlestick chart shows what happened to the price. But it does not show who affected it or how. To see this, you need to understand the two types of participants behind every trade.
Passive and Aggressive Participants

Passive participants are limit orders resting in the order book. Bid walls, ask walls, and levels. They create the market structure. Without them, a market order would have no counterparty.
Aggressive participants are market orders, including triggered stop orders. They consume passive orders and move the price. Without aggression, the price remains unchanged.
Every trade is an interaction between an aggressor and a passive participant. For every contract bought, there is a contract sold. The question is not “which side has more participants” — the number of buyers and sellers is always equal. The question is who came to whom.
When aggressive buyers hit the ask, trades are recorded on the ask side. When aggressive sellers hit the bid, trades are recorded on the bid side. This is exactly what the footprint shows: how many contracts were executed at the ask and at the bid at each level. Delta — ask minus bid — shows which side was more aggressive.
Footprint, Delta, CVD, and Volume Profile all show the same interaction from different angles: the balance between aggression and passive liquidity.