What absorption means in order flow
An hourly rule for absorbed buying selects the quietest hours in the sample, not the busiest. Requiring genuine volume removes the effect entirely, across 31,290 BTC hours.
The direct answer
Absorption is heavy one-sided aggression that produces little price movement. Buyers repeatedly lift offers but price cannot rise, or sellers repeatedly hit bids but price cannot fall. Passive liquidity is taking the other side without giving up much ground.
The important measurement is not flow alone. It is price response relative to the flow. Large aggressive volume with a large move is ordinary impact. Large aggressive volume with almost no move is the mismatch traders call absorption.
We tried to measure it from hourly public trade data, and the honest answer is that it cannot be done that way. The obvious test looks like it works, and the reason it does not is worth more than the result would have been.
The short version: an hourly rule that flags heavy imbalance with little price movement selects the quietest hours in the sample rather than the busiest. Absorption requires heavy aggression by definition. The hours such a rule flags trade at roughly 40% of their own recent average volume, and once any real volume floor is imposed the apparent effect disappears.
Absorption is a real market mechanism with a coherent description, and what follows is a failure of coarse measurement, not evidence that the phenomenon does not exist.
Picture what is happening
Every market order trades against a resting limit order. An aggressive buyer crosses the spread and trades with an offer. An aggressive seller crosses the spread and trades with a bid.
Normally, enough one-sided aggression moves through the available liquidity and pushes price in the same direction. Repeated market buys consume offers and trade higher. Repeated market sells consume bids and trade lower.
During absorption, the passive side keeps meeting that flow. The resting quantity may already be visible, may replenish as it trades, or may be hidden from the displayed book. Aggressive volume accumulates, but price makes much less progress than the volume would usually produce.
Two forms mirror each other mechanically:
- Absorbed buying: buyers lift offers, but price fails to advance because passive sellers keep supplying liquidity.
- Absorbed selling: sellers hit bids, but price fails to decline because passive buyers keep supplying liquidity.
They are descriptions of the tape. Neither identifies whether the passive side is informed or whether the level ultimately holds.
What absorption looks like on a chart
The clearest footprint combines three views:
- The tape or CVD shows one-sided aggression. Buy or sell volume is clearly dominant over the event window.
- Price makes little progress. Repeated trades occur, but the market stalls near the same level instead of moving with the aggression.
- Liquidity persists or replenishes. A depth heatmap or ladder shows size remaining near the level as trades execute into it.
Absorption is usually local. A seller can absorb buyers at one resistance area without controlling the entire market. Mark the price level and the event window rather than labeling a whole session from one patch of flow.
A flat candle alone is not absorption. If volume is quiet and neither side is pressing, there is nothing unusual to absorb. The footprint requires meaningful aggression and unusually weak price response.
Why the footprint does not reveal intent
The same pattern can come from different participants:
- A directional seller may be building or exiting a position passively.
- A market maker may supply offers and hedge elsewhere without a bearish view.
- An arbitrageur may offset the position on another venue or instrument.
- The visible level may be many unrelated orders rather than one large owner.
- Cross-venue selling may move price while the measured venue records absorbed buying.
Even a replenishing level does not identify one iceberg order. New orders can arrive from different participants at the same price. Public data reveals the response, not the owner's identity.
A practical way to read absorption
The measured result below does not validate this discretionary framework. It found a significant BTC association using a coarse hourly proxy, did not clearly replicate in ETH or SOL, and did not observe per-level resting orders. The steps organize a live event; they are not a tested entry strategy.
1. Identify the aggressive side. State whether market buyers or market sellers are pressing. "High volume" is not enough.
2. Mark the level where price stops responding. Use the repeated high, low or narrow price area where aggression produced little progress. Absorption is a relationship between flow and a location.
3. Compare impact with a normal period. Ask how far price moved per unit of one-sided flow relative to similar recent activity. A large raw delta can be ordinary during a high-volume session and exceptional during a quiet one.
4. Watch the resting liquidity. Separate size that persists, size that replenishes after trading, size that gets consumed and size that disappears before the test. Each produces a different live outcome.
5. Wait for the price response. If absorbed buyers finally gain acceptance above the selling area, the passive supply no longer controls that level. If price rejects and moves lower, the failed buying remains relevant. The mirror logic applies to absorbed selling at support.
6. Check the wider market. Compare other venues, spot and perpetual flow, open interest and liquidations. A local absorber can be overwhelmed by broader flow, and a single-venue footprint can be a hedge rather than a directional position.
How we defined the hourly proxy
The direct claim is that aggressive buyers meet enough passive supply that price barely responds. Public trade data measures the aggression. It does not identify the passive participant or reveal intent.
We therefore define a candidate absorbed-buying hour with three conditions:
- Absolute CVD imbalance is in the highest quartile for that market.
- Absolute open-to-close price movement is in the lowest quartile.
- CVD is positive, so the one-sided aggression came from classified market buyers.
CVD imbalance is aggressive buy volume minus aggressive sell volume, divided by their sum. The use of absolute imbalance in the first condition prevents the threshold from changing merely because the flow sign changes. The third condition then selects the buy side.
This is an indirect proxy. It finds a mismatch between flow and price response; it does not observe a specific resting order absorbing the trades.
Method
We used hourly Binance BTCUSDT, ETHUSDT and SOLUSDT perpetual trades and candles from 2023-01-01 through 2026-08-01. Quartile thresholds were calculated separately within each market. The outcome is the return from the selected hour's close to the price exactly 24 clock hours later.
Rows without the exact future endpoint were excluded. Each candidate group was compared with every other usable hour in that market. Because the 24-hour outcomes overlap, uncertainty is estimated with Newey-West standard errors using 24 hourly lags.
Results
| market | usable hours | absorbed-buying hours | all-hour baseline | after absorbed buying | difference vs other hours | Newey-West SE | t |
|---|---|---|---|---|---|---|---|
| BTC | 31,290 | 530 | +0.134% | -0.138% | -0.277 pp | 0.096 pp | -2.89 |
| ETH | 31,191 | 466 | +0.094% | -0.056% | -0.152 pp | 0.129 pp | -1.18 |
| SOL | 31,191 | 507 | +0.268% | +0.047% | -0.224 pp | 0.192 pp | -1.17 |
Read on its own, that BTC row looks like a finding. Only BTC clears a conventional significance threshold, ETH and SOL lean the same way without reaching it, and the dispersion is wide: the 24-hour return standard deviation inside the selected group is 1.744% for BTC, 2.529% for ETH and 3.651% for SOL.
It is not a finding, and the next section is why.
What the selection rule actually picks
Absorption means heavy aggression that fails to move price. The definition above never asks how heavy. Condition 1 uses a ratio, aggressive buy volume minus sell volume over their sum, and a ratio has no volume floor in it. A quiet hour with few trades can post an extreme imbalance simply because the sample is small, and a quiet hour also tends to have a small price move, which satisfies condition 2.
So the two conditions can select the same thing from two directions: low participation.
They do. Measuring each BTC hour's volume against its own trailing 30-day average, the hours we flagged run far below normal:
| group | volume vs own 30-day average | median |
|---|---|---|
| flagged as absorbed buying | 0.404 | 0.32 |
| every other hour | 0.995 | 0.659 |
Of 508 flagged hours with a full trailing baseline, 328 fall in the quietest quartile of relative volume and 16 in the busiest. These are not hours of heavy one-sided aggression. They are quiet hours.
The forward return follows the volume, not the flow:
| specification | events | difference vs control |
|---|---|---|
| no volume floor | 508 | -0.265 pp |
| relative volume in the bottom quartile | 328 | -0.280 pp |
| relative volume above the median | 73 | +0.061 pp |
| relative volume in the top quartile | 16 | -0.037 pp |
The entire effect sits in the quietest hours. Require volume above the trailing median, which is the least any definition of heavy aggression can ask, and the estimate crosses zero and changes sign. Only 16 of 508 flagged hours were busier than usual, which is too few to test at all.
What that means
The test measures quiet hours, not absorbed buying. Quiet hours in this sample were followed by slightly weaker 24-hour returns, and a ratio with no volume floor finds them by accident.
That is a null result, and it is a specific kind: the proxy failed, not the hypothesis. Nothing here shows absorption does not exist or does not matter. It shows that an hourly bucket with a ratio-based imbalance measure cannot identify it, because the arithmetic of the ratio pulls the selection toward exactly the conditions absorption is not.
Identifying it properly needs three things this test lacks. Aggressive volume binned by price level, so you can see flow meeting resting size at a level rather than summed across an hour. An expected-impact model, so "failed to move price" is measured against how far that flow should have moved price given depth and volatility, rather than against a flat absolute threshold. And event boundaries drawn by the flow episode rather than the clock, since a real absorption event does not begin and end on the hour.
Absorption is easier to examine when aggressive flow and resting size share a chart. QuantumFlow places CVD beside the depth heatmap so the price response can be compared with the liquidity being tested.
Common mistakes
- Calling every high-volume candle absorption. Large flow with a large move is ordinary impact. Absorption requires unusually weak price response.
- Using CVD without a price level. The event is defined by where aggression failed, not by a detached indicator line.
- Assuming the passive side is informed. Market making and cross-venue hedging can create the same footprint.
- Calling a visible wall an iceberg. Replenishment can come from several participants, and hidden size cannot be identified from one snapshot.
- Entering before the test resolves. Aggression can eventually consume the resting liquidity that initially absorbed it.
- Assuming absorbed buying and selling are perfect mirrors. This study tests absorbed buying, and the opposite side needs its own measurement.
- Defining aggression as a ratio. A share of volume with no floor under it runs to extremes on thin trade counts. Whatever threshold you use, ask what it does in the quietest hour of the week.
What a stronger test would add
- A volume floor, so the events are actually heavy rather than merely lopsided.
- Event boundaries based on the flow episode rather than the clock.
- Per-level depth showing that resting liquidity remained while trades hit it.
- An expected-impact benchmark, so weak response is judged against the move that flow of that size should have produced.
- Controls for volatility, prior trend, session and market regime.
- Separate tests for absorbed selling rather than assuming a mirror image.
- A path outcome that records excursion before the 24-hour endpoint.
The first item is the one that mattered here. The rest remain open.
What this study does not establish
- The null applies to this proxy, not to absorption. A better instrument could still find an effect.
- The volume diagnostic was run on BTC, the only market where the naive cut reached significance in the first place.
- Quiet hours being followed by weaker 24-hour returns is itself uncontrolled here, and is not offered as a finding.
- Hourly buckets are coarse for behavior that can develop in seconds.
- Point-to-point returns do not show the path or the maximum adverse excursion.
- Nothing here identifies who supplied the passive side.
---
*Written by Dom at QuantumFlow. Published 5 August 2026. Figures use Binance perpetual trade flow and hourly candles for BTCUSDT, ETHUSDT and SOLUSDT from 2023-01-01 to 2026-08-01.*