
Many people are familiar with the analysis known as a volume decomposition (or due-to) that uses POS data. This allows you to explain a change in sales and attribute gains and losses to specific business drivers like distribution, pricing, trade promotion and some other things. We have a series of posts on this, starting with this one that also has links to the other posts in the series.
There is another way to explain a change in sales using household panel data. (Take a look at this post if you need a refresher on panel data.)
The usual reason for doing a sales decomp is to explain why sales are down, but this can also be done to explain why sales are up. Panel data lets you quantify how much of a sales decline is because of fewer householder buying the product (penetration) vs. the same number of households buying less (buy rate). As a next step, if shoppers are buying less, you can determine how much change is because of purchase frequency vs. purchase size. This post addresses the high level decomp of penetration vs. buy rate. I’ll focus on volume buy rate in this example. (See this post about the 3 ways to measure sales – dollars, units and equivalized volume or EQ.)
The analysis starts by looking at change in sales from one period to another. As with most panel data analyses, you typically look at one year vs. the previous year. Shorter periods can be a problem if the penetration or purchase cycle for the product is low, i.e. people only buy it a few times a year. This is especially true for household and personal care products. It is virtually impossible to have a large enough sample size in panel data to look at any individual SKU. (Note that this is not an issue when doing a decomp using POS data, as sales data is always available at all product levels in that data source.)
Cereal Brand Example
We’ll use the following real data for this example (although from 10+ years ago). It’s for a nationally distributed ready-to-eat cereal brand from a major manufacturer.

This is what we’re looking at:
- Product is the total brand Fun Flakes
- Market is Total US All Outlet (as defined back in 2012)
- Period is one full year ending early November 2012
- Volume is measured in pounds (LBS), the EQ (equivalized unit) that takes into account different package sizes offered by the brand
- Note that calculations were done prior to rounding
Here’s a quick overview of what’s happening here:
- Volume is down -4.6%, just over 4 million pounds from a year ago.
- Just over 19% of all US households bought Fun Flakes at least one time during the year but that’s down over 1 point. (Note that we do not show the % change in penetration since that measure is already a percentage.)
- Buy rate is up slightly (+1.1%), with the average household (HH) buying just under 4 LBS in a year.
- A gain in purchase frequency is slightly offsetting a decline in purchase size.
- The average annual buy rate of 3.8 LBS breaks into the average HH buying Fun Flakes 3 times per year (up from last year), 1.3 LBS per trip (down from last year).
Objective of Due-To Analysis
This analysis allows you to allocate the 4.1 million pound volume decline between buyers and buy rate. Depending on the responsible driver(s) you would use different marketing tactics to hopefully fix the issue.
* A brand can increase its penetration and/or buy rate by expanding into other channels. Say, for example, that Brand X gains distribution in the Club channel for the first time. Penetration could increase among shoppers who only buy the category in Club and now see Brand X there. Buy rate could also increase since shoppers who already buy the brand in other channels can now buy it on more of their shopping trips (at Club)
You need to consider trade-off of cost vs. benefit – is it easier/cheaper to get a new or lapsed buyer or to increase purchases among existing buyers?
Due-To Calculations
In order to allocate a volume change between buyers and buy rate, the key thing is to allow one element to change while the other stays the same.

Slight but necessary detour:
When doing these calculations, it’s not enough to just look at penetration. You also need the actual number of households who purchased to accurately estimate volume. This is because the number of total households in the US changes from year to year, in addition to the Penetration changing. In this example 19.1% penetration translates into 22.6 million households who bought Fun Flakes: There were 118.4 million total households in the US back in 2012 (current year in the example) so 0.191 * 118,400,000 = 22.6 million households. In the year ago period 2011, penetration of 20.3% and 116.8 million total US households means there were 23.7 million households (0.203 * 116,800,000) who bought the brand in the previous year. So…buying households decreased by -1.1 million or -4.7%.
Here is the data used in the analysis:

The key concept is that you assume one change but everything else stayed the same.
LBS due-to
- LBS change due-to Buyers
Change in Buyers * Current Buy Rate
(Current Buyers – YA Buyers) * Current Buy Rate
(22.6MM – 23.7MM) * 3.84 LBS = -4.2 MM LBS - LBS change due-to Buy Rate
Change in Buy Rate * Current Buyers
(Current Buy Rate – YA Buy Rate) * Current Buyers
(3.84 LBS – 3.80 LBS) * 22.6MM = +900k LBS
% due-to = LBS due-to / YA volume
- % due-to Buyers = -4.2MM / 90.1MM = -4.7%
- % due-to Buy Rate = +900k / 90.1MM = +1.0%
It is not a coincidence that the sum of the % due-to in buyers and buy rate is close to the % change in volume (-4.7% + 1.0% is close to -3.7%)! Sometimes it’s off slightly due to rounding, plus some small amout due to the change in Total US population.
So to summarize…we see that loss of buyers was responsible for more than the -4.6% volume decline (-4.7%, or -4.2 million LBS) while the slight increase in buy rate actually offset this by +1.1%, or +900k LBS. Note: It is very common for buy rate to increase when penetration decreases because the buyers that leave are typically lighter buyers and the ones that stay have a higher buy rate.
Did you find this article useful? Subscribe to CPG Data Tip Sheet to get future posts delivered to your email in-box. We publish new articles on an ad hoc basis and do respond to comments and questions.
Great insights, thank you for sharing. What I’d like to understand more is why channel expansion tends to impact frequency more than penetration. From my perspective, if a brand increases or reduces distribution across channels, wouldn’t that typically attract or lose more shoppers? Thanks!
Very good question! It can be both and we’ve edited the post to reflect that. Thank you for your thought provoking commen.
Hi there! The following should say “PRIOR” Buy Rate since you’re using the 3.8 not the 3.84, I think a small typo 🙂
LBS change due-to Buyers
(Current Buyers – YA Buyers) * Current Buy Rate
(22.6MM – 23.7MM) * 3.8 LBS = -5.1 MM LBS
It’s always good to see when readers look at the posts in detail and try to replicate the calculations themselves! I edited the post to make sure the verbal descriptions of the calculations are correct and also updated some numbers based on doing calculations using another decimal place. (The numbers in J’s comment have been updated so are not in the current version of the post.)
Hi,
This is a very useful post! But where can I find the metric on penetration?
According to another post
https://www.cpgdatainsights.com/glossary-post/penetration/
(dated 2012) the “Item Penetration” field was available in Nielsen but when I use Nielsen Byzzer but today I don’t see that field available in their Data on Demand ad-hoc report run.
Any pointers or suggestions?
Penetration is a household panel measure and, in Byzzer, those metrics are not available in Data On Demand. You can only access those penetration and buying rate measures in the Shopper Behavior reports. I do not know if every subscription has those reports availabe but I think so? I’m not completely familiar with the details of those reports but, assuming you have the same reports that I have seen, try Shopper Sales Decomp Tree or Shopper Summary by Market and Shopper Summary by Product. Or test all the Shopper Behavior reports and see what you learn. One thing about these reports is that they can only run on the Byzzer defined categories and brands.
Appreciate the insight Sally!
Hi Again,
I know this analysis mainly applies to brick-and-mortar sales but how would we do it for online (e.g. Amazon) sales?
The concept would be the same for online sales. You need to look at how many customers purchased (analogous to # HH buying) and how much each customer bought (buy rate) over the course of one period and compare it to a previous period. This is best done for one year and the previous year to gove people enough tme to make several purchases. Unfortunately I am not familiar enough with Amazon or other online data to give you further direction on where you would find that. From what I have seen, the online data tends to be at a very detailed level but there may be a way to decompose a volume into change in buyers vs. change in buy rate.
Thanks Robin!
Hello,
Thank you for this post. Very relevant to CPG Panel analyses that I conduct, and I did the exercise using my own data.
I have one (probably obvious) question:
“It is not a coincidence that the sum of the % due-to in buyers and buy rate is close to the % change in volume (-4.7% + 1.0% is close to -3.7%)! Sometimes it’s off slightly due to rounding, plus some small amount due to the change in Total US population.”
Where in the example are we seeing the -3.7%? Is its proximity to -4.6% volume change from YA within the ‘slightly off’ range you mention?
Thank you!
It’s always good to see readers who really do dive into the posts! I can see why you’d say that the difference in the example does seem bigger than “slightly off.” I think it’s because of the relatively small magnitude of the numbers. When the volume change being explained is bigger than the 3.7% here, then a 1 point difference between that and the sum of the 2 drivers isn’t that significant. Try it with your own data and see if the rule of thumb holds up. if not, then feel free to contact us and I can try to figure out why.
Hi again. Thank you. With my own data the difference was 0.4 pts… not significant. Just wanted to make sure I was grasping the concept. I appreciate your quick response.