Nearly every order-flow read reduces to recognising two events: absorption (aggression meets a bigger passive wall) and exhaustion (aggression simply runs out). They look similar on a price chart and completely different in the flow.
Absorption is heavy aggressive volume that fails to move price. Sellers slam market orders into a level; price refuses to break because passive buyers are resting there in size, absorbing everything thrown at them. On a footprint it prints as unusually high volume at a level that holds; on the DOM, the bid reloads as fast as it is consumed; on CVD, the line falls while price does not.
Exhaustion is the opposite failure: a directional move where the aggressive side's participation dries up. Volume per bar shrinks as price extends; delta weakens with each push; the final probe beyond a prior extreme happens on conspicuously thin volume. The move did not hit a wall — it ran out of fuel.
Both patterns mark potential turning points, but they carry different information. Absorption reveals the presence of a large passive counterparty at a specific price — a level fact. Exhaustion reveals the absence of continued interest — a momentum fact. Order-flow tools exist precisely because these two conditions are indistinguishable on a candlestick chart.
Look for a price level with far higher traded volume than surrounding levels, where price fails to move through despite that volume — especially when the same level reloads across several bars.
Successive price extremes accompanied by shrinking per-bar delta and volume — the aggressor side participating less on each push.
They are conditions, not signals. They describe what the flow did at a moment; traders combine them with location (levels, volume profile) and broader context.