Skip to main content
← All research papers

Explainer · Kresmion Research

What Is VWAP? The Volume-Weighted Average Price Explained With a Worked Example

October 1, 2026 · 9 min read

Published by Kresmion Research. Read our editorial approach and data methodology.

ShareXLinkedInReddit
chartingdata-literacy

VWAP, the volume-weighted average price, is the average price an asset traded at over a period, with each price weighted by the number of shares traded at it.

VWAP is the line many intraday charts draw through the day's bars, and the benchmark against which many institutional trades are measured. This page covers what VWAP measures and where it comes from, how it is calculated from chart bars, a worked example done by hand, why it differs from a simple average, how the starting point of the calculation changes it, and what Kresmion's charts compute, including where VWAP does not exist. It is descriptive throughout.

What VWAP measures

A simple average of prices treats every price the same. VWAP counts each price as many times as it traded: a price at which 10,000 shares changed hands weighs ten times as much as one at which 1,000 did. The result is the average price paid per share by everyone who traded over the period.

That is why VWAP is used as a yardstick for execution. Stephen Berkowitz, Dennis Logue and Eugene Noser used it as the benchmark for measuring the cost of institutional trades in a 1988 Journal of Finance paper, The Total Cost of Transactions on the NYSE, and StockCharts describes VWAP as originally developed by institutional investors. The comparison it makes is simple: a purchase executed below the day's VWAP paid less than the average share traded that day, and a sale executed above it received more. It describes how one execution compares with the session as a whole. Two details limit the comparison: the full-session VWAP is known only after the close, and a large order is itself part of the volume, so it moves the VWAP it is measured against.

How it is calculated from chart bars

The exact VWAP uses every trade: the sum of each trade's price times its size, divided by the total number of shares traded. Charting platforms usually work from bars instead, and approximate the price of each bar with its typical price, the average of its high, low and close. StockCharts' ChartSchool describes the steps:

1. For each bar, compute the typical price: (high + low + close) / 3. 2. Multiply the typical price by the bar's volume. 3. Keep a running total of those products, and a running total of volume. 4. VWAP at each bar is the running total of price times volume divided by the running total of volume.

Because both totals run from the start of the period, VWAP is cumulative: every bar since the starting point stays in the calculation, and a new bar's weight is its volume divided by all the volume since the anchor. That share tends to shrink as the session goes on, though a heavy bar late in the day can still move the line more than a light one earlier.

A worked example

Take five hypothetical 5-minute bars from the start of a trading session:

BarHighLowCloseTypical priceVolumePrice x volumeRunning VWAP
150.3049.9050.1050.1010,000501,00050.1000
250.6050.2050.4050.404,000201,60050.1857
350.8050.4050.6050.603,000151,80050.2588
450.9050.6050.7550.752,000101,50050.3105
551.1050.8050.9550.951,00050,95050.3425

After bar 5 the running totals are 1,006,850 for price times volume and 20,000 shares, so VWAP is 1,006,850 / 20,000 = 50.3425.

On the first bar VWAP equals that bar's typical price, since the volume cancels out. After that, the heavy first bar keeps pulling the line down: half of all the shares traded so far changed hands around 50.10.

Why it differs from a simple average

The simple average of the same five typical prices is (50.10 + 50.40 + 50.60 + 50.75 + 50.95) / 5 = 50.56, about 22 cents above the VWAP. The prices rose through the five bars while the volume fell, so the simple average gives the later, thinly traded prices as much say as the busy opening bar, and VWAP does not.

The latest close, 50.95, sits above both. A reader of the chart sees the price above its VWAP; what that states is that the last trade was above the average price per share paid since the session began, nothing more.

The starting point changes the number

VWAP has no length setting like a moving average. What it has instead is an anchor, the bar where the running totals start.

  • Session VWAP starts at the open and resets every day. StockCharts describes VWAP as calculated from intraday data for a single day, and notes that it is not defined for daily, weekly or monthly bars, since a daily bar holds a whole session's trading.
  • Anchored VWAP starts at a chosen bar, such as the day of an earnings release, and runs from there across as many sessions as follow it.
  • Volume-weighted moving average (VWMA) is a different calculation with a similar name: a rolling average over the last N bars, each weighted by its volume, with the oldest bar dropping out as a new one arrives.

Two lines labelled VWAP can therefore show different numbers on the same chart if their anchors differ, and a VWAP that started weeks ago moves very little on any one day because so much volume already sits in its totals.

Standard deviation bands are sometimes drawn around VWAP, measuring how far the typical prices have spread around it, weighted by volume in the same way. They work like the bands in what Bollinger Bands are, except that the centre line is cumulative rather than a fixed-length average.

VWAP in Kresmion's charts

Kresmion's charting workspace lists VWAP in its Indicators menu, drawn on the price pane over the candles. It uses the typical price and running totals described above. Its anchor setting has three options:

  • Auto, the default: on intraday intervals from 1 minute to 4 hours the totals reset at each UTC day boundary, which is session VWAP; on daily, weekly and monthly bars the line runs cumulatively from the first bar loaded, which is VWAP anchored at the start of the chart's range.
  • Session (UTC day): resets at each UTC day boundary on any interval.
  • Whole range: runs from the first bar loaded to the last.

For US stocks the regular session, 9:30 a.m. to 4 p.m. Eastern, falls inside a single UTC day, so the daily reset lines up with the session. For crypto pairs, which trade around the clock, the session is the UTC calendar day. Optional bands can be switched on at a chosen multiple of the volume-weighted standard deviation, 1 by default. The same menu also has a separate VWMA indicator, 20 bars by default.

VWAP needs volume, and not every market Kresmion charts carries it. Spot currency pairs in Kresmion's price feed come with zero volume, so VWAP draws no line on them; on any chart it draws no point until some volume has traded since the anchor. The charts open with a free Kresmion account.

Honest limitations

Chart VWAP is an approximation: it assumes each bar's volume traded at its typical price, so it can differ from a trade-by-trade VWAP, and from a platform that uses a different price per bar, bar interval or session definition. It is cumulative and backward-looking, built only from trades that have already happened, and it says nothing about where the next trade prints. Its value depends entirely on the anchor, so a VWAP figure without its starting point is incomplete. The bars in the worked example are invented.

Key takeaways

PointDetail
DefinitionTotal value traded divided by total volume over a period: the average price per share traded
Bar formulaRunning sum of typical price x volume, divided by running sum of volume
Worked exampleFive bars, 1,006,850 / 20,000 = 50.3425, against a simple average of 50.56
OriginUsed as the execution benchmark in Berkowitz, Logue and Noser (Journal of Finance, 1988)
AnchorSession VWAP resets daily; anchored VWAP starts at a chosen bar; VWMA is a rolling window
Needs volumeNo volume, no VWAP: Kresmion's spot FX bars carry none, so no line is drawn

Frequently asked questions

What is the difference between VWAP and a moving average?

A moving average uses a fixed number of recent bars and drops the oldest as a new one arrives, weighting each equally or by recency. VWAP weights each price by its volume and keeps every bar since its anchor, usually the session open. The volume-weighted moving average sits between the two: volume-weighted, over a rolling window.

Why does VWAP reset every day?

Session VWAP measures the average price per share traded during one session, which is the figure an execution is compared against. Starting fresh each day keeps it about that session. A VWAP anchored further back is a different measure and is labelled as anchored.

Can VWAP be used on a daily chart?

Session VWAP cannot, since one daily bar is one whole session. A daily chart can show an anchored VWAP instead. Kresmion's charts draw one on daily and longer bars when the anchor is left on Auto, starting from the first bar loaded, so the chart's range sets the starting day.

What does it mean when the price is above VWAP?

It means the latest trade was above the average price per share paid since the VWAP's starting point. It describes where the price sits against that average and does not indicate what the next trade will be.

This page is information, not investment advice.

---

Source: Stephen A. Berkowitz, Dennis E. Logue and Eugene A. Noser Jr., The Total Cost of Transactions on the NYSE, The Journal of Finance 43(1), 1988, pages 97 to 112, doi 10.1111/j.1540-6261.1988.tb02591.x ; StockCharts ChartSchool, Volume-Weighted Average Price (VWAP), https://chartschool.stockcharts.com/table-of-contents/technical-indicators-and-overlays/technical-overlays/volume-weighted-average-price-vwap ; Kresmion chart engine (VWAP and VWMA indicators) and price history feed. Bars in the worked example are invented.

Kresmion Research.

Sources
FREE, NO ACCOUNT

Put this to work

Real filings, 13F flows, and positioning reads with the source on every number, in your inbox when there is something in the data, or live on Telegram. Free, no account.

Get the morning brief by email

No fixed schedule: it goes out when the data has something in it. Unsubscribe anytime.

Or get live alerts on Telegram
Join on Telegram

One tap. Live alerts, no email needed.

Kresmion publishes information, not investment advice. See our methodology and the latest research notes.