Skip to content
Finance metrics

Price volume mix analysis: why you grew but margin fell

Price volume mix analysis with a fully worked example: an additive decomposition where price, volume and mix sum exactly to the revenue change.

ERPray teamUpdated 7 min read
Short answer

Price volume mix analysis splits a revenue change into three effects: price (new price minus old price, times current units), volume (prior revenue times total unit growth) and mix (each line's units above or below its proportional share, at prior prices). The three sum exactly to the change — in our example, $11,400 + $624,000 − $496,000 = $139,400.

Key takeaways

  • Price volume mix analysis breaks a revenue change into three additive effects that must sum exactly to the total change. If they do not, the decomposition is wrong.
  • Volume is the growth every line would have had at the overall unit growth rate. Mix is each line's deviation from that proportional share, valued at prior prices.
  • Mix is the effect that explains "we sold more units and made less money": in the worked example, 15% unit growth produced only 3.4% revenue growth because mix cost $496,000.
  • State your convention in writing. Price × current volume and price × prior volume give different splits, and both are defensible — but only one can be yours.
  • New and discontinued products have no comparable price. Give them their own column rather than forcing them into the price effect.

Revenue was up. Units were up more. Gross margin percentage was down. Nobody changed a price list. This combination shows up in board packs constantly, and "it's mix" is the answer that gets muttered without being measured. Price volume mix analysis measures it, and does so in a form that has to tie to the total revenue change exactly, which makes it hard to fudge.

Price volume mix analysis
A decomposition of the change in revenue between two periods into three parts: the effect of selling at different prices, the effect of selling a different total number of units, and the effect of those units being distributed differently across products. Together the three account for the whole change.

State your convention before you calculate anything

There is no single correct decomposition. The cross term — the interaction between a price change and a volume change — has to be allocated somewhere, and different companies allocate it differently. What matters is that you pick one, write it down, and use it every period. Here is the convention used throughout this article:

For each product line i, with prior period 0 and current period 1:

  g = total units in period 1 ÷ total units in period 0

  Price effect  = (P1 − P0) × Q1
  Volume effect = P0 × Q0 × (g − 1)
  Mix effect    = P0 × (Q1 − Q0 × g)

Sum of all three, across all lines = Revenue1 − Revenue0
An exactly additive three-effect decomposition. The price/volume cross term sits inside the price effect, because Q1 is used.

Why it closes: the price and volume effects for one line collapse algebraically to P1Q1 − P0Q0, because (P1 − P0)Q1 + (Q1 − Q0)P0 = P1Q1 − P0Q0. Splitting that (Q1 − Q0)P0 term into a proportional part (volume) and a residual (mix) leaves the total untouched, since P0·Q0(g − 1) + P0(Q1 − Q0·g) = P0(Q1 − Q0). No plug, no rounding line, no residual bucket.

Convention choiceWhat it meansTrade-off
Price × current volume (used here)The cross term is attributed to pricePrice effect reflects money actually earned or given away this period. Slightly overstates price when volume grew.
Price × prior volumeThe cross term is separated as a fourth 'price/volume' effectCleaner in theory, four columns to explain instead of three. Commercial teams find the fourth column unownable.
Mix measured on revenue share rather than unit shareMix reflects shifts in revenue weighting, not unit weightingAvoids nonsense when products have wildly different prices or units are not comparable. Harder to reconcile to a volume story.
Pick one and document it in the reporting definitions. Switching mid-year makes the series meaningless.

Worked example: three product lines

A distributor with three lines. Unchanged unit costs, so the margin story below is entirely price and mix.

LinePrior unitsPrior pricePrior revenueCurrent unitsCurrent priceCurrent revenue
A — Standard40,000$50.00$2,000,00044,000$48.50$2,134,000
B — Premium10,000$180.00$1,800,0009,000$186.00$1,674,000
C — Accessory30,000$12.00$360,00039,000$12.60$491,400
Total80,000$4,160,00092,000$4,299,400
Units up 15.0% (80,000 → 92,000). Revenue up 3.4% ($4,160,000 → $4,299,400, a change of $139,400).

That gap is the whole story: 15.0% more units produced 3.4% more revenue. Total unit growth g = 92,000 ÷ 80,000 = 1.15. Now compute each effect.

Price effect: (P1 − P0) × Q1

  • A: ($48.50 − $50.00) × 44,000 = −$1.50 × 44,000 = −$66,000
  • B: ($186.00 − $180.00) × 9,000 = $6.00 × 9,000 = +$54,000
  • C: ($12.60 − $12.00) × 39,000 = $0.60 × 39,000 = +$23,400
  • Total price effect = −$66,000 + $54,000 + $23,400 = +$11,400

Volume effect: prior revenue × (g − 1)

  • A: $2,000,000 × 0.15 = +$300,000
  • B: $1,800,000 × 0.15 = +$270,000
  • C: $360,000 × 0.15 = +$54,000
  • Total volume effect = $4,160,000 × 0.15 = +$624,000

This is the counterfactual: if every line had grown 15% at last year's prices, revenue would have risen $624,000. It did not, because the growth was not proportional.

Mix effect: P0 × (Q1 − Q0 × g)

  • A: proportional share = 40,000 × 1.15 = 46,000 units; actual 44,000; shortfall 2,000 × $50 = −$100,000
  • B: proportional share = 10,000 × 1.15 = 11,500 units; actual 9,000; shortfall 2,500 × $180 = −$450,000
  • C: proportional share = 30,000 × 1.15 = 34,500 units; actual 39,000; surplus 4,500 × $12 = +$54,000
  • Total mix effect = −$100,000 − $450,000 + $54,000 = −$496,000

The reconciliation

LinePriceVolumeMixTotal changeCheck
A — Standard−$66,000+$300,000−$100,000+$134,000$2,134,000 − $2,000,000 ✓
B — Premium+$54,000+$270,000−$450,000−$126,000$1,674,000 − $1,800,000 ✓
C — Accessory+$23,400+$54,000+$54,000+$131,400$491,400 − $360,000 ✓
Total+$11,400+$624,000−$496,000+$139,400$4,299,400 − $4,160,000 ✓
$11,400 + $624,000 − $496,000 = $139,400, which equals the actual revenue change to the dollar. Every line reconciles individually as well as in total.
+15.0%
Unit growth
+3.4%
Revenue growth
−$496,000
Cost of the mix shift
Free calculator
Price volume mix calculator

Enter prior and current price and volume for up to five lines and get the price, volume and mix split, with the reconciliation to total revenue change.

The one-sentence narrative

The point of the arithmetic is to produce a sentence a non-finance executive can repeat. From the table above: revenue grew $139,400 because 15% unit growth added $624,000, offset by $496,000 of mix as 1,000 Premium units at $180 were replaced by 9,000 Accessory units at $12, with net pricing roughly flat at $11,400.

Note what that sentence does. It names the driver, gives the number, and identifies the physical event behind it. It does not say "unfavourable mix variance". This kind of construction is the backbone of a defensible budget vs actual variance analysis too — the arithmetic is the same, with budget in place of the prior period.

Extending it to gross profit

Revenue mix is interesting. Margin mix is what the CFO wants. Add unchanged unit costs — A $32.00, B $99.00, C $8.40 — and recompute.

LinePrior contribution/unitPrior gross profitCurrent contribution/unitCurrent gross profit
A — Standard$18.00 (36.0%)$720,000$16.50 (34.0%)$726,000
B — Premium$81.00 (45.0%)$810,000$87.00 (46.8%)$783,000
C — Accessory$3.60 (30.0%)$108,000$4.20 (33.3%)$163,800
Total$1,638,000$1,672,800
Gross profit up $34,800 (+2.1%). Blended margin 39.4% → 38.9%, a fall of 0.5 points.

Check the blended margins: $1,638,000 ÷ $4,160,000 = 39.38%, and $1,672,800 ÷ $4,299,400 = 38.91%. Two of the three lines improved their own margin percentage: B rose from 45.0% to 46.8% on a $6 price increase, and C rose from 30.0% to 33.3% on a 60-cent one. Only A fell, from 36.0% to 34.0%, because its price dropped $1.50 against a flat cost. Yet the blend fell half a point despite gross profit dollars rising $34,800.

If your unit costs also moved between the periods, the margin story needs a fourth effect for cost, and the cleanest way to keep it honest is to compute each line's margin from the same cost basis in both periods — the gross margin calculator does the per-line arithmetic, and the contribution margin calculator does it after variable selling costs, which is the version that tells you which line to push.

Practical rules for building this in a real system

  • Choose the grain deliberately. Price volume mix at SKU level on 40,000 SKUs produces a mix effect that is real but unusable. Run it at the level someone owns: product family, brand, channel or customer segment. You can always drill.
  • Use realised price, not list price. Average selling price should be net revenue ÷ units after discounts, rebates and credit notes. If your list price is in the calculation, every rebate shows up as mix and the analysis misleads. Model stacked discounts separately with the discount cascade calculator.
  • Handle new and lost products explicitly. A line with zero prior units has no prior price, so price and mix are undefined for it. Give new and discontinued products their own columns: a new line's whole current revenue (current price × current units) is incremental, and a lost line's whole prior revenue is a deduction. Forcing either into mix makes mix meaningless.
  • Separate currency before you separate mix. In a multi-currency business, translate both periods at the same rate to get a constant-currency price volume mix, then report FX as a fourth effect. Otherwise every devaluation appears as a price cut.
  • Units must be comparable within a line. Cases, eaches and pallets in the same unit column produce a mix effect that measures packaging, not commercial behaviour. Normalise to a base unit of measure first.
  • Always print the reconciliation row. If price + volume + mix does not equal the revenue change to the dollar, do not publish. A closing check is the cheapest quality gate in reporting.

What each effect tells you to do

EffectOwnerWhat a negative number usually means
PriceCommercial / pricingDiscounting has drifted, or a price increase never reached the price file. Check realised vs list price by customer.
VolumeSales / demand planningLost accounts, lost distribution, or demand softness. Volume is the effect least likely to be a reporting artefact.
MixProduct / category managementGrowth is coming from cheaper or lower-margin lines. Either the premium line lost, or promotion pushed the wrong product.
The value of the split is that each column has a different owner and a different fix.

Getting price and volume by line out of your ERP

The maths is a few multiplications. The effort is assembling matched pairs: net revenue and units by line for two periods, on the same product hierarchy, after credit notes, excluding intercompany, with returns netted against the right period. Product hierarchies change between periods, which is usually where the reconciliation breaks — and it is why this analysis often runs quarterly instead of monthly. Building the ranked revenue base for it is the same exercise as a top customers by revenue report, with the grouping swapped from customer to product.

This is exactly the shape of question was built for. Ask "net revenue and units by product family for this quarter and the same quarter last year, excluding intercompany" and get both periods computed live from your own account, with the query shown underneath so you can confirm how returns and credit notes were treated before you decompose the change.

Frequently asked questions

What is price volume mix analysis?

It is a decomposition of a revenue change into three additive parts: how much came from selling at different prices, how much from selling more or fewer units in total, and how much from those units shifting between products. The three effects must sum exactly to the revenue change, which is what makes the analysis auditable.

What is the formula for the mix effect?

Mix effect = prior price × (current units − prior units × overall unit growth factor). It measures how far each line's units sit above or below its proportional share of total growth, valued at prior prices. A line that grew slower than the total contributes a negative mix effect even if its own units increased.

Why did our margin fall when revenue and units both grew?

Usually mix. Blended margin is total gross profit ÷ total revenue, so it is revenue-weighted. If growth comes from lower-priced or lower-margin lines, the blend falls even when every individual product improves its own margin. In the worked example above, all three lines improved and the blend still dropped 0.5 points.

Do price, volume and mix have to add up to the total revenue change?

Yes, in a properly built decomposition. If they do not, there is an unallocated cross term or a data mismatch — usually new products with no prior price, a changed product hierarchy, or returns posted to a different period. Print the reconciliation line every time and refuse to publish a version that does not close.

How do you handle new products in price volume mix analysis?

Give them a separate column. A new product has no prior price, so price and mix effects are undefined for it; its entire current revenue is incremental. The same applies in reverse to discontinued lines. Forcing either into the mix column inflates mix and destroys the ownership value of the split.

Should price volume mix use list price or realised price?

Realised price: net revenue ÷ units after discounts, rebates and credit notes. Using list price pushes every discount into the mix effect and makes the price column meaningless. If rebates are settled in arrears, accrue them into the period they relate to, or the price effect will swing for reasons nobody can explain.

Your ERP already knows. Start asking.

ERPray computes answers like these live from your own ERP account and shows the exact query behind every number. Early access is open for NetSuite teams — free plan at launch.