REFERENCE · ORDER FLOW

What the order book
is actually telling you.

Most order-flow material assumes you already know the vocabulary. This doesn't. It starts from what a resting order is and works up to why the same event can read as absorption on a 5-minute chart and three separate exhaustions on a 15-second one — and why both readings are correct.

LONG READ · NO PRIOR ORDER-FLOW EXPERIENCE ASSUMED
01 FOUNDATION

The order book, from zero.

A futures market is a queue. At any instant there is a list of people who have said "I will buy at this price" and a list who have said "I will sell at this price." Those standing offers are resting orders, and the whole list is the order book.

The highest price anyone is currently willing to buy at is the bid. The lowest price anyone is willing to sell at is the ask (or offer). The gap between them is the spread. On liquid futures that gap is usually one tick, because plenty of participants are competing to be at the front of each queue.

Below the bid sits a ladder of other buyers waiting at worse prices. Above the ask, a ladder of sellers. That ladder — the sizes waiting at each price away from the current market — is what people mean by market depth or Level 2.

Nothing in that book has happened yet. Every number in it is an intention. A trade only occurs when somebody stops waiting and crosses the spread.

Why this matters for everything below. Price is a record of what already happened. The book is a record of what people are currently willing to do. They are completely different kinds of information, and the book is the only one that tells you anything about the near future — which is also why it's the one people manipulate.

02 THE CENTRAL DISTINCTION

Passive and active.

Every trade has a buyer and a seller, so "more buyers than sellers" is never literally true. What differs is who was waiting and who was impatient. This is the single most important distinction in order-flow reading, and it's the one most explanations skip.

Passive — the waiter

You place a limit order and join the queue. You get the price you asked for, but only if somebody comes to you. You are providing liquidity. You are, in a real sense, defending a price.

Active — the aggressor

You cross the spread and take whatever is resting. You get filled immediately, at a slightly worse price. You are consuming liquidity. You are attacking a price.

So at any given price level there are two opposing forces with a clear geometry:

Level typeWho is passive (defending)Who is active (attacking)
A bid level
below price — support
Buyers. Resting bids waiting to be filled.Sellers. They hit the bid to get out or get short.
An ask level
above price — resistance
Sellers. Resting offers waiting to be filled.Buyers. They lift the offer to get in or get long.

Hold onto that table. Every verdict later in this page is just a statement about which of those two sides won a particular fight, and the naming follows directly from it: a bid is hit by sellers, an ask is lifted by buyers, always.

This is also why Holdfast draws bid levels and ask levels in different colors, and why every verdict is named for the participant it happened to rather than for a direction. Support and resistance are not the same event mirrored — they involve different participants doing different things, and being able to tell them apart at a glance is most of the read.

03 THE PROBLEM

Why size alone lies.

The naive use of depth data is: find a big number in the book, draw a line there, treat it as support. This fails, and it fails in a specific and predictable way.

A limit order is free to place and free to cancel. It costs nothing until it fills. That asymmetry has an obvious consequence: the largest orders in the book are frequently the ones least intended to fill.

Size gets placed to be seen. It slows a move down. It encourages other people to lean on it, to place their own stops just beyond it, to treat it as a floor. And then, when price actually arrives, it's gone — canceled in the milliseconds before it would have traded. You leaned on a wall that was never load-bearing.

Meanwhile, genuine resting size behaves completely differently. Somebody actually working a large position leaves it there. Through pullbacks, through approaches, through time. It is boring. It does not announce itself. And in a snapshot it looks exactly the same as the fake: same price, same number of contracts, same appearance on your ladder.

The measurement problem

Here is the part that determines what data you need. Suppose a price level showing 500 lots drops to 40. Two completely different things could have happened:

These are opposite pieces of information, and aggregated depth reports the same number for both. That's the technical reason Holdfast requires order-by-order MBO data rather than the aggregated depth bundled with most platforms: MBO carries the individual orders and the add / modify / cancel messages behind them, which is what makes the distinction recoverable at all. More on the data requirement here.

04 THE FILTER

The one thing you can't fake.

Size is trivially fakeable. Time is not.

Leaving size resting in the book for minutes means genuinely risking the fill for those minutes. You cannot show a wall for four minutes without accepting that somebody might trade against all of it. That's not a clever insight — it's just an observation about incentives — but it has a practical consequence most depth tools ignore entirely: the useful question isn't how big, it's how long.

This is the whole basis of how Holdfast decides what reaches your chart. A level does not appear because it's big. It appears provisionally, and then it has to survive:

StateWhat it meansOn the chart
UnprovenSize just crossed your threshold. The clock starts. Explicitly not trusted yet.Thin, dashed, faded, * prefix
HoldingSurvived the first validation window still holding its size.Solid, medium weight
ProvenRested long enough that placing it as a bluff would have been genuinely expensive.Thick, full opacity
WithdrawnSize pulled before ever reaching a verdict. Treated as spoofing and deleted.Removed entirely
VacatedReached a flow verdict. Kept as a record, carrying its bubble.Verdict styling + bubble

The deletion is the important half and the part people miss. A tool that draws every level and leaves them all up gives you a chart where some lines are real and some are theatre, with no way to tell which. Deleting the ones that failed their own test is what makes the survivors mean something.

05 THE MECHANICS

Visits, episodes, and refill.

Surviving on a clock earns a level the right to be on your chart. It says nothing about what happens when price finally arrives. That's a separate question, and it's measured separately.

Each time price comes to a level and trades there, that's a visit — internally, an episode. Each episode tracks its own numbers, independent of every other visit to the same level:

Refill is the pivot

Refill is what separates the outcomes, and it's worth understanding on its own because it's the least intuitive of the three.

Imagine 200 lots resting on a bid. Sellers hit it for 300. If the level ends up with nothing left, the defender was overwhelmed — 200 was all they had. But if there are still 180 lots resting after 300 traded, somebody has been continuously adding as fast as their orders were consumed. They aren't holding a position at that price; they're actively defending it, and they have more size behind the size you can see.

Those are enormously different situations, and refill is how you tell them apart in real time. High refill means someone is committed. Low refill means the size that was there is simply being used up.

Nothing here is a probability, and that's deliberate. Market depth isn't stored historically the way price and volume are, so there is no archive of past order books to fit outcome odds against. Any percentage attached to a verdict would be invented. What can be measured honestly is what the flow is doing right now, and that's all any of these states claim to describe.

06 THE FLOW STATES

The verdicts in detail.

Every visit that reaches a conclusion produces a verdict. They fall into two families: absorption describes the passive side's defense, while depletion and exhaustion describe the aggressors' attack and whether it stuck.

Which participant a verdict names follows the verb, and the verbs are not interchangeable. Aggressors are what get absorbed and exhausted. Resting orders are what get depleted. So the labels read like sentences: "active sellers absorbed", "passive buyers depleted", "active sellers exhausted".

Absorption is a verdict the moment it is measured. When the refill mechanics fire, something has been observed at the book: somebody defended this price. That is a finished measurement, not a provisional one, and a great many absorptions are never revisited at all — price simply leaves and keeps going.

What a revisit adds is a second, separate question: given that price came back, did the level hold? That produces two offshoots — DEFENDED and FAILED — which are revisions of the base verdict rather than replacements for it. Same event, same participants, more known about it.

ABSORBED HIGH REFILL · SIZE REPLACED AS IT WAS HIT

What happened: volume arrived and hit the resting size, and that size survived because it kept being replaced. Somebody was standing there replenishing as fast as they were being hit.

What it means: the passive side defended this price. That is a measurement taken at the book, and it stands on its own — it does not need later price action to validate it.

Named for the aggressor that got absorbed: SELLERS ABSORBED at a bid, BUYERS ABSORBED at an ask.

Most absorptions end here. Price leaves and never comes back to argue about it. That is the common case and a complete outcome.

How to use it: a reversal read, and the honest strength of it is in the hover: the tooltip reports how far price closed clear of the level. An absorption that drove price a long way and one that barely moved it carry the same verdict, and the excursion is what separates them.

READS AS: REVERSAL

REVISIT — DEFENDED / FAILED PRICE CAME BACK ON REAL VOLUME · THE LEVEL HELD, OR IT DIDN'T

What happened: price returned to a level that had already absorbed, and this time the question was whether it would hold.

A revisit has to clear two bars to count. The bar has to actually reach the level, and real volume has to transact. Price drifting back on a handful of contracts is not a test of anything, and without the volume gate it would decide a verdict.

DEFENDED — price closed back on the defended side within the hold window. The level was tested and held. This is the sturdiest reversal read the data produces, precisely because it is the one that got tested rather than merely observed.

FAILED — price closed through and stayed through. The passive side temporarily won and ultimately lost. The original absorption was not a false reading: somebody genuinely soaked up the first wave. They just did not have enough behind it to survive the second, and very often had stopped replenishing altogether by the time price came back. The defender stopped defending.

Both name the aggressor, like every absorption state: SELLERS ABSORBED, DEFENDED and SELLERS ABSORBED, FAILED at a bid. Resting orders are never absorbed — they are depleted — so the outcome lives in the qualifier rather than switching which participant the sentence is about.

What the book adds. Price decides held-or-broken; the book says what it cost. A parenthetical marks the two cases where the book gave a clear reading: (REFILLED) means the size came back and defended again, (SWEPT) means it was eaten. Expect neither most of the time — absorption and depletion are narrow tests and a typical revisit lands in the margin between them.

Why FAILED is not depletion: depletion needs no prior absorption — aggressors simply ate the size and carried on. This level demonstrated a real defense first. That history is what makes the failure informative: committed size was there, and has now left. FAILED (SWEPT) says aggressors ate through real size; bare FAILED says price walked through with nobody home, which usually means the level was never worth much.

DEFENDED READS AS: REVERSAL FAILED READS AS: CONTINUATION

DEPLETION LOW REFILL · SIZE CONSUMED · PRICE CONTINUED

What happened: volume arrived, the resting size was eaten and not meaningfully replaced, and price carried on through.

What it means: the defense was real but finite. It got used up. The orders that were there are now gone, converted into somebody's position, and the price no longer has anything holding it.

Named for the side of the book that was consumed: BID DEPLETED at a bid, ASK DEPLETED at an ask. It's the one verdict that names the book rather than the participants, because resting orders are what the verb happened to.

How to use it: depletion is a continuation read, and it's also a warning about that price going forward. A level that has been depleted is not support any more — the thing that made it support has been spent. Traders who keep treating a depleted level as a floor are trading a line that used to mean something.

The cancellation guard. There's a deliberate check here: for a level to count as depleted, trades against it must account for a minimum share of the size that left the book. If the size mostly canceled rather than traded, that's a withdrawal — a pull, not depletion — and it's handled as spoofing instead. Without that guard, a wall that vanishes on cancellations would read as genuine consumption, which is precisely the lie this whole system exists to catch.

READS AS: CONTINUATION

EXHAUSTION LOW REFILL · THEN RECLAIMED WITHIN THE WINDOW

What happened: the level was depleted — genuinely consumed, price went through — and then, within a defined window of bars, price closed back through the level in the other direction.

What it means: the aggressors got what they wanted and it didn't hold. They had enough volume to clear the resting size, and not enough to do anything with the ground they took. That's a different failure from being absorbed: absorption means they never got through, exhaustion means they got through and then ran out.

Named for the aggressors that ran out: SELLERS EXHAUSTED when a bid was taken and then reclaimed, BUYERS EXHAUSTED at an ask.

How it resolves. This is the only verdict that is not immediate, and the mechanic matters for the timeframe discussion below. When a level is consumed, it is provisionally marked DEPLETED. The indicator then watches a set number of completed bars. If price closes back through the level (by a small tick buffer, so a wick doesn't count) within that window, the verdict is upgraded to EXHAUSTION. If the window passes with no reclaim, the depletion stands and is confirmed.

How to use it: exhaustion is the classic failed-breakdown or failed-breakout. It's a bounce read. It is weaker structurally than absorption — the resting size really is gone now, so a return to the level has nothing defending it — but it's often the more tradeable of the two, because it hands you a clear level that just proved the aggressors couldn't hold it.

READS AS: BOUNCE / FAILED BREAK

Each in one line. Absorbed = somebody defended this price. Revisit defended = they were still there when it was tested. Revisit failed = they were not. Depletion = the aggressors won. Exhaustion = the aggressors won the level and then lost the ground.

The two families revise differently. Every exhaustion begins life as a depletion — that one genuinely is provisional, because "consumed" and "consumed then reclaimed" are different events. Absorption is not provisional: it is measured and rendered immediately. A revisit adds a second finding on top of it. The distinction matters, because it is the difference between a verdict waiting to be decided and one that is already true.

A verdict describes that visit and is not a forecast. Price breaking a level an hour later does not retroactively unmake a defense that worked — that return is a new event, and it earns its own verdict.

07 A DETAIL WORTH KNOWING

The aggressor flip, and the trailing +.

Occasionally an absorption label carries a trailing plus sign — SELLERS ABSORBED+. It's a small marker for a meaningful escalation, and it is rare enough that you can trade for a while without seeing one.

During an ordinary absorption at a bid, sellers are the ones doing the work. They're hitting the bid; the defender is passively soaking it up. Seller volume dominates, and the defense is holding.

The flip is when that reverses. Within a short rolling window, the opposite side starts out-trading the aggressor — at that same bid level, buyers are now lifting more than sellers are hitting. The defender has stopped merely absorbing and started buying aggressively themselves. The defense isn't holding, it's winning.

Three things worth knowing about it, since it's easy to wonder whether it's broken:

When you do see one, it's worth attention: it's the strongest single-glance evidence the data produces that a level isn't just being defended, it's being defended by someone who has decided to press.

08 THE PART THAT CONFUSES EVERYONE

Why your timeframes disagree — and why that's the point.

Put Holdfast on a 5-minute chart and a 15-second chart of the same instrument, at the same moment, and you will not get the same bubbles. Some events appear on both. Some appear only on the fast chart. And an event that reads as one clean absorption on the 5-minute may show up as three separate exhaustions on the 15-second.

This looks like a bug the first time you see it. It isn't. Understanding why is genuinely the difference between using this tool well and being frustrated by it.

The levels are timeframe-independent. The verdicts are not.

Two halves of the system behave differently, and the whole thing follows from that:

  • Level detection reads the depth feed directly. Resting size, refill, cancellations — none of that has anything to do with your chart interval. A 500-lot bid is a 500-lot bid whether you're looking at 15-second or 5-minute bars. This half is identical across every chart you open.
  • Verdict confirmation reads bars. The exhaustion reclaim window is counted in completed bars. So is the clean-break removal. And how long a visit stays open before it's considered finished interacts directly with how long a bar takes to form.

So the same order-book event gets judged against a different stopwatch on every chart. On a 15-second chart, a four-bar reclaim window is one minute. On a 5-minute chart, a one-bar reclaim window is five minutes. Those are not the same question being asked, and they honestly shouldn't produce the same answer.

Why one absorption becomes three exhaustions

Picture a genuine fight at a support level lasting twelve minutes. Sellers come in three separate waves. Each wave clears the visible resting size and pushes price a few ticks below the level; each time, buyers reload and drive it back within half a minute.

On the 5-minute chart

Those three waves happen inside two or three bars. No bar ever closes below the level, because each dip is recovered long before the bar ends. From the 5-minute chart's point of view the size was hit repeatedly, never gave way on a closing basis, and kept being replenished. That is textbook absorption — and it's a fair description of the twelve minutes as a whole.

On the 15-second chart

Each wave gets its own bars. Price closes below the level, so each wave is a genuine depletion — and then closes back above within the reclaim window, upgrading each one to EXHAUSTION. Three waves, three separate exhaustion bubbles. Also a fair description: three times, sellers got through and couldn't hold it.

Neither chart is wrong. One is describing the outcome of the battle, the other is describing the individual skirmishes. The 5-minute tells you the level held. The 15-second tells you it held three times, and each time the sellers who broke it had nothing left within thirty seconds. That second reading is considerably more actionable, and it's invisible at 5 minutes.

Why some events never appear on the slow chart at all

The other direction is just as important. A visit that resolves entirely within a single 5-minute bar can be a complete, well-formed event on the 15-second chart — arrival, consumption, reclaim, confirmation — while the 5-minute chart sees one bar with a wick and nothing to judge. There is no bar boundary for the reclaim to be measured against, so no verdict is reachable.

That's not the slow chart missing something it should have caught. Its job is to answer a slower question, and by its standards nothing decisive happened.

The practical consequence. Match your chart to the decisions you actually make. If you're scalping on a 15-second chart, the fast-chart verdicts are your signal and the 5-minute is context. If you hold for twenty minutes, the fast-chart bubbles are noise you'll be happier without. Running both is the strongest read available — one for the shape of the fight, one for the individual exchanges — and Holdfast ships timeframe presets specifically so the reclaim windows and confirmation bars are sensible on each rather than borrowed from the other.

The same session, three ways

Below is one MNQ session captured on all three charts at the same moment. The colored boxes are annotations added for this page, not something the indicator draws. They mark which events survived onto which chart.

WHITE BOXES

Present on all three

Large, slow, decisive events. Enough size and enough time that every chart could reach a verdict — though not always the same verdict.

PURPLE BOXES

1-minute and 15-second only

Real events that resolved too quickly for the 5-minute chart to see a bar close against them. Significant, and completely absent from the slow chart.

ORANGE BOXES

15-second only

The finest grain. Slower to build and easy to dismiss, but they resolve and they perform — the events that only exist if you're watching at execution resolution.

100%
1 / 3
MNQ 5-minute chart with Holdfast flow bubbles
DOUBLE-CLICK OR + TO ZOOM · DRAG TO PAN

5 minute — the shape of the session

Read them in order and the pattern is unmistakable: the slow chart carries a handful of large, unambiguous events. Each faster chart keeps all of them and adds a layer the previous one couldn't resolve. Nothing contradicts — the resolution just increases, and events that were a single wick at 5 minutes become fully-formed, verdict-bearing episodes at 15 seconds.

The totals on the bubble faces also shift between charts, and that's expected for the same reason. A bubble's number is the volume transacted during that visit, and what counts as one visit depends on when the episode is considered closed — which is tied to bar formation. One long visit on the slow chart can be three shorter visits on the fast one, and the volume divides accordingly.

09 QUESTIONS

Common questions.

If the timeframes disagree, which one do I trust?

The one that matches your holding period. This isn't a dodge — the verdicts are answers to a question about time, so a verdict is only meaningful relative to a timescale you actually care about. A scalper holding for ninety seconds needs to know whether sellers ran out within ninety seconds; the 5-minute chart cannot tell them that, and isn't trying to. If you hold for half an hour, the reverse applies and the fast-chart bubbles are just noise.

Does absorption mean price will reverse?

No. Absorption means the aggressors that just attacked a price were soaked up by someone with more size. That is a fact about what already happened, not a forecast. Plenty of levels absorb once and get taken out on the next attempt — which is exactly why the revisit exists as a separate finding.

REVISIT — DEFENDED is the reading that carries the strongest reversal read, because it is the one that got tested: price came back on real volume and the level held anyway. REVISIT — FAILED is the same beginning with the opposite ending, and reads as continuation. Neither is a probability; both are records of what price did.

A live ABSORBING label — price still at the level, visit still open — should be read as "someone is defending here right now", not as a settled verdict.

Why did my absorption bubble change into something else?

Because price revisited the level and answered a second question about it. The absorption itself was never in doubt — it was measured and rendered when it happened. What changed is that the level then got tested, so the same bubble is rewritten in place as DEFENDED or FAILED rather than a second bubble appearing beside a stale one.

Something similar happens on the aggressor side, but for a different reason: a depletion genuinely is provisional until its reclaim window passes, and upgrades to exhaustion if price closes back through. Absorption is not provisional — a revisit adds a finding on top of one that was already true.

Only the first qualifying revisit revises the verdict. After that it locks: a later return is a new event at a level that no longer has the same defenders standing in it.

Why is there no probability or confidence score on the verdicts?

Because it would be fabricated. Fitting outcome probabilities requires a historical archive to fit against, and market depth is not stored historically the way price and volume are — the book exists only in the live feed. Any percentage printed next to a verdict would be an invention dressed as a measurement. What can be stated honestly is what the flow did, so that's what gets stated.

A level got depleted and price came back to it later. Is it still support?

Not in the way it was. Depletion means the resting orders that made it support were consumed — converted into somebody's position and gone. The price may still matter for other reasons (it's a visible number, other traders remember it), but the specific thing this data measured is no longer present. This is exactly why depleted levels are retained as a record rather than kept as live levels.

Why did a big level vanish from my chart entirely?

It was withdrawn — the size was pulled before the level ever reached a verdict — so it was deleted rather than kept. That's the spoofing filter doing its job. A level that shows up, sits there looking impressive, and then evaporates without ever being traded against was never information you wanted on your chart, and leaving it up would be actively misleading.

My chart is covered in old bubbles. How do I clear them without changing my settings?

Refresh the chart. Bubbles are deliberately durable — they survive a settings change, an indicator reload, and a dropped data connection, because they record verdicts that were built from live depth and cannot be replayed once lost. By default the last 24 hours of them stay on the chart as a session map, which is what makes a long session accumulate.

Reloading the data series clears the vacated levels and their bubbles, and new levels start forming from that moment — depth is live-only, so there is nothing historical to rebuild. Your settings and calibration are untouched, which is why a refresh is the right tool here rather than turning persistence down: one resets what is currently drawn, the other changes how the tool behaves from then on. The trade-off is that you lose the earlier part of the session's map and any level mid-clock restarts its validation, so it's best done between setups.

Can I see more bubbles by lowering my size threshold?

Yes, and you'll usually regret it. Lowering the threshold makes every ordinary price on the ladder a level, and then everything that happens to any of them produces a verdict. The output stops being selective, which is the entire value. The right threshold is specific to your instrument and time of day, and the indicator's debug log measures it from your own feed rather than making you guess — the procedure is in the installation guide.

Is this the same thing as footprint or volume profile?

Related, but a different data source answering a different question. Footprint charts and volume profiles are built from trades — what actually transacted, and at what price. This is built from the book — what was resting and waiting, and what became of it. Volume tools tell you where business got done. Book tools tell you who was standing there and whether they held. They complement each other well and neither substitutes for the other.

10 REFERENCE

Glossary.

Absorption
Aggressive volume hit resting size and the size survived, because it kept being replaced as fast as it was hit. Named for the aggressor that was soaked up. A complete verdict on its own: most absorptions are never revisited.
Revisit
Price returning to a level that has already absorbed, on enough volume to count as a genuine test. Requires both that the bar reach the level and that a minimum volume transact — price drifting back on a handful of contracts is not a test.
Revisit — defended
Price came back to an absorbed level and it held, closing back on the defended side within the hold window. The sturdiest reversal read available, because it is the one that got tested rather than merely observed.
Revisit — failed
Price came back and the level broke. The defense was real; it was not deep enough to survive the second attack. A continuation read, distinct from depletion because a real defense happened first.
Refilled / swept
Qualifiers on a revisit outcome describing what the book did while price decided the outcome. Refilled means the size came back and defended again; swept means it was eaten. Absent when the book gave no clear reading, which is the common case.
Aggressor
The active side of a trade — whoever crossed the spread to get filled immediately, consuming liquidity rather than providing it.
Aggressor flip
Within a short window, the side opposing the aggressor begins out-trading them at the level. Marked with a trailing + on absorption labels.
Ask / offer
The lowest price at which anyone is currently willing to sell. An ask level is defended by passive sellers and attacked by active buyers.
Bid
The highest price at which anyone is currently willing to buy. A bid level is defended by passive buyers and attacked by active sellers.
Depletion
Resting size was consumed by trading and not meaningfully replaced, and price continued through. Named for the passive side that was eaten.
Depth / Level 2
The resting sizes waiting at prices away from the current bid and ask — the ladder on either side of the market.
Episode / visit
One occasion on which price came to a level and traded there. Each visit is measured independently and can reach its own verdict.
Exhaustion
A depletion that was reversed — price cleared the level and then closed back through it within the reclaim window. Named for the active side that ran out.
MBO (market by order)
Order-by-order depth data: every individual resting order, with messages for each add, modify, and cancel. The detail required to distinguish trading from cancellation.
MBP (market by price)
Aggregated depth: one summed size per price level. Cannot distinguish a level being traded away from one being canceled away.
Passive
A resting limit order waiting to be filled. Provides liquidity and, in effect, defends a price.
Reclaim window
The number of completed bars, counted from the moment the visit at the level ends, during which a close back through the level upgrades the verdict to exhaustion.
Revisit window
The number of bars an absorbed level is watched for price coming back. A qualifying revisit inside the window revises the verdict to defended or failed; a window that passes with no revisit leaves the absorption exactly as it was.
Hold window
Once price revisits, the much shorter window in which it has to close back on the defended side. Mirrors the reclaim window that turns a depletion into an exhaustion, and does the same job.
Refill
How much consumed resting size was replaced during a visit. High refill indicates active defense; low refill indicates size simply being used up.
Spoofing
Placing visible size with no intention of it filling, then canceling before price arrives. The behavior the validation clock exists to filter out.
Spread
The gap between the best bid and the best ask.
Withdrawn
A level whose size was pulled before it ever reached a verdict. Deleted rather than retained.

See it on your own charts.

Holdfast Liquidity Levels does all of the above live: validation clocks, verdict classification, flow bubbles, and timeframe presets tuned so the reclaim windows make sense on the chart you actually trade.