Revenue analysis
Price Volume Mix Analyzer
Separate 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.
Input data
Revenue and quantity, never unit price. The price is derived, so the revenue always ties.
| Item | Last year qtycartons | Last year revenue | This year qtycartons | This year revenue | |
|---|---|---|---|---|---|
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.
- Price
- +$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
Volume
+$48.0k
Mix
-$18.0k
New
+$100.0k
Discontinued
-$30.0k
This year
$744.4k
By item
Price and mix are shown per item and never netted together. Volume is a set-level term and belongs to no single row.
| Item | Set | Price Last year | Price This year | Price effect | Mix effect | New or gone |
|---|---|---|---|---|---|---|
| Cartons C | New | — | 200 | — | — | +$100.0k |
| Cartons A | Both periods | 50 | 52 | +$18.0k | -$90.0k | — |
| Cartons B | Both periods | 100 | 98 | -$3.6k | +$72.0k | — |
| Cartons D | Discontinued | 30 | — | — | — | -$30.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.
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
Current quantity multiplied by the gap between that item’s base price and the base average price. It captures selling a different blend of the same products.
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.
Reconciliation
Base revenue plus price, volume, mix, new and discontinued equals current revenue. Any residual is shown rather than spread across the effects.