On-Balance Volume: The Running Volume Total That Can Lead Price
On-Balance Volume is one running total: add the whole bar's volume on an up close, subtract it on a down close, change nothing on a flat close. The exact formula with a worked example, why only the slope matters, both divergence reads, the sideways-range accumulation signal, how it differs from the Accumulation/Distribution Line, and the conditions where a cumulative volume line stops meaning anything.
On-Balance Volume is the simplest thing on the indicator menu and probably the most often described wrong. There is no lookback period. There is no smoothing, no band, no scale. There is one running total, and every bar does exactly one of three things to it: adds its entire volume, subtracts its entire volume, or leaves it alone. Which of those happens is decided by a single comparison, this bar's close against the previous bar's close, and nothing else in the bar gets a vote. That crudeness is the whole design. Whether it is a strength depends entirely on what you are asking the line to tell you.
Quick Answer
On-Balance Volume (OBV) is a cumulative volume total. If today's close is above yesterday's, add today's entire volume. If it is below, subtract today's entire volume. If the close is unchanged, the total does not move. Joseph Granville published it in 1963 on the premise that volume precedes price. The absolute number is meaningless because the total starts from an arbitrary point, so you read only the direction of the line and the sequence of its own highs and lows. Rising OBV alongside rising price confirms the trend. OBV failing to confirm a new price high or low is a divergence, and divergences are common enough that they need a separate trigger before they are worth acting on.
The rest of this is the detail that sentence skips: the exact three-rule formula with a worked example you can check by hand, what the binary classification throws away, how the trend-confirmation and divergence reads actually work, the accumulation signal in a sideways range, and the precise mechanical difference between OBV and the Accumulation/Distribution Line, which is the comparison people most often get backwards.
What Is On-Balance Volume?
OBV is a single line, usually plotted in a pane beneath price, representing a running tally of volume that has been signed by price direction. Joseph Granville introduced it in his 1963 book Granville's New Key to Stock Market Profits, and the idea he built it on is stated in four words that get quoted in every write-up since: volume precedes price.
The claim behind those four words is worth unpacking, because it is doing all the work. Granville's argument was that large participants cannot build or unload a position in one print. They accumulate over days, and while they are doing it the share count changes hands faster than the price does, so the footprint shows up in volume before it shows up in the chart. Sign the volume by direction, keep a running total, and you get a line that is supposed to turn before price does. That is a hypothesis about market microstructure, not a mathematical result, and you should hold it as one. The construction is exact; the premise it is built on is a claim.
What makes OBV unusual among volume tools is how little it does with the volume. A volume-weighted average price blends every print into a price level, which is why the difference between VWAP and a volume-weighted moving average comes down to how each one weights the bars. OBV weights nothing. Every bar in the sample is treated identically in kind, and the only variable is its raw size and its sign. A one-million-share bar and a ten-million-share bar both count fully, in the direction their close pointed.
How Is On-Balance Volume Calculated?
Three rules, and they are the whole indicator. There is nothing else to configure.
Close above the prior close:OBV = prior OBV + this bar's volume
Close below the prior close:OBV = prior OBV minus this bar's volume
Close equal to the prior close: OBV = prior OBV, unchanged
That formulation matches the StockCharts ChartSchool entry on On-Balance Volume and Fidelity's technical indicator guide page for OBV, and unlike most indicators there is no settings argument to have about it. There is no period to pick, no smoothing choice, and no widely used variant of the three branches. The only thing that reliably differs between two charts of the same stock is where the counting started, which we come back to.
Here is the arithmetic over eight bars. The prices and volumes are made up, chosen to make the mechanics visible rather than to describe any real security, and the total is anchored at zero on the first bar because it has no prior close to compare against.
| Bar | Close | Direction | Volume | Applied to the total | Running OBV |
|---|---|---|---|---|---|
| 1 | 42.10 | anchor bar, no prior close | 1,400,000 | starting value | 0 |
| 2 | 42.85 | up (42.85 > 42.10) | 1,900,000 | +1,900,000 | 1,900,000 |
| 3 | 42.40 | down (42.40 < 42.85) | 1,100,000 | -1,100,000 | 800,000 |
| 4 | 42.40 | unchanged (42.40 = 42.40) | 900,000 | nothing at all | 800,000 |
| 5 | 43.60 | up (43.60 > 42.40) | 3,200,000 | +3,200,000 | 4,000,000 |
| 6 | 43.95 | up (43.95 > 43.60) | 800,000 | +800,000 | 4,800,000 |
| 7 | 43.05 | down (43.05 < 43.95) | 2,600,000 | -2,600,000 | 2,200,000 |
| 8 | 43.30 | up (43.30 > 43.05) | 1,000,000 | +1,000,000 | 3,200,000 |
Two rows in that table are worth stopping on. Bar 4 traded 900,000 shares and closed at exactly the same price as bar 3, so the flat-day rule discards all 900,000 of them. They are not counted small. They are not counted at all. And compare bars 5 and 6: bar 5 gained 1.20 on 3.2 million shares, bar 6 gained 0.35 on 800,000. OBV treats them as the same kind of event and the difference between their contributions is entirely a difference in volume, with the size of the price move contributing nothing. A close one cent higher adds exactly as much as a close four dollars higher would have.
Eight bars, three panes, one running total
Look at the end of the sample and you can see the shape of the reads that come later. Between bar 5 and bar 8 price finished lower, 43.60 down to 43.30, while the volume total also finished lower, 4.0 million down to 3.2 million. Price and total agree there. When they stop agreeing is when OBV starts being interesting.
What Does OBV Ignore?
Everything except two numbers. The close, and the volume. The open is not consulted. The high is not consulted. The low is not consulted. How far price travelled is not consulted. Where the close landed within the bar's own range, which is the thing most volume-flow indicators are built around, is not consulted either.
The consequence shows up hardest on gap days. Picture a stock that gaps down 3% at the open, sells off for another twenty minutes, then grinds up for five hours and closes on its high of the day, still two percent below yesterday's close. Visually that is a bar that screams buying: a long lower wick, a close pinned to the top of the range, real size in the afternoon. OBV subtracts every single share of it, because the only test it runs is whether the close finished above yesterday's, and it did not. Flip the scenario and the same bluntness works the other way: a stock that gaps up, fades all day, and closes a penny above yesterday still contributes its entire volume as buying.
This is not a bug to route around. It is the definition, and it is the fact that separates OBV from every range-weighted volume indicator, which is the comparison we get to further down. It does mean that on a chart full of gaps, OBV and your own eyes will disagree about individual bars fairly often, and OBV will be mechanically right and descriptively odd at the same time.
How Do You Read an On-Balance Volume Chart?
Start with the rule that saves the most confusion: the number on the axis means nothing. OBV is a cumulative total anchored wherever your platform started counting, which is a function of how much history got loaded rather than anything about the stock. Load two years and OBV reads 40 million. Load six months of the same stock and it reads 3 million. Same shape in the overlapping segment, completely different numbers. Both sources cited above state this plainly, that the absolute value is not important and only direction counts, and it is the thing to internalise before anything else.
So what you read is slope, and the line's own structure. Because OBV is a line like any other, you can treat its peaks and troughs the same way you would treat price structure and run a trendline across its swing lows to see when the slope breaks. An OBV making higher highs and higher lows while price makes higher highs and higher lows is the confirmation case: participation is expanding in the direction the trend is already going, and the conventional read is that the trend is likely to continue. Invert every term for a downtrend. Lower OBV lows alongside lower price lows say the selling has volume behind it.
Confirmation is a weaker claim than it sounds, and it is worth being honest about why. When price rises, more bars close up than down, so OBV rises almost mechanically. A rising OBV in a rising market is close to tautological a lot of the time. The information lives in the cases where the mechanical expectation does not hold: the uptrend where OBV flattens out, the new high that OBV declines to follow, the range where OBV is climbing with no price move to justify it. Those are the states worth looking for, which is why reading volume as confirmation on a momentum chart is more about the disagreements than the agreements.
What Is an On-Balance Volume Divergence?
A divergence is price and OBV making opposite statements about the same swing. There are two, and they are mirror images.
Bearish divergence
Price makes a higher high. OBV makes a lower high, or fails to make a new high at all. The read is that the second push was accomplished on less net buying volume than the first one, so the advance is running on thinner support than it was. It does not say the trend is over. It says the fuel behind the most recent leg was lighter, which is a reason to tighten up rather than a reason to short.
Bullish divergence
Price makes a lower low. OBV makes a higher low, or fails to confirm the new low. The read is that the second flush happened without the selling volume the first one had, so the pressure driving price down is easing. Same caveat inverted: easing selling pressure is not buying pressure, and a stock can grind sideways for a long time between those two states.
The two divergences, side by side
Now the part that most write-ups bury. OBV divergences are common. On any liquid chart over a few months you will find several, and a meaningful share of them resolve by the divergence simply disappearing, price keeps going and OBV eventually catches up. Every serious treatment of the indicator therefore adds a confirmation step rather than treating the divergence as the signal: a trendline break on price, a moving average cross, a break of structure, or a second indicator agreeing. The divergence is the reason to start watching. The trigger is the reason to act. That is the same layered logic behind deciding how many signals you require before taking a trade, and OBV on its own is one signal, not a system.
One more honest note on divergences: they have no duration rule. A divergence three bars old and a divergence three months old look the same on the chart, and the longer one is not stronger evidence. If anything it is weaker, because a divergence that has persisted through an entire trend leg has already been wrong once.
OBV turned up while price kept grinding down. That is one line disagreeing with another line.
Upload the screenshot and SnapPChart reads that single image against a fixed rubric, then returns a setup grade, an entry, a stop with the reasoning behind the level, targets, and the reward-to-risk those levels imply. Arguing with the grade is cheaper than arguing with the fill.
Grade this chartRising OBV While Price Chops Sideways
This is the read that makes OBV worth keeping on the chart, and it is the one the cumulative construction is genuinely suited to. When price goes nowhere for a stretch, a range, a base, a flat consolidation, the price chart contains almost no information by design. OBV does not have to be flat over the same stretch, because the bars inside a sideways range still close up or down and their volume still gets signed.
A range where OBV climbs steadily is the conventional accumulation read: shares are changing hands with a net upward sign while price refuses to move, which the literature frames as quiet buying ahead of a possible upside break. A range where OBV declines steadily is distribution, and the expected resolution is downward. Fidelity's guide states both halves of that read directly, and it is the specific claim most people actually use OBV for.
Two conditions make the difference between a real version of that signal and a story you talked yourself into. The slope has to be persistent rather than the product of one or two enormous bars, because a single 8-million-share day inside a quiet range will tilt the whole line and look exactly like a trend. And the range needs a defined edge, because the signal is only tradeable when you can name the level it resolves through. That is a question about where the range boundaries actually sit, and it is a separate piece of work from reading the volume line. When the break does come, it is graded on the usual criteria, and the momentum playbook for trading an expansion out of a base does not change just because OBV gave you advance notice.
OBV vs the Accumulation/Distribution Line
These two get conflated constantly, and the difference is a single design decision. Both are cumulative volume lines. Both are unbounded. Both are read by slope rather than by level. The split is what each one uses to decide how much of a bar's volume counts and in which direction.
OBV, as covered above, does a binary classification on close versus prior close and then applies the whole bar. The Accumulation/Distribution Line ignores the previous bar entirely and instead computes a Money Flow Multiplier from where the close sat inside that bar's own high-low range, [(Close - Low) - (High - Close)] / (High - Low), which runs from -1 to +1, then applies that fraction of the volume. The StockCharts reference page for the Accumulation/Distribution Line describes that choice as completely ignoring the change from one period to the next, which is the cleanest way to put it. Each indicator is deliberately blind to the exact thing the other one looks at.
| Mechanic | On-Balance Volume | Accumulation/Distribution Line |
|---|---|---|
| What the bar is compared against | The previous bar's close, and nothing else | Its own high and low. The previous bar is not consulted |
| How much volume gets applied | All of it, every time. The whole bar's volume, added or subtracted | A fraction of it, scaled by where the close sat inside the range |
| The weighting term | None. The bar is effectively multiplied by +1, -1 or 0 | Money Flow Multiplier: [(Close - Low) - (High - Close)] / (High - Low), which runs from -1 to +1 |
| A bar that closes 1 cent up, mid-range | Adds the entire volume as buying | Adds close to nothing, because the multiplier is near zero |
| A bar that gaps down hard, then closes on its high | Subtracts the entire volume, if the close is still below yesterday's | Adds almost the entire volume, because the close is at the top of the range |
| What it is blind to | Where the close landed inside the bar, and how far price actually moved | The relationship between this bar and the previous one |
| Bounded? | No. A running cumulative total with no ceiling or floor | No. Also cumulative, though each bar's contribution is bounded |
| Is the absolute level meaningful? | No. Anchored arbitrarily, so only slope and its own highs and lows read | No, for the same reason |
| Flat-close bars | Discarded entirely. The volume never enters the total | Still counted, because a flat close still sits somewhere in its range |
The practical upshot: on a chart of long-bodied bars that close near their extremes, the two lines look nearly identical and comparing them is a waste of screen space. On a chart full of gaps, long wicks and mid-range closes, they can point in opposite directions for weeks, and neither is broken when they do. They are answering different questions.
There is a third member of this family worth naming so you can keep the three straight. Chaikin Money Flow weights each bar by where its close landed inside its own range and then divides by total volume over a lookback window, which bounds it between -1 and +1, while OBV is a pure equal-weight-per-bar running cumulative total that adds or subtracts the entire bar's volume off the close-versus-prior-close test alone, with no range-position weighting and no bounds at either end. One is a windowed, scaled oscillator. The other is an unbounded tally that never resets.
Where On-Balance Volume Breaks
None of these are faults in the formula. They are what a cumulative total built on a binary test does when the inputs stop behaving like the inputs it assumed.
| Condition | What OBV does | Why it misleads |
|---|---|---|
| A one-off news or earnings volume spike | Adds or subtracts a bar that can be five or ten times a normal day in one step | The line takes a vertical jump that looks structural and is actually one event. Give it several sessions to settle before reading a new slope off it |
| A single large block print | Treats one negotiated cross as ordinary participation and applies all of it | One counterparty's rebalance becomes a visible step in the cumulative line, which is not what anybody means by accumulation |
| A thin, low-volume name | Works exactly as specified on bars where a few hundred shares set the close | The sign of every bar is decided by whoever traded last, so the line is a record of noise with a smooth-looking shape |
| Spot forex | Plots off whatever the platform labels volume, which is almost always tick count | Decentralized markets have no consolidated volume tape, so the total is a tally of price updates per bar rather than size traded. Two brokers give two different OBV lines |
| Frequent unchanged closes | Throws the whole bar away under the flat-day rule | Real volume disappears from the total. Rare on a liquid penny-quoted stock, common on wide-tick instruments and in dead intraday tape |
| A gap-heavy chart | Classifies the entire session by close versus prior close, gap included | A day that opened down 3% and rallied for six hours still subtracts every share if the close finished below yesterday's |
| A divergence that never resolves | Keeps diverging from price for weeks without a reversal arriving | Divergences are common, and a long one is not a stronger signal. Without a confirming trigger you are short a trend for the length of the trend |
| A halt or a locked bar | Prints a close equal to the previous close and contributes zero | The flattest part of the line is sometimes the most eventful part of the session, which is the wrong way round |
The volume-spike row is the one that catches people most often. A cumulative line has no mechanism for deciding that a bar was unrepresentative, so an earnings day that trades eight times normal volume puts a step into the total that will still be visible months later, and the slope measured across that step is not a slope at all. The usual advice is to let several sessions pass before reading a new trend off the line, which is a reasonable heuristic and also an admission that the indicator cannot tell a regime change from an event.
The forex row deserves its own sentence because it is a structural limit rather than a calibration issue. Spot currency trading is decentralized with no consolidated tape, so there is no authoritative volume figure to sign in the first place. What your platform plots is tick volume, the number of price updates inside the bar, sourced from your own broker's feed. The arithmetic still runs. What it produces is a cumulative tally of quote activity, and two brokers will hand you two different lines for the same pair on the same day. The same caution applies, in a milder form, to thinly traded small caps and to any instrument where a handful of prints set the close.
Where OBV Fits on a Real Chart
It answers one question well: over this stretch of bars, has volume been net positive or net negative by the close-to-close test, and is that changing. That is genuinely something a price chart does not tell you, and the sideways-range version of it is the highest-value read the indicator offers. What it does not do is locate an entry, define a stop, or tell you whether the structure is worth trading. It has no opinion on levels because it has no concept of price at all past the direction of one comparison. The sensible ordering is to establish the trend and the levels first, then use OBV to ask whether participation agrees, which is the same layering that runs through the wider technical analysis overview and through the question of which indicators are actually worth having on an intraday chart.
What a screenshot read can and cannot see here
Worth being straight about, since this site sells a tool. SnapPChart has no On-Balance Volume field. It does not sign volume by close direction, it does not keep a cumulative total, and it carries no state for an OBV value the way it does for market structure and trend, breaks of structure and changes of character, liquidity sweeps, fair value gaps and order blocks, the moving average stack, the VWAP relationship, MACD, volume participation, support and resistance, and candlestick patterns. What it does is read a chart screenshot you upload. So if you plot OBV in a lower pane on your own platform before taking that screenshot, that line is part of what the analysis sees, as a shape drawn beneath the price chart. That is a picture of a cumulative line, not a verified computed total: it cannot tell you the step halfway across the pane was one earnings bar, it cannot know how much history your platform anchored the total on, and it cannot check whether the volume figure underneath it was shares or tick count. Which chart states a screenshot-based read genuinely carries and which it only infers from shape is the subject of the wider guide to how AI reads a chart, and a neutral description of what a single chart read covers sits on the AI chart analysis page. If OBV is the reason you are taking the trade, validating OBV stays your job.
Add the whole bar's volume on an up close, subtract the whole bar's volume on a down close, change nothing on a flat close. Ignore the number, read the slope and the line's own swing highs and lows. Agreement with price confirms, disagreement is a divergence worth watching but not worth acting on until something else triggers. The best single use is a tight range with a persistent OBV slope, because that is the one place price itself is telling you nothing. And remember what the formula throws away: the entire range of every bar, the size of every move, and every share that traded on a day that closed flat.
Frequently Asked Questions
What OBV value is bullish?
There isn't one, and this is the single most common misunderstanding about the indicator. OBV is a running total that started from an arbitrary number on whatever bar your platform began counting from, so an OBV of 12.4 million and an OBV of negative 300,000 carry no comparable meaning at all, not between two stocks and not even between two charts of the same stock with different amounts of history loaded. There is no overbought line, no oversold line, and no threshold. The only readable properties are the slope of the line and the sequence of its own highs and lows. Anyone quoting you an OBV level to buy at has stopped describing the indicator.
Is on balance volume a leading indicator?
It is built on a leading premise and constructed from lagging inputs, which is a more useful way to hold it than a yes or no. The premise is Granville's: volume moves before price does, so a volume-derived line should turn first. The construction is a cumulative total of bars that have already closed, which means nothing in it can be known before the bar is finished. What you get in practice is an indicator that sometimes turns a few bars ahead of price and sometimes turns a few bars behind it, and you only find out which afterwards. Calling it leading suggests a reliability the mechanics do not support.
Should you put a moving average on the OBV line?
Plenty of traders do, and it is a reasonable thing to try, as long as you know what it costs you. A moving average of OBV gives you a crossover you can actually define a rule against, which the raw line does not offer, and it damps the jump that a single huge-volume bar puts into the total. What it takes away is the thing OBV is good at, which is showing you the exact bar where the cumulative flow changed direction. A smoothed OBV crossing its average is a lagged version of an already-cumulative series, so you are now two derivations away from the tape. Try it on your own charts before you adopt the rule from someone else's.
Why does my OBV line look different on two platforms?
Three usual causes. The starting point: OBV is anchored wherever the loaded history begins, so a chart with two years of bars and a chart with six months of bars produce entirely different numbers even though the shape of the recent segment is identical. Extended-hours data: if one platform folds pre-market and after-hours volume into the daily bar and the other does not, both the close comparison and the volume figure change, which can flip a bar's sign. And split or dividend adjustment of the historical series. Check whether the shape of the last few months agrees rather than comparing the numbers, because the numbers were never supposed to agree.
Does OBV work on a 5-minute chart?
It plots fine and the arithmetic is unchanged, but two things shift under you. Intraday volume is front and back loaded, so the opening and closing ranges contribute far more to the total than the middle of the session does, and a line that looks like a steady accumulation trend is often two or three bars near the bell doing most of the work. And the overnight gap gets classified by the same blunt close-versus-prior-close rule as any other bar, so a gap that opens 2% down and then rallies all session still subtracts the entire day's volume if the close lands below yesterday's. Read the intraday version as a session-level participation tally, not as a month of accumulation compressed into an afternoon.
This article is for educational and informational purposes only and is not investment, financial or trading advice. The three-branch On-Balance Volume formula, the attribution to Joseph Granville and his 1963 book Granville's New Key to Stock Market Profits, the volume-precedes-price premise, the direction-not-level interpretation rule, the trend-confirmation and divergence conventions, the sideways-range accumulation and distribution reads, and the Money Flow Multiplier definition used by the Accumulation/Distribution Line are the conventional published accounts reproduced by charting platforms and reference sources. The eight-bar worked example, including every close, volume figure and running total in it, is an illustrative construction built so the arithmetic can be checked by hand; it is not a real security, a real trading session, or a market observation, and the gap-day and range scenarios described in the text are hypothetical illustrations rather than recorded events. The volume-precedes-price premise is presented as Granville's stated hypothesis and is reproduced here as such rather than as a verified or measured result; no study is cited for it and none is claimed. Nothing here is a backtest of my own, no rule set or indicator pairing described is claimed to be profitable, and no edge is claimed or implied. Indicator readings describe what price and volume have already done and do not predict what they will do next. Day trading and active trading carry a substantial risk of loss and are not suitable for every investor. SnapPChart grades a static chart screenshot you upload and returns a setup grade, entry, stop, targets and reasoning for that single image; it does not calculate On-Balance Volume, a cumulative volume total, an Accumulation/Distribution Line, Chaikin Money Flow or any other indicator value itself, does not track indicator states it has not been shown, does not scan the market, and does not track your account, positions or P&L. It can only account for indicators that are visibly drawn on the image you upload. Do your own analysis, size positions so that being wrong is survivable, and consider speaking to a licensed financial professional about your own circumstances before trading.
Writes about AI-assisted day trading, technical analysis, and the systems traders actually use to stay disciplined.
The volume line agrees with you. The setup is a separate question, and it is the one that costs money.
A rising cumulative total tells you participation has been net positive. It says nothing about whether your entry, your stop and your first target add up to a trade worth taking. Upload the screenshot and SnapPChart reads that one image against a fixed rubric, then returns a setup grade, an entry, a stop with the reasoning behind the level, targets, and the reward-to-risk those levels imply. One skipped bad trade covers it.