What Is VWAP? The Formula Worked by Hand on Real SPY Bars
VWAP is the volume weighted average price: the running total of price times volume divided by the running total of volume, restarted at the beginning of each session. It answers what the average traded price of the session has been, weighted so that busy bars count more than quiet ones.
Covered on this page: TradingView.
VWAP (volume weighted average price) is the average price paid so far today, with every bar weighted by how many shares changed hands in it. It starts again at each open.
Below, the sum is done by hand on three real SPY bars, and 170 sessions of four index funds show what its position at 10:30 did and did not say about the close.
How it works
Three numbers per bar are enough. Typical price is the bar’s high plus low plus close, divided by three, which is the default input on TradingView (it calls it hlc3). Multiply it by the bar’s volume. Keep one running total of those products and a second running total of volume, both starting at the first bar of the session.
VWAP = Σ(typical price × volume) / Σ(volume)
Divide the first total by the second and you have the line’s value at that bar. Nothing drops out of the window: a bar from 9:30 is still inside the 3:55 value, which is the main structural difference from a moving average.
Exchanges and brokers compute an exact version from every trade, and chart platforms approximate it from bars. On liquid funds the two land close together; on thin stocks, bar size changes the answer more.
A worked example: SPY, 16 October 2026
These are the first three regular-session 5-minute bars of SPY on Friday 16 October 2026, as Yahoo Finance recorded them. The sums are done by hand, rounded to the cent where shown.
| bar | high | low | close | volume | typical price | price × volume |
|---|---|---|---|---|---|---|
| 9:30 | $773.25 | $772.245 | $772.32 | 1,422,766 | $772.605 | $1,099.24 million |
| 9:35 | $772.495 | $771.40 | $771.67 | 626,109 | $771.855 | $483.27 million |
| 9:40 | $772.20 | $771.07 | $772.20 | 1,680,021 | $771.823 | $1,296.68 million |
After the first bar, VWAP is simply that bar’s typical price, $772.605, because there is only one bar in it.
After the second bar, the price-times-volume total is $1,582.50 million and the volume total is 2,048,875 shares. Dividing gives $772.38. A plain average of the two typical prices would be $772.23. The line sits higher than the plain average because the first bar traded more than twice as many shares.
After the third bar, the totals are $2,879.18 million and 3,728,896 shares, so VWAP is $772.13. The plain average of three is $772.09. The third bar was the heaviest of the three, so its lower price pulled the line down hard: a move of 25 cents in one bar.
By 10:30 the reading was “below”. The 10:25 bar closed at $770.91 with VWAP at $771.79. SPY stayed on that side.
The last bar closed at $763.31 against a session VWAP of $765.84. The plain running average finished at $766.57, 73 cents (9.55 basis points) higher than VWAP, because the heavy selling late in the day counted for more in the weighted line.
What the weighting changes, and what it does not
This is the part most definitions skip. A plain running average of typical price uses the same bars with every bar counted once. The difference between that and VWAP is the whole contribution of volume.
On the 16 October session the gap was 9.55 basis points at the close. Across all 170 sessions measured below, the median gap at the close was 3.04 basis points, with the largest 30.70 basis points (SPY, 16 September 2026). On SPY near $765, 3 basis points is about 23 cents.
Did the weighting ever change the answer? In 6 of 170 sessions the close was above one line and below the other. In the other 164 both lines gave the same above-or-below reading.
So volume matters most on days when heavy trading clusters at one end of the range, and on an ordinary day the line is close to a plain average.
That is also why it moves less late in the day: by mid-afternoon each new bar is a small slice of the total. How much less, bar by bar, is measured on VWAP strategies, along with the standard-deviation bands (built like Bollinger Bands but around VWAP) and the setups traders build on the line.
Why institutions care about it
VWAP started as a yardstick for execution, not a chart signal. Wikipedia’s history credits the first VWAP-benchmarked trade to 1984, for a pension fund. A broker filling a large buy order below the day’s VWAP did better than the average participant; above it, worse.
That gives the line a concrete meaning that most indicators lack. It is the price the session’s volume paid on average, so being above it means the last trade is higher than what the typical share cost today.
It does not mean that large orders defend the line. A fund working an order across the day trades in proportion to volume, wherever price is. Nothing in the benchmark requires anyone to buy at VWAP.
The reset, and settings that change the line
Session VWAP restarts at the first bar of each regular session. TradingView’s anchor setting can instead restart it each week, month, quarter or year, or at earnings, dividends or splits. All of those carry the same name on the chart.
A line restarted at a chosen event is an anchored VWAP, a separate tool with its own uses. The difference, and how much more often price crosses the daily line, is laid out in anchored VWAP vs VWAP.
Two more settings matter. Pre-market bars, if your chart includes them, enter the sums and shift the early values. And a daily chart has no session VWAP to show, because one bar is the whole session.
The original data
What was tested. If you take the page’s one reading, above or below VWAP, at 10:30 New York time, how often was price on the same side at the final 5-minute bar?
The rule. Session = the 78 regular 5-minute bars from 9:30 to 3:55; any session with a missing or zero-volume bar is left out.
Side at 10:30 = the 10:25 bar’s close against VWAP after that bar. Side at the close = the 3:55 bar’s close against VWAP after it. Chance level = the match rate you would expect if the two sides were unrelated, from how often each side was “above”.
The sample. SPY 39 sessions, QQQ 21, IWM 53 and DIA 57, between 7 August and 30 October 2026: 170 in all, out of 240 in the four files. The other 70 had at least one missing or zero-volume 5-minute bar, most of them on QQQ.
Yahoo keeps 60 days of 5-minute bars, so this is one season, and the four funds trade on the same days, which makes the sessions less independent than the count suggests.
Result. The side matched in 99 of 170 sessions, 58.24%, against a chance level of 50.29%. The standard error at that sample size is 3.83 points, so the gap is about two standard errors.
Per fund. SPY matched 23 of 39 (58.97%), IWM 31 of 53 (58.49%) and DIA 35 of 57 (61.40%). QQQ matched 10 of 21 (47.62%), below chance.
How to read it. The early side leaned toward the closing side in this sample, by a margin that is small and only just outside chance. One season, overlapping funds and a single time cut-off are not enough to call it a pattern that lasts. It is a description of autumn 2026, not a rule for the next session.
The weighting test is from the same file: the VWAP-versus-plain-average gap at the close (median 3.04 basis points) and the 6 sessions where the two lines disagreed on the closing side. Every session is a row in the session file.
Across our study of 24,971 trading videos, 323 have VWAP in the title. The median one gets 6,568 views, 77% never pass 50,000, and the median length is 10.0 minutes.
That median sits above chart patterns at 2,307 and far below pivot points at 15,742. The corpus carries description text for 70 of those 323, and 2 of the 70 mention invalidation, failure, or what a bad read looks like.
When it fails
A sideways session
When price chops in a trading range, it crosses its own average again and again. That is what an average does, and every cross looks like a signal on the chart.
Late in the day
The weight of the morning makes the afternoon line slow to react. A sharp turn after lunch can run a long way before VWAP follows.
The wrong reset
A chart left on a weekly anchor, or one that includes pre-market bars, shows a different number from the session line most traders quote. Check the setting before comparing your read with anyone else’s.
Thin volume
On a stock that trades a few thousand shares a bar, one block can drag the line. The formula is the same; the average just rests on fewer trades.
Questions people ask
What does VWAP tell you?
The average price paid for the shares traded so far today, weighted by volume. Price above it means the last trade is higher than the typical share cost this session; below means lower.
Is VWAP a moving average?
No. A moving average uses a fixed window that slides and counts each bar equally. VWAP keeps every bar since the open and weights each by volume. In the 170 sessions above, the weighting moved the closing value a median 3.04 basis points from a plain average.
Does VWAP reset every day?
The standard session VWAP restarts at each open. Platforms let you change the period or anchor it to an event, which produces a different line under the same name.
Is price above VWAP bullish?
It says buyers today have paid less on average than the current price, nothing more. Here, the 10:30 side matched the closing side in 58.24% of sessions against a 50.29% chance level: a small lean, not a forecast.
Related
Volume is the input that sets VWAP apart from every price-only line, and its page covers what the number does and does not show.
Moving average is the line VWAP is most often mixed up with; the weighting test above shows how close the two can sit on a normal day.
Pivot points are the other session-bound levels here, built from yesterday’s prices instead of today’s volume.
The setups traders build on top of the line, and the band math, are on VWAP strategies. How it differs from a money-flow line that also weights by volume is in VWAP vs Chaikin money flow.
I use it as a single question at the open, which is whether we are above it or below it, and then I mostly leave it alone. What I do not do is treat a touch of it as a trade, because in a quiet session price crosses it constantly and you will find yourself taking eight of them. It is a description of where the session has been trading, and a description is worth having without being a signal.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money. Some links on this page earn a commission if you buy through them. It costs you nothing and it does not decide what appears here or in what order — how these pages are made is set out in our methodology.