Revenue analysis
Price Volume Mix Analysis (PVM)
Price volume mix analysis (PVM) separates a revenue movement into what you charged, how much you sold, and what you sold — with items that arrived or left held apart, because neither has two periods to compare.
Explain gross profit with product costs
Add supplied cost of sales to the existing price, volume and mix method. Separate selling-price and unit-cost effects while preserving new/discontinued products and unexplained amounts. This local review is separate from the revenue calculator below; its file and results are not included in account saves.
Required columns and calculation method
Item, QuantityUnit, Currency, BaseQuantity, BaseRevenue, BaseCost, CurrentQuantity, CurrentRevenue, CurrentCost, RowRole
Use one reporting currency and one comparable quantity unit, with unique product labels. RowRole is detail/subtotal. Costs are the cost of sales assigned to these products; missing costs are not zero. Positive costs reduce gross profit; negative costs are credits. Subtotal exclusion follows your declaration and does not validate its equation.
Revenue PVM minus cost PVM produces gross-profit volume, mix and new/discontinued effects. Selling-price and unit-cost changes use current quantities and already contain interaction. Both sub-bridges must reconcile independently. Margin levels use positive revenue; their difference is percentage points. Margin-point attribution and list-to-net categories are not inferred from these inputs.
Input data
Revenue and quantity, never unit price. The price is derived, so the revenue always ties.
One reporting currency throughout: this tool never translates. Where the book is multi-currency, translate first and use the FX Variance Bridge to separate the translation effect from this one.
| Item | Last year qtycartons | Last year revenue | This year qtycartons | This year revenue | Unit pricederived, Last year → This year | |
|---|---|---|---|---|---|---|
| 50→52 | ||||||
| 100→98 | ||||||
| —→200 | ||||||
| 30→— |
Tip: paste a rectangular range from Excel or Sheets.
Revenue movement
+$114.4k
Revenue rose $114.4k between the two periods. Across the products sold in both periods, volume moved revenue the furthest, by $48.0k. Volume grew while mix cost $18.0k, which means the growth came from the cheaper lines. Outside that set, items new in this period added $100.0k and items no longer sold removed $30.0k, which sit apart from price, volume and mix because neither has two periods to compare.
- Priceat current qty
- +$14.4k
- Volume
- +$48.0k
- Mix
- -$18.0k
Revenue bridge
Last year to This year, base average price 60 across items sold in both periods
Last year
$630.0k
Price
+$14.4k
at current qty
Volume
+$48.0k
Mix
-$18.0k
New
+$100.0k
Discontinued
-$30.0k
This year
$744.4k
Show as table
| Line | Value | Context |
|---|---|---|
| Last year | $630.0k | — |
| Price | +$14.4k | at current qty |
| Volume | +$48.0k | — |
| Mix | -$18.0k | — |
| New | +$100.0k | — |
| Discontinued | -$30.0k | — |
| This year | $744.4k | — |
| Line | Value | Context |
|---|---|---|
| Last year | $630.0k | — |
| Price | +$14.4k | at current qty |
| Volume | +$48.0k | — |
| Mix | -$18.0k | — |
| New | +$100.0k | — |
| Discontinued | -$30.0k | — |
| This year | $744.4k | — |
By item: price effect and mix effect
Price and mix are shown per item and never netted together. Volume is a set-level term and belongs to no single row. Row mix is the change in quantity against that item’s gap to the base average, so the rows sum to the mix bar and an item that shrank cannot read as lifting the blend.
| Item | Set | Price Last year | Price This year | Price effect | Mix effect | New or gone |
|---|---|---|---|---|---|---|
| Cartons C | New | — | 200 | — | — | +$100.0k |
| Cartons D | Discontinued | 30 | — | — | — | -$30.0k |
| Cartons B | Both periods | 100 | 98 | -$3.6k | -$8.0k | — |
| Cartons A | Both periods | 50 | 52 | +$18.0k | -$10.0k | — |
Reuse the analysis
Copy the summary, or export the items and the chart.
Transparent by design
How this calculation works
Price is measured at current volumes, so the interaction between a price change and a volume change sits inside the price effect. Any decomposition has to put it somewhere; this one says where.
Unit price
Revenue divided by quantity, per item and per period. Price is never entered, because a pasted price column and a pasted revenue column disagree in real data and the tool would have to choose which to believe.
Price effect
Current quantity multiplied by the change in that item’s unit price. Measured at current volumes, so it carries the interaction term.
Price basis
The default measures price at current quantities, which keeps the interaction inside price. The second option measures it at base quantities and gives the interaction a bar of its own. The two always sum to the first, so the bridge lands on the same total either way and only the account of it changes.
Volume effect
The change in total quantity, multiplied by the base average price across items sold in both periods. It is a set-level term and is never pushed down to individual rows.
Mix effect
At the set level, the change in blend among the products sold in both periods. On a row it is the change in that item’s quantity multiplied by the gap between its base price and the base average price, so the rows sum to the bar and an item that shrank cannot read as having lifted the blend.
Comparable quantity units
Volume and mix add quantities across items, so those quantities have to be in the same unit before either figure means anything. The quantity unit is one label for the whole table and it converts nothing: cases pasted beside pallets produce a total that is not a quantity, and the two effects built on it are not meaningful.
Base average price
Base revenue divided by base quantity across the common set only. Items new or discontinued are excluded, because including them would compare against an average they never contributed to.
New and discontinued
Held in their own buckets at full revenue. Neither has two periods to compare, so neither can carry a price or a mix effect, and putting them inside volume would overstate it.
Dormant items
Zero quantity in both periods. Listed for completeness and excluded from every effect, because there is nothing to compare. Revenue booked on one is excluded too, and is named in a warning rather than being absorbed somewhere it does not belong.
Reconciliation
Base revenue plus price, volume, mix, new and discontinued equals current revenue. Any residual is shown rather than spread across the effects.