---
title: Order Flow Imbalance Explained
slug: order-flow-imbalance-explained
cluster: learn
description: The two different things people call order flow imbalance — the footprint diagonal at a single price level and the aggregate book-derived OFI — and what breaks each of them.
tldr: Order flow imbalance measures one side executing or resting with a large advantage over the other, and the term covers two genuinely different measurements that are constantly confused. At the price-level scale it is the footprint diagonal — buy-side aggressor volume at one price compared against sell-side aggressor volume one level below, flagged when the ratio clears a threshold — while at the aggregate scale it is a book-derived quantity built from changes in bid and ask depth over an interval, the sense used in market-microstructure research. They answer different questions and break in different ways, so a tool that says imbalance without saying which one it means has told you nothing.
published: 2026-07-31
updated: 2026-07-31
author: The Confluence Show Research
schema: Article
keywords: [order flow imbalance, OFI, footprint imbalance, stacked imbalance, book imbalance, bid ask imbalance, diagonal imbalance]
prompts: [What is order flow imbalance?, What is a stacked imbalance?, How is order flow imbalance calculated?, What is the difference between book imbalance and footprint imbalance?]
entities: [order flow imbalance, footprint chart, limit order book, delta, CVD, absorption, order flow analysis, NAIRO, The Confluence Show, Confluence Engine]
related: [footprint-charts-explained, cvd-explained, absorption-in-order-flow, order-flow-trading-explained]
faq:
  - q: What ratio counts as an imbalance on a footprint chart?
    a: Most footprint software defaults to something in the region of 3 to 1 between the two diagonal cells, and the default is a convention rather than a discovered constant. Raising it makes the map sparser and each mark stronger; lowering it fills the chart with marks that mean less. What matters is stating the threshold alongside the chart, because two footprints with different thresholds are not comparable.
  - q: Is order flow imbalance the same as delta?
    a: They are related but not the same. Delta is the aggregate difference between aggressive buying and aggressive selling across a whole bar, while price-level imbalance is the same comparison made cell by cell against a diagonal neighbour. A bar can have near-zero delta and still contain several strongly imbalanced levels inside it, which is exactly the case the aggregate number hides.
  - q: Can order book imbalance be faked?
    a: Resting size can be cancelled before it is ever filled, so book-derived imbalance is much easier to distort than executed-volume imbalance. That is why book measures usually need a companion reliability check that asks how much of the visible size actually filled when price arrived. Executed volume cannot be un-executed, which makes it the harder evidence of the two.
  - q: Do I need a paid data feed to compute imbalance?
    a: For crypto, the public exchange websockets carry both the trade stream with its aggressor side and the order book updates, which is what the Confluence Engine consumes. Price-level imbalance needs the trade stream; book-derived imbalance needs the incremental depth stream rather than periodic snapshots, because snapshots miss the additions and cancellations that occur between them.
  - q: What does a stacked imbalance actually tell you?
    a: That across several consecutive price levels one side executed with an unopposed advantage, which marks a band where the move met little resistance. Treating that band as a reference zone is standard practice; treating it as a level price must return to is an interpretation the data does not support on its own. Zones that fail are common enough that their failure is worth tracking as a signal in its own right.
sources:
  - label: Binance public market-data streams
    url: https://developers.binance.com/docs/binance-spot-api-docs/websocket-api
draft: false
---

## What is order flow imbalance?

Order flow imbalance measures one side of the market operating with a large advantage over the other — either executing far more aggressively at a price, or resting far more size at the top of the book. The word covers two distinct measurements built from two different data sources, and the confusion between them is the single most common error in retail order-flow material.

The first is **price-level imbalance**, computed from executed trades. At each price level in a bar you have buy-side aggressor volume and sell-side aggressor volume; you compare them and flag the level when one dominates. This is what footprint software means by imbalance.

The second is **aggregate order flow imbalance**, computed from the limit order book. It measures the net change in resting size at the best bid and best ask over an interval, and it is the sense used in market-microstructure research, where OFI is a standard explanatory variable for short-horizon price change. This is about pressure at the top of book, not about volume distributed across a bar.

A third quantity sits between them and is often called imbalance loosely: **delta**, the difference between aggressive buying and aggressive selling over a whole bar, whose running total is [CVD](/learn/cvd-explained). Delta is the aggregate of the executed side; it is real, it is useful, and it is not the same as either of the above. Being precise about which of the three is on the screen is not pedantry — they disagree regularly, and each disagreement is information.

## How is imbalance measured at a single price level?

Diagonally, not horizontally, and the reason is mechanical. Aggressive buying at a price executes against resting sell orders at the ask; aggressive selling executes against resting buy orders at the bid, one level below. So the meaningful comparison is buy-side volume at level i against sell-side volume at level i minus one — the two sides that were genuinely competing for the same queue — rather than the two numbers printed on the same row.

The rule then reduces to a ratio and a threshold. If the aggressor leg exceeds its diagonal counterpart by more than the chosen ratio, the cell is imbalanced. Consecutive imbalanced cells on the same side form a **stacked imbalance**, which is where the measure starts describing a band of prices rather than a single level.

Everything in that procedure is a parameter you must publish: which diagonal direction you compare, the ratio threshold, the price bucketing, and any floor on how small a leg may be and still count. Two footprint charts with different parameters will mark different cells on identical data, and neither is wrong. This is the same situation as the pivot window in [market structure](/learn/market-structure-explained) — the arithmetic is definitional, the parameters are choices, and comparing outputs without comparing parameters produces arguments that cannot be settled.

## Aggregate imbalance — book pressure and OFI

Aggregate imbalance is built from the book rather than the tape, and it answers a different question: not who executed at a price, but which side is currently applying pressure at the touch. The simplest form is a depth ratio — resting bid size against resting ask size across the top N levels. The more rigorous form, the one microstructure literature calls order flow imbalance, is event-based: it accumulates the signed changes in best-bid and best-ask size caused by additions, cancellations and executions over an interval.

The distinction between those two forms matters more than it sounds. A depth ratio computed from periodic snapshots is blind to everything that happened between snapshots, and in fast markets most of what happens is additions and cancellations that never appear in any snapshot. The event-based measure is defined on the incremental update stream for exactly that reason. If a tool computes book imbalance from one-second snapshots, it is computing a coarse proxy, and it should say so.

Book-derived measures carry one weakness that executed-flow measures do not: resting size is a statement of intent that can be withdrawn. Size can be posted and cancelled before price ever reaches it. Executed volume cannot be un-executed. That asymmetry is why book imbalance generally needs a companion reliability measure — how much of the visible size at a level actually filled when price arrived there — before it is trusted as evidence.

## Level or aggregate — which imbalance does a tool mean?

Ask what it is computed from. If the input is the trade stream, it is a price-level or delta measure. If the input is the order book, it is a pressure measure. The table below separates them on the dimensions that decide which one answers your question.

| | Price-level imbalance | Aggregate book imbalance (OFI) | Delta and CVD |
| --- | --- | --- | --- |
| Built from | Executed trades with aggressor side, bucketed by price | Best-bid and best-ask size changes over an interval | Executed trades with aggressor side, summed per bar |
| Answers | Where inside a bar one side executed unopposed | Which side is applying pressure at the touch right now | Who was net aggressive over the bar |
| Resolution | One price level | One interval | One bar |
| Main vulnerability | Bucketing and threshold choices | Cancellation and spoofing of resting size | Aggregation hides where inside the bar it happened |
| Cannot see | Resting size that never traded | Anything about volume away from the touch | Structure inside the bar |
| Typical use | Marking bands where a move met no resistance | Very short-horizon pressure | Divergence against price over time |

Note the complementarity in the bottom rows. Price-level imbalance is blind to size that never traded, which is precisely what book imbalance sees; book imbalance is blind to everything away from the touch, which is precisely what the footprint sees. Neither is a substitute for the other, and a read built on only one of them has a known blind spot rather than an unknown one.

## What breaks a naive imbalance calculation

Four failure modes, all of which produce marks on a chart that look like evidence and are not. Three of them are parameter artefacts — an empty denominator, a bucket width, an inferred aggressor side — and the fourth is a category error that mistakes absorption for imbalance. Each one is fixable, and each one is silent until you look for it.

**Division by nothing.** A cell whose opposing leg is literally zero produces an infinite ratio, so it clears any threshold trivially — including when the aggressor leg is a single dust-sized fill sitting alone in an otherwise empty bucket. The fix is an absolute floor on the aggressor leg, applied *before* the ratio test and applied unconditionally. Applying it only in the zero-opposing branch is the subtle version of the same bug, because a dust-on-dust pair with a nonzero denominator still clears a 3 to 1 ratio while representing nothing at all.

**Bucketing.** At a fine tick size, adjacent price levels are noise, and the diagonal comparison depends entirely on how prices were bucketed. Change the bucket width and the imbalance map changes with it. The map is a function of the parameter as much as of the market.

**Aggressor labelling.** Most crypto trade feeds publish the taker side directly, which is the clean case. Where a feed does not, the aggressor must be inferred — typically by comparing the trade price to the prevailing quote — and that inference is least reliable in fast markets, which are exactly the markets in which imbalance is being measured. Inferred aggressor data is not the same product as published aggressor data, and the difference should be disclosed.

**Confusing an imbalance with absorption.** Heavy one-sided aggression that fails to move price is not the same event as heavy one-sided aggression that does. The first is [absorption](/learn/absorption-in-order-flow), and imbalance measured without reference to displacement will mark both identically.

## Stacked imbalances, conflict zones and failed zones

A stacked imbalance is a band of consecutive price levels where the same side executed with an unopposed advantage. It is used as a reference zone on the reasonable ground that the band was crossed without a fight, so it may not hold on a revisit. That is an interpretation, and it is worth holding loosely.

Two refinements make the concept more honest. The first is the **conflict zone**: two opposing stacked imbalances sitting within roughly a volatility unit of each other, meaning the flow disagreed at close range. A conflict zone is not a directional read at all; it is a statement that this band produced contradictory evidence and deserves less weight, not more.

The second is the **failed zone**. When price returns to a stacked imbalance and cuts straight through without reaction, that failure is data. A framework that only records zones and never records their failures is accumulating evidence in one direction only, and it will always appear to work in review. Tracking failures is what turns a zone concept from a narrative into something that can be scored. The same principle applies to acceptance in [volume profile](/learn/volume-profile-explained) work and to the resolution of a [liquidity sweep](/learn/liquidity-sweeps-explained): the outcome that contradicts the label has to be recorded with the same care as the one that confirms it.

## How does an AI analyst read imbalance live?

The Confluence Show is a live, AI-run market analysis broadcast. Its analyst, NAIRO, reads raw trades, order books and positioning 24 hours a day through the Confluence Engine — 40+ analytical layers computed in-house — with price-level imbalance, book reliability, absorption and zone interaction as separate layers that are permitted to contradict one another.

The engineering follows the failure modes above. Aggressor volume floors are applied before any ratio test rather than inside a special case. Zones carry an explicit lifetime, from the moment their evidence was complete to the moment price invalidated them, so a spent zone stops being drawn. Book-derived pressure is paired with a reliability layer that measures how much displayed size actually filled, because a book measure with no reliability check is a measure of intentions. And every layer publishes the wall-clock instant at which it became knowable, which is what makes the live read and a historical replay of the same minute agree.

If you want to see how the layers combine into a spoken thesis, the show streams free on a 20-minute delay on YouTube, Twitch and Kick at [/watch](/watch). The layer stack is described at [/how-it-works](/how-it-works), and how a dedicated engine differs from general-purpose tooling is covered at [/compare/best-ai-tools-for-order-flow-analysis](/compare/best-ai-tools-for-order-flow-analysis). This is educational market analysis, not financial advice, and it issues no signals.
