Coming soon: more data providers to connect — dxFeed, IQFeed, Rithmic, Polygon & more. One app, your choice of feed.
// order flow guide

How to Read a Footprint Chart

A footprint chart shows something a normal candle can't: at every single price inside a bar, how much actually traded — and whether the aggressor was a buyer lifting the offer or a seller hitting the bid. This is a plain-English guide to reading that picture: bid/ask volume, delta, absorption and exhaustion. It's about understanding order flow — not a forecast.

Footprint vs. a normal candle

A standard candlestick tells you four numbers per bar: open, high, low, close. Maybe a volume bar underneath gives you one more — total volume for the whole bar. That's it. You can see that price moved, but nothing about how it got there or who did the trading.

A footprint chart opens the bar up. Instead of one solid candle body, each bar is a stack of price rows, and every row shows how much volume traded at that exact price — split by aggressor. In LOF the picture is rendered as bubbles: green for aggressive buys (market orders lifting the offer) and red for aggressive sells (market orders hitting the bid), each sized by the volume traded at that level. You go from "price went up" to "price went up while buyers paid the offer hard at these three levels and sellers barely defended" — a far richer read of the same move.

Two things make this possible, and they're exactly what retail CFD and broker feeds usually hide: real exchange volume (not a tick-count proxy) and the aggressor side of each trade. With those, the footprint becomes readable. See it on live data on the LOF homepage.

// the building blocks

Footprint anatomy

Every footprint bar is built from the same handful of parts. Once you can name them, the rest of the chart reads itself.

📕

The bid column

Volume that traded at the bid — i.e. sellers crossing the spread to hit the bid. This is aggressive selling. In a classic bid×ask layout it sits on the left; in LOF it's the red bubbles.

📗

The ask column

Volume that traded at the offer — buyers crossing the spread to lift the ask. This is aggressive buying. The right column classically, or the green bubbles in LOF.

📏

Volume at price

Each price row holds a number (or bubble size): the total contracts/coins that changed hands at that exact level inside the bar. Where the rows are biggest is where the fight happened.

The delta number

For the whole bar: ask-side volume minus bid-side volume. Positive means more aggressive buying, negative more aggressive selling. It's a summary of the columns above.

Reading a single bar

Start at the row with the most volume — that's where most business got done. Then look up and down: are the big rows green (buyers paying up) or red (sellers pressing)? Is the heavy trading near the high of the bar, the low, or the middle? A bar that closes near its high on green rows reads very differently from one that closes near its high but on red rows being absorbed. That difference is the whole point of a footprint — and it's invisible on a plain candle.

// momentum, measured

Delta & cumulative delta

Delta is simply aggressive buys minus aggressive sells. Per price row it tells you who was pushing at that level; per bar it sums to a single number. A +400 bar means market buyers were 400 contracts more aggressive than sellers over that bar; -400 is the opposite. It's a description of who crossed the spread, nothing more.

Cumulative delta chains those bar numbers together into a running total across the session. Plotted as its own line, it shows the net aggression trend: rising cumulative delta means aggressive buyers have been in control over time, falling means sellers. Traders watch it mostly for disagreements with price — for example price grinding to new highs while cumulative delta flattens or rolls over, which says the new highs aren't being driven by fresh aggressive buying. That's an observation about order flow, not a prediction of what comes next; price can absolutely keep going. Treat it as context you're reading, not a trigger.

// the deep section

Absorption vs. exhaustion

These two are the most-searched footprint concepts, and the most confused — partly because they can look similar on a plain chart and only separate once you can see volume by aggressor. Both describe what happens when aggressive orders meet resting liquidity at a level. The difference is who runs out of steam.

Absorption — heavy aggression, no movement

What it is: large aggressive volume hits a level, but price barely moves through it. Aggressive buyers keep lifting the offer (big green volume) yet price stalls — a resting limit seller is absorbing every market buy, refilling the offer as fast as it's taken. Or the mirror: heavy aggressive selling into a level that won't break, because a resting buyer is soaking it up.

What it looks like on the footprint: one or a few price rows with very large volume, often a large delta in one direction, but the bar's range stays tight and price doesn't progress. The aggressors are spending a lot of ammunition for very little ground.

How to read it: it tells you a passive participant is willing and able to take the other side in size at that price — supply or demand is sitting there. That's information about where liquidity lives. It does not tell you price will reverse; absorption can fail and price can push straight through once the resting order is filled. You're reading a condition, not a signal.

Exhaustion — aggression that thins out

What it is: the opposite engine problem. After a strong push, the aggressive volume driving the move dries up. Buyers were lifting the offer bar after bar, then the green volume shrinks markedly at the highs — there simply aren't enough fresh aggressive buyers left to keep paying up. The move runs out of fuel from its own side.

What it looks like on the footprint: a sequence where each push prints progressively smaller volume and shrinking delta in the trend's direction, often with the biggest rows no longer at the extreme. Momentum visibly tapering, rather than a wall meeting it.

The key difference: absorption is a defender stopping the move (passive liquidity soaks up heavy aggression with no progress); exhaustion is the attacker giving up (the aggressive side itself fades). Absorption = lots of volume, no movement. Exhaustion = shrinking volume, stalling movement. Same stall, opposite cause — and you can only tell them apart because the footprint shows you the volume and the aggressor, not just the price. Neither is a buy or sell instruction; both are ways of understanding what the order flow is doing at a level.

// structure within the bar

Point of Control, imbalance & the aggressor

A few more reads round out the picture once you're comfortable with the columns.

🎯

Point of Control (POC)

The price level with the most traded volume — for a single bar, or across a session/profile. The POC marks where the market agreed on value and did the most business. Levels where prior POCs sit are simply prices a lot of trade has happened before.

⚖️

Stacked imbalance

When the green (ask) volume at a price hugely outweighs the red (bid) volume one level below — or vice versa — that's an imbalance. Several in a row, "stacked," show a run of one-sided aggression through those prices.

🟢

The aggressor

The whole footprint hinges on one question per trade: who crossed the spread? Lifting the offer = aggressive buyer (green). Hitting the bid = aggressive seller (red). That single classification is what turns raw volume into order flow.

Read together, POC, imbalances and the aggressor split let you describe a bar in flow terms: "buyers lifted hard through here, stacked three imbalances, and the POC settled at the top." That's a clear account of what happened. It is still a description of the past and present tape — not a forecast of the next bar.

What a footprint is — and isn't

Everything above is a way to read and visualize order flow: who traded, where, and on which side. It is a tool for understanding what the tape is doing — not a trading signal, not a bot, and not a forecast of price. None of it is financial advice.

Markets are uncertain. Absorption fails, exhaustion resumes, and any pattern can be the last one before the opposite happens. Read the flow honestly and make your own decisions; trading carries substantial risk.

// try it

See it live, free

The fastest way to learn the footprint is to watch a real one move. LOF shows every concept on this page — bid/ask volume, delta, absorption, exhaustion, POC and imbalance — on live crypto (Bitcoin, Ethereum, Solana + 8 more, via Binance & Coinbase) with no account and no API key. It's free: just download and open. Add your own Databento data key to also read 29 CME futures.

Want the futures feeds and history? See pricing — a one-time license, no subscription.