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

23 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!

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 )

Google photo

You are commenting using your Google 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