Skip to content
Indicators 8 min read

On-balance volume (OBV): calculation and how to read it

How on-balance volume adds and subtracts daily volume, with a worked example, trend confirmation, divergence, breakouts, gaps and the limits of OBV.

Hypothetical daily chart: price moves sideways in a range while on-balance volume climbs to a new high, then price closes above the range, with volume bars and OBV in panes below.Range highRange lowOBV new highClose above rangeVolumeOBV (millions of shares)
Daily candles, volume and on-balance volume on hypothetical data, with OBV starting from 0. While price moves sideways, up sessions carry more volume than down sessions and OBV climbs. OBV sets a new high 3 sessions before price closes above the range high, and the breakout session trades 1.6 times the average volume of the range.

OBV keeps a running total of volume on up sessions minus volume on down sessions. Its direction can confirm or question a price trend, but its level means nothing on its own.

What on-balance volume measures

On-balance volume, or OBV, is a running total of trading volume: a session’s volume is added when the stock closes higher than the session before and subtracted when it closes lower. Joseph Granville popularized it in his 1963 book Granville’s New Key to Stock Market Profits. The idea is to show how much trading stood behind up closes compared with down closes.

OBV at a glance
PropertyOBV
InputsDaily closes and volume
RuleAdd volume on a higher close, subtract it on a lower close, skip an unchanged close
LookbackNone: the total runs from a chosen start
UnitsShares
ScaleUnbounded; the starting value is arbitrary
What carries informationThe direction and swings of the line, compared with price

Granville argued that volume tends to move ahead of price. OBV is a way to look for that: a line that climbs while price is flat says that up sessions have carried more volume than down sessions. Whether price follows is a separate question.

On-balance volume calculation

OBV compares each close with the prior close and nothing else. The size of the price change does not matter, only its sign.

if close > prior close: OBV = prior OBV + volume
if close < prior close: OBV = prior OBV − volume
if close = prior close: OBV = prior OBV
OBV over 10 hypothetical sessions, starting from 0
SessionClose ($)Close vs priorVolume (shares)Added to OBVOBV (shares)
025.001,200,0000
125.30Higher1,450,000+1,450,0001,450,000
225.10Lower900,000-900,000550,000
325.10Unchanged1,000,0000550,000
425.45Higher1,600,000+1,600,0002,150,000
525.20Lower850,000-850,0001,300,000
625.22Higher2,400,000+2,400,0003,700,000
724.95Lower1,100,000-1,100,0002,600,000
825.35Higher1,500,000+1,500,0004,100,000
925.15Lower950,000-950,0003,150,000
1025.60Higher1,750,000+1,750,0004,900,000

Price ends 2.40% above its starting close, while OBV reaches 4,900,000 shares: up sessions carried 8,700,000 shares and down sessions 3,800,000. Session 3 closed unchanged, so its 1,000,000 shares were ignored. Session 6 closed only $0.02 higher, yet all of its 2,400,000 shares were added, the largest single step in the table.

The starting value is arbitrary. Starting at 0, at the first session’s volume or at 10,000,000 shifts every value by the same amount and changes nothing about the line’s direction or swings. That is why two platforms can show different OBV levels for the same stock; only changes and slopes compare.

How to read on-balance volume on a stock chart

OBV is drawn as a line in a pane below price, usually next to the volume bars. Read its direction and its swing highs and lows, and compare them with price over the same sessions.

  1. Ignore the number on the axis; it depends on where the total started.
  2. Compare slopes. Is OBV rising, falling or flat while price does the same?
  3. Compare swings. Does a new price high come with a new OBV high, and a new price low with a new OBV low?
  4. Find the sessions behind a jump. One session with very heavy volume can move OBV more than weeks of ordinary trading, so check the volume bar behind any step.

TradeClever’s Stock Charts show daily candles with a volume pane, the two inputs of OBV. If you keep an OBV column in a spreadsheet, the chart lets you check the up and down sessions and the volume behind each step. For volume itself, see putting stock volume in context.

On-balance volume trend confirmation

Trend confirmation means OBV moves with price. In an advance that OBV confirms, up sessions carry more volume than down sessions, so OBV makes higher highs and higher lows along with price.

Price and OBV together
PriceOBVCommon reading
RisingRisingVolume confirms the advance
RisingFlat or fallingThe advance has less volume behind it
FallingFallingVolume confirms the decline
FallingFlat or risingThe decline has less volume behind it
FlatRisingUp sessions carry more volume, often called accumulation
FlatFallingDown sessions carry more volume, often called distribution

Confirmation is descriptive. A confirmed trend can still reverse, and a trend without confirmation can continue. Read OBV as one account of participation next to the price chart, not as a separate forecast.

On-balance volume divergence explained

An OBV divergence compares price swings with OBV swings at the same sessions. A bearish divergence is a higher price high with a lower OBV high; a bullish divergence is a lower price low with a higher OBV low.

  1. Mark two swing highs, or two swing lows, on the price chart first.
  2. Read OBV at the same sessions and compare the two values.
  3. Check the volume bars between the swings: is the difference spread over many sessions, or caused by one heavy session?
  4. Note how far apart the swings are; a divergence over a few sessions says less than one that builds over weeks.

Because OBV has no fixed scale, compare it only with itself on the same chart. A bearish divergence says that volume on up sessions has not kept pace with the new high; a bullish divergence says that volume on down sessions shrank into the second low. Both describe participation, not timing.

A divergence can last a long time. It shows that volume has not followed price; it does not say when, or whether, price turns.

An on-balance volume breakout example

One use of OBV around breakouts is to see whether the line breaks out first. If OBV rises to a new high while price is still inside its range, up sessions have been drawing more volume than down sessions during the consolidation.

In the illustration on this page, price holds in a range for the first 42 sessions while OBV climbs. OBV sets a new high 3 sessions before price closes above the range high, with the close still $0.38 below that level. The breakout session itself carries 1.6 times the average volume of the range sessions.

That sequence is what the method looks for, but it is not reliable on its own. OBV can break out while price still fails at the top of its range, and price can break out without an OBV lead. Treat an OBV breakout as one observation next to the price levels themselves; breakouts and pullbacks and support, resistance and trendlines cover those levels.

On-balance volume limitations during price gaps

OBV assigns a session’s entire volume according to the close alone, which distorts the line around gaps.

  • A gap up that fades. A stock opens far above the prior close, sells off all session and still closes slightly higher. All of the session’s volume, often heavy on a gap day, is added, although most of the trading came while price fell.
  • A gap down that recovers. The mirror case subtracts the full volume of a session in which price climbed back most of the way.
  • Size does not matter. A 10% gap and a 0.1% move on the same volume change OBV by the same amount.
  • Steps persist. A gap session with several times normal volume can move OBV more than weeks of ordinary sessions, and that step stays in the total.

When OBV jumps, look at the candle and the volume bar of that session before reading anything into the line. The guide to stock price gaps covers how gaps form.

On-balance volume versus Chaikin Money Flow

Chaikin Money Flow, created by Marc Chaikin, also combines price and volume, but it asks where each session closed within its own high–low range rather than whether it closed above the prior close.

money flow multiplier = ((close − low) − (high − close)) ÷ (high − low)
money flow volume = multiplier × volume
CMF = (sum of money flow volume over n sessions) ÷ (sum of volume over n sessions)
n
The window, commonly 20 or 21 sessions.
OBV and Chaikin Money Flow
AspectOBVChaikin Money Flow
Price inputClose versus prior closeThe close’s position within the session’s range
Volume weightingAll or nothingPartial: from −1 to +1 times volume
WindowCumulative from the startRolling, commonly 20 or 21 sessions
ScaleUnbounded; the level is arbitraryBetween −1 and +1
Gap sessionsA gap counts through the closeA session that gaps up and closes at its low counts as selling

Edge case: if a session’s high equals its low, the multiplier divides by zero and is undefined for that session; some software treats such a session as contributing nothing. See Chaikin Money Flow and the related accumulation/distribution line for the full calculations.

Limitations of on-balance volume

OBV is simple by design, and most of its limits follow from the all-or-nothing rule.

  • The level is arbitrary; only direction and swings carry information.
  • A tiny gain adds the whole session’s volume, and a tiny loss subtracts it.
  • Gap and news sessions can dominate the line for a long time.
  • Volume figures can differ between data sources, so OBV levels differ between platforms.
  • There is no lookback. A heavy session from long ago still sits in the total, although it no longer affects the slope.
  • Divergences can persist, and an OBV breakout can fail.

Sources

  • Joseph E. Granville, Granville’s New Key to Stock Market Profits (Prentice-Hall, 1963)

Read our data and methodology notes for calculation context. This guide explains research tools and observations. It does not recommend a trade or investment.

Follow your curiosity

One good question leads to another.

All guides
Make room for better research

Put your curiosity to work.

Build a scan with filters or CleverScan rules. Explore the results. Find your next idea.

Open a stock chart