A confirmation model is a fixed sequence of checks you run before entering, so the decision is made the same way every time. Mine has four steps: is there context, did price arrive the right way, did the reaction show real participation, and is there a clear point where the idea is wrong. Any step failing ends it.
This is the piece missing from most order flow education. People learn to read the tools and then have no procedure for turning a read into a trade, so they end up entering on whichever signal was most recent and most exciting.
Why a model rather than a setup
A setup is a picture you look for. A model is a process you run.
The problem with setups is that markets rarely produce the textbook version, so you end up making judgement calls about how close is close enough, and those calls get looser as the session goes on and you have not traded yet.
A model does not care what the picture looks like. It asks the same questions in the same order, and it has explicit failure conditions. That does two things. It stops you entering on partial evidence, and it makes your losing trades reviewable, because you can look back and see which step you skipped.
Almost every bad trade I have taken in the last few years failed step one or step four.
Step 1: Context
Before anything else: does this level have a reason to exist?
A level qualifies if it is one of these:
- A value area edge, current or previous session.
- A point of control, current or previous.
- A high volume node where real business was done.
- The edge of a low volume node, where price previously moved fast.
- A prior session extreme with volume behind it.
A level does not qualify because it is a round number, because you drew a line there, or because price bounced off it once on a five minute chart. Those are not levels, they are coincidences with names.
Second half of context: what state is the market in? A value area low in a balanced session is a place to buy. The same value area low in a trending session is a place price goes through. Getting this wrong makes every subsequent step irrelevant, which is why it comes first and why balance vs imbalance is worth the time.
Fails if: the level is arbitrary, or the state does not support the direction you want to trade.
Step 2: Arrival
How price gets to a level tells you a lot about what will happen there.
Slow, grinding arrival. Price drifts down into support over twenty minutes on unremarkable volume. This is generally good for a reversal. Nobody is committed, the move has no momentum behind it, and it does not take much to turn it.
Fast, aggressive arrival. Price drops into the same level in ninety seconds on heavy volume with stacked selling imbalances. This is generally bad for a reversal. Something is driving it, and a level that gets hit that hard usually gets hit through.
The instinct most people have is backwards here. A violent move into support feels like a bigger opportunity because the potential bounce looks larger. In practice it is the arrival most likely to break the level.
Fails if: price arrives with heavy sustained aggression in the direction of the level and shows no sign of slowing. Wait for it to stall, or let it go.
Two ES examples on one image: a slow grinding approach into the value area low that reversed, and a fast aggressive approach into a similar level that broke straight through. Same level type, opposite outcome, with volume visible on both.
Step 3: Reaction
Now the level has been reached. What is actually happening in the executed orders?
This is where absorption, exhaustion and stacked imbalances get used. Specifically I want at least one of:
- Absorption. Heavy volume hitting the level and price refusing to progress. Someone is defending it.
- Exhaustion. A volume spike at the extreme with no follow through. The push has run out of participants.
- Delta shift. Cumulative delta turning at the level rather than continuing.
What does not count: price bouncing. A bounce is not evidence, it is the thing you are trying to predict. Plenty of levels produce a two tick bounce on no volume and then break. If the only thing you can point to is that price ticked up, you have no confirmation, you have a hope.
Fails if: price reaches the level and volume simply carries on through it with no absorption, no exhaustion and no delta response. The level is not being defended. Nobody is home.
Step 4: Invalidation
Before entering, name the price at which the idea is wrong.
Not a fixed distance, not a dollar amount. A price where the reasoning collapses. If your read is that a large buyer is absorbing at the value area low, the read is wrong when price trades meaningfully below that absorption with volume, because the buyer has either been overwhelmed or has stopped.
Two rules I hold to:
The stop goes beyond the level, not at it. Stops sitting exactly at an obvious level are the liquidity that makes probing them worthwhile.
If the invalidation is too far away for your size, the trade does not exist. It does not become valid by using a tighter stop in a place the reasoning does not support. That is just choosing to be stopped out while still being right.
Fails if: you cannot state a price where you would be wrong, or the distance to it makes the risk unacceptable.
The model in one table
| Step | Question | Pass looks like | Fail means |
|---|---|---|---|
| 1. Context | Does this level have a reason to exist, and does the state support it? | Volume based level, state consistent with the direction | No trade. Nothing after this matters. |
| 2. Arrival | How did price get here? | Slow, unconvincing, losing momentum | Wait for a stall or stand down |
| 3. Reaction | Is anyone defending it? | Absorption, exhaustion or a delta shift | No trade. The level is not held. |
| 4. Invalidation | Where am I wrong, and can I afford it? | A specific price, at an acceptable distance | No trade. Size does not fix this. |
What this does not do
It does not make you right. Every step can pass and the trade can still lose, and that happens regularly. Absorbers get overwhelmed. Levels that held four times break on the fifth.
What it does is make sure you are only losing on trades that were worth taking. There is an enormous difference between a losing trade where all four checks passed and a losing trade where you entered because you had been watching for two hours and wanted something to happen. The first is the cost of doing business. The second is the actual problem with most trading accounts.
It is also slower than what most people do, and it will keep you out of trades that go on to work. I have made peace with that. Missing a move costs nothing.
Making it yours
The specific checks matter less than having them fixed in advance and applying them in order. If you want tighter or looser criteria at step three, fine, as long as you decide that before the session rather than during it.
The one thing I would not change is the order. Context first, always. A perfect absorption print at a meaningless price is a perfect signal to do nothing, and the reason traders find that hard is that the signal is the exciting part while the context is the boring part.
How this fits into a full session is covered in day trading futures with order flow.
Frequently asked questions
What is an order flow confirmation model?
A fixed sequence of checks run before entering a trade, so the decision is made the same way every time. It replaces looking for a picture on the chart with running a process, which makes entries consistent and losing trades reviewable.
Why does context come before the order flow signal?
Because the same footprint pattern means completely different things depending on where it appears. Absorption at a value area low that has already held twice is meaningful. The identical absorption in the middle of a range is someone managing an order. Location determines whether the signal is worth anything.
What counts as confirmation at a level?
Absorption, exhaustion or a clear delta shift, all of which indicate participants doing something. Price bouncing does not count, because a bounce is the outcome you are trying to predict rather than evidence about it. Small bounces on no volume happen at levels that then break.
Where should the stop go?
Beyond the level rather than at it, at a price where the reasoning genuinely collapses. Stops resting exactly on obvious levels are the liquidity that makes probing those levels worthwhile. If the correct invalidation is too far away for your size, the trade is not available to you.
Does this work on other markets?
The structure works anywhere you have reliable volume data, which in practice means centrally cleared futures and liquid equities. On spot forex step three cannot be run honestly, because the volume underpinning absorption and delta is incomplete.
How many trades does this produce?
Fewer than most people expect, which is the point. Requiring all four steps rules out the majority of setups that look tempting during a slow session. If your model is producing many trades a day, the criteria are probably too loose to be doing any filtering.