Skip to content

Research notes

Trade VWAP vs candle typical price: why values differ

Two identical candles hide VWAPs of 106.20 and 93.80. A four-trade example and reconciliation worksheet show what OHLCV loses and turnover retains.

Matching ivory ceramic bowls hold stones at opposite ends, each with one lime pebble on a black surface.
Illustration for research notes; examples in this article are educational.

Trade VWAP weights every included execution price by its traded quantity. A candle-based VWAP instead weights a representative price, often HLC3, by the candle's total volume. The values differ because OHLCV does not preserve how much traded at each price. Two candles with identical OHLCV can therefore have different trade VWAPs, even when their time window and market match.

You can reproduce a chart's calculation correctly and still fail to reproduce an execution benchmark. Before investigating a discrepancy, find out whether the inputs are individual trades, candle prices or stored trade-value totals. More decimal places cannot restore information absent from the input.

Compare the inputs before comparing the values

For a spot market with prices quoted in USDT and quantities measured in base-asset units, the trade calculation is:

Trade VWAP = sum of (execution price × base quantity) ÷ sum of base quantity.

Every included trade contributes its own price and size. Databento's VWAP calculation tutorial demonstrates this with tick-level price and size fields, separately from its OHLCV calculation. Its example uses equity data; the weighted-average arithmetic also applies to the hypothetical spot examples here.

A candle approximation first chooses one price for each bar. Typical price, also called HLC3, is (high + low + close) ÷ 3. The calculation then becomes:

Candle VWAP approximation = sum of (HLC3 × bar base volume) ÷ sum of bar base volume.

TradingView documents that calculation and HLC3 as the default source for its VWAP indicator. Its source is configurable. This identifies a particular implementation, rather than proving every line named VWAP uses HLC3.

The word “typical” does not mean the price with the most trading. HLC3 averages three reported prices, giving the high and low the same influence whether either price saw one unit or thousands. Total candle volume supplies no allocation between those prices.

Keep the comparison window fixed while testing this difference. The VWAP session and event anchor guide explains the separate effect of changing the starting point. If your reference instead drops older bars as new ones arrive, check the volume weighted moving average guide for that rolling membership rule.

Two identical candles, two different trade VWAPs

These are hypothetical tapes for one spot market during the completed minute from 12:00:00 inclusive to 12:01:00 exclusive UTC. Each contains exactly four executions. Prices are USDT per base unit; quantities are base units. Fees are excluded. The only difference is the quantity assigned to the second and third executions.

Execution time, UTCPrice, USDTTape A quantityTape B quantity
12:00:0510011
12:00:151108018
12:00:35901880
12:00:5510011

Both candles open at 100, reach a high of 110 and a low of 90, close at 100, and report base volume of 100. Both also have a trade count of four. Their OHLCV summaries are identical.

Their traded values are different:

Tape A turnover = (100 × 1) + (110 × 80) + (90 × 18) + (100 × 1) = 10,620 USDT.

Tape B turnover = (100 × 1) + (110 × 18) + (90 × 80) + (100 × 1) = 9,380 USDT.

Divide each total by 100 base units. Tape A's trade VWAP is 106.20; Tape B's is 93.80. HLC3 is (110 + 90 + 100) ÷ 3 = 100 in both cases. Because there is only one candle in this comparison, weighting that price by its volume still returns 100.

MeasurementTape ATape B
Base volume100100
Quote turnover, USDT10,6209,380
Trade VWAP, USDT106.2093.80
HLC3 approximation, USDT100.00100.00
Approximation minus trade VWAP−6.20+6.20
Final close compared with trade VWAPBelowAbove

The same final price is below one tape's trade VWAP and above the other's. Neither the candle shape nor its trade count reveals that difference. A rule depending on “close above VWAP” can therefore classify the same OHLCV candle differently when its underlying trade allocation differs.

This deliberately wide price range makes the missing information visible. It is an arithmetic illustration, not a claim about normal discrepancies in a particular crypto pair. Real differences depend on that market's trades, bar intervals and data construction.

Smaller candles change the approximation

Splitting a minute into shorter intervals can retain more detail, because each interval gets its own high, low, close and volume. It still does not preserve every price–quantity pair inside each smaller interval.

For nonnegative quantities, a bar's trade VWAP lies between its low and high. HLC3 does too. Their absolute gap therefore cannot exceed the bar's high–low range. A narrower observed range constrains the possible local error, but switching to a shorter interval does not guarantee a smaller measured error in every sample. Regrouping changes the typical prices, and errors across bars can offset one another.

Across several bars, the total approximation error is the base-volume-weighted average of each bar's HLC3 minus its actual trade VWAP. Heavy-volume bars matter more. The signs matter too: an approximation can understate one bar and overstate another. There is no universal correction factor to add to an HLC3 line.

The candle resampling guide covers the grouping decisions behind a change of interval. For reconciliation, save both the source interval and the final display interval; a five-minute display does not by itself specify the observations used to calculate the line.

Changing from HLC3 to the close or another OHLC average creates another representative-price calculation. It does not recover the missing quantities. Choose the documented source needed for your task and name it in the result.

Turnover can preserve the exact numerator

The information loss applies to bare OHLCV with base quantity as its volume field. Some candle feeds retain an additional field: quote turnover, the sum of execution price multiplied by base quantity. That is the numerator needed for trade VWAP.

Binance's Spot REST market-data documentation exposes volume and quote-asset volume in its kline response. It also documents quoteVolume as the sum of price times volume, and weightedAvgPrice as quoteVolume divided by volume, for its rolling ticker. These are endpoint-specific fields and windows; check their alignment before combining them.

If quote turnover and base volume cover exactly the same included trades and interval, their ratio recovers that interval's trade VWAP, subject to the precision of the reported totals. You do not need individual trades merely to perform this division. You still need the tape to answer questions those two totals cannot answer, such as the execution sequence.

For multiple compatible bars:

Combined trade VWAP = sum of quote turnover ÷ sum of base volume.

Extend hypothetical Tape A with a second completed minute in which 50 base units trade entirely at 100. That second bar has turnover of 5,000 USDT and trade VWAP of 100.

The combined result is (10,620 + 5,000) ÷ (100 + 50) = 15,620 ÷ 150 ≈ 104.13. Simply averaging the two bar VWAPs gives (106.20 + 100) ÷ 2 = 103.10, which incorrectly gives the smaller second bar equal weight. The HLC3 approximation remains 100 because both bars have HLC3 of 100.

Preserving turnover and base volume allows compatible bars to be combined without this representative-price approximation. Preserve their sums, rather than storing only rounded bar VWAPs. Never confuse quote turnover with another quantity to multiply by price: it already contains the price–quantity products.

Reconcile the data before blaming the formula

An exact trade formula is exact only for the trades actually included. Missing records, duplicates or different market definitions can make two valid calculations describe different datasets. The trade tape versus candles comparison helps identify what each representation retains.

Use a completed interval for an initial audit. During an open candle, its high, low, close and accumulated volume can still change. Comparing a finalized bar with an earlier trade snapshot mixes observation times.

Failure caseCheck to perform
Different venue or instrumentMatch exchange, exact pair and spot or derivative market
Different included periodMatch start, end, boundary convention and completed status
Lost or repeated trade recordsReconcile identifiers and quantity totals against the provider
Different volume unitsIdentify base quantity, quote turnover or contract units before calculating
Mismatched filters or roundingCompare included transaction types and retain original field precision

When accumulated base volume is zero, VWAP is undefined. Leave a missing result instead of dividing by zero or silently carrying an older value forward. A feed gap is not evidence of zero trading.

A contract count is not automatically spot base quantity, and combining venues requires an explicit common instrument and unit definition. Likewise, matching only the displayed symbols or the apparent candle shape is insufficient.

Trade VWAP describes the average of included executions. It does not describe current order-book depth, guarantee a fill at that average or include your fees. It also cannot identify which historical buyers still hold positions. Those conclusions require information outside the weighted average.

Save a reproducible VWAP specification

When comparing two values, retain a compact worksheet with these entries:

  1. Market and period: venue, instrument, exact start and end, and the time the data were captured.
  2. Representation: executions, HLC3 candles, another selected candle price, or turnover totals.
  3. Units and fields: price unit, quantity unit, turnover definition and original numeric precision.
  4. Numerator and denominator: the actual sums used for each reported result.
  5. Reconciliation: quantity totals, missing records and any included-trade differences still unresolved.
  6. Decision sensitivity: whether the disagreement changes a comparison such as close above or below the reference.

For chart reproduction, use the chart's documented source, interval and window. For an execution comparison, specify the trade-based benchmark and verify the included data or compatible turnover totals. If only OHLCV is available, retain the candle approximation label and leave the exact trade VWAP unknown. The two tapes show why the discarded quantity allocation cannot be reconstructed from the candle alone.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.