· HEATMAPS
What absorption looks like on a heatmap
Absorption is aggressive volume trading into a resting level that holds. An ES example in Liquivue shows the band, trade bubbles and CVD it leaves.
SHORT ANSWER
Absorption on a heatmap shows as a resting liquidity band that stays lit while trade bubbles stack at its price. Price does not trade through the band. The volume that trades at that level ends up larger than the size the band showed at any one time. Liquivue marks absorption on its futures heatmap beside trade bubbles, CVD and volume profiles.
Absorption on a heatmap is the picture left when aggressive orders trade into a resting level and the level holds. A liquidity heatmap draws resting limit orders as colour bands across time. During absorption, one band stays lit while trade bubbles stack at its price. This note walks through one invented ES example in Liquivue and lists what the heatmap can and cannot tell you. The note on what a sweep looks like on a heatmap covers the opposite case, where the band ends.
What absorption means
Absorption means resting orders take the other side of many aggressive orders and the price does not move. A resting order is a limit order that waits in the book. An aggressive order is a market order, or a limit order priced to trade at once. If sellers send 640 contracts into a bid that never showed more than 260, traders kept adding size at that bid, or part of the size did not show in the book.
The book before the selling
All numbers below are invented. The market is the E-mini S&P 500 future, ES, where one tick is 0.25 points. At 10:42:00 New York time the best bid is 5,030.00 and the best offer is 5,030.25.
| Price | Bids resting |
|---|---|
| 5,030.00 | 220 |
| 5,029.75 | 85 |
| 5,029.50 | 70 |
| 5,029.25 | 60 |
On the heatmap the band at 5,030.00 is the brightest bid band, because it holds the most contracts.
Ninety seconds of selling
Between 10:42:00 and 10:43:30, sell orders hit the bid at 5,030.00 in many small pieces. The table counts them in 30 second blocks.
| Time block | Sold at 5,030.00 | Bid size at end of block |
|---|---|---|
| 10:42:00 to 10:42:30 | 210 | 180 |
| 10:42:30 to 10:43:00 | 240 | 150 |
| 10:43:00 to 10:43:30 | 190 | 230 |
| Total | 640 |
Sellers traded 640 contracts at 5,030.00. The bid showed between 150 and 260 contracts during the 90 seconds, and it never emptied. No trade printed at 5,029.75. Buyers at the offer traded 50 contracts at 5,030.25 in the same window.
One number describes this. Divide the volume traded at the level by the largest size the band showed. Here that is 640 divided by 260, about 2.5. A ratio near 1 means the level traded about the size it displayed. A ratio well above 1 means traders added more size than the book displayed at any one time.
What the heatmap draws
The heatmap shows three things between 10:42:00 and 10:43:30.
- The band at 5,030.00 stays lit for all 90 seconds. Its colour dims as the size drops toward 150 and brightens as it climbs back to 230.
- Sell trade bubbles stack in one horizontal row at 5,030.00. Together they add up to 640 contracts.
- The bands at 5,029.75 and below keep their size, because no trades printed at those prices.
Cumulative delta, or CVD, adds the volume bought at the offer and subtracts the volume sold at the bid. In this window CVD falls by 590 contracts, which is 640 sold minus 50 bought. The price line stays flat at 5,030.00 the whole time. A falling CVD line beside a flat price line is the pattern to look for.
Absorption compared with a sweep
Suppose the same 640 contracts had arrived in one second instead of 90. The 220 at 5,030.00 would trade first, then the 85 at 5,029.75, the 70 at 5,029.50 and the 60 at 5,029.25, and sellers would trade the bids below that. Those bands would end in one column, and bubbles would print on a diagonal down through the prices. That is a sweep. In absorption the bubbles stay in one row and the band stays on the chart.
The same example in Liquivue
In Liquivue, the heatmap layer draws the bid band at 5,030.00, and trade bubbles print on it as each sell order fills. Liquivue lists absorption markers, so the platform can flag the 90 seconds on the chart. The CVD panel steps down by 590 contracts while the price line stays at 5,030.00. The volume profile adds 640 contracts of selling to the 5,030.00 row, and the delta profile shows that row at minus 640. If that row now holds more volume than any other row in the session, the VPOC moves to 5,030.00.
Liquivue runs in a desktop browser with WebGPU and connects to futures through Rithmic or the NinjaTrader bridge. It costs €20 a month or €192 a year after a 7-day trial, and your data provider bills market data separately. Bookmap's entry tier for live futures analysis costs US$49 a month before data. A futures trader looking for a Bookmap alternative can compare both on the rankings page.
What the heatmap cannot tell you
The heatmap cannot tell you who added the size at 5,030.00. Market by price data gives one total for each price. It does not show whether one trader refilled 400 contracts or forty traders added 10 each.
It cannot show hidden size. An iceberg order shows only part of its size in the book at a time. Liquivue lists iceberg detection for that case, but the feature is experimental and needs live CME order-level data. The note on what market by order data adds to a heatmap explains why.
It also cannot tell you what comes next. The level held for 90 seconds. That is a record of what traded, not a forecast.
Absorption on other platforms
Bookmap draws a historical order book heatmap with volume bubbles, and its add-ons cover icebergs and other order flow events. ATAS has cluster charts and a heatmap in beta, and live futures need its Pro plan at €69.95 a month. Each platform decides for itself when to label absorption, so compare the traded volume with the displayed size before you rely on a marker.
A check you can run
Find three moments in your last session where price stayed at one level for 60 seconds or more. For each one, add up the volume that traded at that price and write down the largest size the band showed. Divide the first number by the second. Note which levels had a ratio above 2, and what price did in the next five minutes.
Questions
What is absorption in order flow?
Absorption is aggressive buying or selling that trades into a resting limit order level without moving price through it. The volume that trades at that price is larger than the size the book showed there at any one moment.
How do you tell absorption from a sweep on a heatmap?
Look at the band after the trades. In absorption the band stays visible and price stays on one side of it. In a sweep the band ends and price trades through to the next levels.
Does absorption mean price will reverse?
No. Absorption records that a level held while volume traded into it. The next sell or buy orders can still trade through the level, and the heatmap does not show what the resting traders will do next.
Does Liquivue mark absorption on the heatmap?
Yes. Liquivue lists absorption and sweep markers on its futures heatmap, with trade bubbles, CVD, VWAP and volume and delta profiles. The markers depend on the data your provider sends.
Can a heatmap show an iceberg order behind absorption?
Not with market by price data alone, because that data gives one total for each price. Liquivue lists iceberg detection, but the feature is experimental and needs live CME order-level data.
Educational content about market data and charting software. It is not trading or investment advice. Trading involves risk.