Price Volume Mix (PVM) for Gross Margin Variance Analysis

I have covered Price Volume Mix (PVM) analysis for Revenue Variance in the earlier article. I recommend that you take a look at it first because PVM for Revenue variance analysis is much easier to understand as there are fewer moving parts to think about in the calculations.

Assuming that you are now well versed in the PVM for Revenue analysis, let’s jump in to PVM for Gross Margin analysis. Again, I will save you a lot of reading time by having only the essentials of the material in this post and coving most of the content in a YouTube video.

I mentioned before that PVM for Gross Margin is a lot more complicated than PVM for Revenue. The reason it is more complicated is because Revenue is a result of two variables, Volume and Price, whereas to do a similar analysis for Gross Margin we also have to account for Unit Cost.

Let us start with basic definitions and assumptions. Let us say that we will be analyzing Gross Margin This Year (or Actual) and comparing it to Gross Margin Last Year (or Target)

GMTY – Gross Margin This Year
GMLY – Gross Margin Last Year
RTY – Revenue This Year
RLY – Revenue Last Year
COGSTY – Cost of Goods Sold This Year
COGSLY – Cost of Goods Last Year
VTY – Volume This Year
VLY – Volume Last Year
PTY – Price This Year
PLY – Price Last Year
CTY – Unit Cost This Year
CLY – Unit Cost Last Year

Our goal is to arrive at a formula where Gross Margin variance (RTY – RLY) (I will explain all buckets of the PVM in my video) is represented by

GMTY – GMLY = PriceImpact + VolumeImpact + MixImpact

In addition, our goal is to implement the calculation in such a way that the PriceImpact of the Revenue PVM is the same as PriceImpact in the Gross Margin PVM.

Let us begin!




if     ΔP = PTY – PLY (change in price) and ΔV = VTY – VLY (change in volume) and ΔC = CTY – CLY (change in unit cost)

then    GMTY – GMLY = (PLY + ΔP)*(VLY + ΔV) – (CLY + ΔC)*(VLY + ΔV) – (PLY*VLY – CLY*VLY)


items in RED cancel each other out

so    GMTY – GMLY = ΔP*VLY

or     GMTY – GMLY = ΔP*VLY + ΔV*(PLY– CLY) + ΔV*(ΔP – ΔC)ΔC*VLY

From the formula above, we can now define our Gross Margin PVM calculations as the following:






= ΔV*(ΔP – ΔC) – ΔC*VLY

40 thoughts on “Price Volume Mix (PVM) for Gross Margin Variance Analysis

  1. Hi, thank you for this interesting article.

    Is there any chance you could share with us an example power bi file?

    Thank you so much!

    Kind regards,

    1. I am working on a very comprehensive tutorial with a sample file to cover two ways of implementing PVM for Revenue and Gross Margin. Unfortunately, I am not moving as fast as I would like, but I am hoping to finish it in the next couple of weeks, so you will be able to look in the file and see all the logic there

  2. Hi biZ-i!

    First of all thank you for sharing your knowledge! I am struggling with a mix calculation were I don’t have a variation in Cost or Price but yes in volume and mix. With the formula that you are using if my variation in price and cost are =0 the result of the mix impact will be 0 but the mix may be indeed changing and generating an impact. how can I calculate this impact in this situation?

    Thanks a lot for your time and effort!


  3. This is great! How do we calculate volume and Price impact for a single product Year on year. There is no mix impact there.

  4. Great explanation and good model to work with. However, I’m used to showing the cost/price squeeze, i.e. the company’s capability to pass on any purchase cost variances to their customers. On the margin PVM walk I would therefore show the net of your price impact and (part of) the mix element.

    The cost/price squeeze would then show as (ΔP-ΔC)*VLY, whilst your mix is ΔV*(ΔP – ΔC).

  5. Hey, thanks for the article, is amazing! it really piqued mi interest.
    I am gonna post one thing that helped me understand your article and might helped someone else, which was:
    the second term of Mix impact ‘– ΔC*VLY’ seemed out of place, so I took it to Price Impact making that ‘ΔP*VLY – ΔC*VLY’ == VLY*((PTY-CTY)-(PLY-CLY)) == VLY(GMTY-GMLY)

    Arriving then at
    ‘Price’ impact: VLY(GMTY-GMLY) == VLY*ΔGM
    Vol Impact:ΔV*(GMLY)
    ‘Mix’ : ΔV*(ΔP – ΔC) == ΔV*(GMTY-GMLY) == ΔV* ΔGM
    You can immediately see the analogy on your Price Vol Mix for revenue…

    Once again, thanks a lot. Your explanation is extremely clear and easy to follow (took me more than a couple of hours)

    As for people saying this is right or wrong… if you follow the math you will end with the same result. And i understand that other approaches might satisfy your need, however in any case that does not mean this is wrong !

    1. @Ben, see above – you can see Cost Impact as = – ΔC*VLY
      But you also need exclude this part of formula from Mix Impact

  6. Hi,
    Really clear video, thank you.
    What i am struggling with is that when you look at components within a subset, the analysis price/vol/mix doesn’t equal the sum of the parts.
    If i give an example….lets say i am a food company…
    Lets say i have 4 product groups….cookies, crackers, sweets, bread…
    I can run price vol mix analysis on each of these product groups and understand those groups in isolation…..however, when i sum the 4 product groups together and do a “total business” price vol mix, the sum of the parts doesn’t equal the total.
    Is this a problem you have encountered?
    I have seen other PVM for margin calculations incorporate a % mix calculation which i can’t understand the mathematical proof for.
    So i like your version, but this sum of the parts not equalling the whole issue, gives me a headache!

    1. This is the issue I am having. Basically I need to back into mix as the change in GM less the volume and price impacts

  7. Thank you for the very clear video. I have a question, is it possible that the YoY unit cost (cost per case) variance is negative ( so less cost) but the mix impact is positive?

  8. Thank you very much for showing us how you derived the different formulas. Another interesting approach is to look at the GM change as a percentage of revenue (as opposed to the change in absolute value) where Diff GM% = GM(n)/R(n) – GM(n-1)/R(n-1)
    In that case, how would you derive the formulas for price, volume and mix? I have been struggling to work out the different formulas myself.

      1. Hi, very good question by Thomas. Something I have been trying to get my head around too. If putting in the form of a margin % bridge and taking the movement in price, volume and mix against current year revenue there is a difference. This difference is GM%LY – (GMLY/RevenueTY)

        Any help greatly appreciated.


    1. Hi Thomas. Did you ever figure this out? Have spent ages trying to work it out, but no joy unfortunately 😦

  9. Hi There – This is a great tutorial. Thank you for doing this. One question for you – How do you handle this when you are dealing with products that utilize different units? For example, gloves and pants. We are looking at price as a part of this (ASP), which is measured as $/unit. If you have differing units of measure, I believe you can’t just add up the individual Price Impacts across the different units in order to get the total impact to margin due to price, correct? You would have to standardize the units across all products. Do you have any thoughts/advice on how to handle this?

  10. Thank you all for the greatest article.

    Is it possible to separate New Product/ Discontinued product impact and

    What component (Prive/Volume/Cost/MiX) should be excluded from

  11. Hi, why is the Cost effect in margin in Mix and not in Price? How would you separate both effect to see as single effects

    1. You will be creating four buckets, defined as:
      Price Realization: difference in average selling prices*minimum of units sold in PY or CY.
      Volume: difference in revenue amounts*GM% in PY
      Cost realization: difference in cost*minimum of units sold in PY or CY
      Mix: is the margin variance minus the three components above. Mix happens when an item sold in PY but not CY (or vice versa).

  12. Hi, this is a truly effective analysis and I was trying to implement this into the Power BI but I am having a hard time. If you don’t mind, can I ask for the example template for Price Volume Mix (PVM) for Gross Margin Variance Analysis to my email?

  13. Hi!

    Very intersting topic and fantastically explained – thank you!

    I have tried to follow the various blogs and videos you have posted, reading all the comments. But have been struggling to see if there you have made any updates to model in terms of some of the questions I see in the comments, and that I also have my self. More spesifically:

    – GM calculations:
    – In the mix variance: is the ΔC*VLY part of the equation effectively the cost variance, or how would you go about seperating this?
    – Do you have a video / tutorial or example file implementing this? From what I can tell, your detailed walkthroughs have adressed revenue PVM analysis apart from this high-level video on GM
    – Have you looked at the PVM analysis on GM % and not only GM dollar?

    Hope for an answer – and thank you so much for the learnings so far! If better, please let me know if there is a different fora (mail, linkedin) you prefer.


  14. Great Video!!

    I have such a difficult time to demonstrate why my gross margin % chege over time. This will surely make it easier.

    I was wondering I its possible to add an operational data into this formula like waste. Today my COGS % (COGS/REVENUE) changes a lot and can only be for the following reasons:
    – Price Change
    – Cost Change
    – Mix
    – Waste (the more I waste bigger the cost per unit).

    What do you think?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s