Price Elasticity Analysis: The Pack-Tier Discipline
A $30M Australian shelf-stable food brand raised the price on its 250g jar by 8% on a Tuesday morning in March.
12 min read · 30 October 2025

Price Elasticity Analysis: The Pack-Tier Discipline
A $30M Australian shelf-stable food brand raised the price on its 250g jar by 8% on a Tuesday morning in March. The pricing committee approved the move based on a category-level elasticity reading of -1.1, pulled from 104 weeks of Nielsen scan data and run through a log-log regression by an analyst the brand had hired six months earlier. The math looked clean. The presentation looked professional. The decision was wrong.
By week twelve, the 250g jar held its volume within the modelled range. The 750g family pack collapsed by 22%. The brand's 1L commercial format, sold mostly to cafe accounts, took an unexpected 14% hit. Private label volume in the same category at Coles and Woolworths grew double-digit. The category-level elasticity coefficient had hidden the entire pricing decision inside an aggregate that was structurally biased before the analyst even opened her statistics package.
This is the failure mode The Elasticity Calibration Protocol is built to fix. Most FMCG pricing teams run their elasticity work the same way they have for fifteen years. They pull two years of scanner data, fit a log-log model, and report one number to the committee. The number is then used to defend price moves that quietly cannibalise the volume tier and concede shelf to private label. The category-level coefficient is not a directionally useful input. It is a confidence machine that produces wrong answers with statistical certainty.
The 250g Jar That Hid a 750g Disaster
Walk into any Australian supermarket and you will find three pack tiers stocked side by side: the 250g convenience pack, the 750g family pack, the 1L value or commercial format. Shoppers move between these tiers based on competitor price gaps, promotional cycles, and household-stage signals that no aggregate elasticity model captures. When you collapse all three tiers into one regression, you get a coefficient that describes nobody.
The bigger problem is methodological. Bray's 2024 working paper on scanner data elasticity bias shows that observational price elasticities pulled from scanner data systematically fail to reproduce the elasticities measured in controlled price experiments. The observational variant comes back more elastic than the true experimental coefficient, sometimes by a factor of two. The Kellogg companion paper on endogenous prices walks through the mechanism. Brands cut prices when they already see demand softness. That creates a correlation between low prices and high volume that any naive log-log model will misread as genuine price sensitivity.
Stack those two failures and the picture gets worse. The aggregate coefficient is biased upward, and the committee then applies it across pack tiers that each behave differently. The 250g pack is bought on impulse and reacts modestly to small price moves. The 750g family pack is the volume engine and reacts violently to the price gap between itself and the next size up. The 1L commercial format barely reacts to consumer shelf behaviour at all because it is sold into cafe and food-service buyers on annual contracts.
The Australian shelf-stable food brand had all three of these realities in its category. None of them showed up in the regression that approved the price move. The pricing committee was working from a number that described an average shopper who does not exist, in a portfolio whose three pack tiers each speak a different price language.
Why the Math Doesn't Work: The Cross-Price Tax
The hidden cost in the 250g price move was not lost volume on the 250g jar. It was the cross-price effect on every other SKU in the lineup, including the brand's own. Pricing teams routinely confuse own-price elasticity with cross-price elasticity, which is the failure landmine that turns a defensible single-SKU move into a portfolio-wide loss.
Own-price elasticity measures how a SKU's volume responds to a change in its own price. Cross-price elasticity measures how that same SKU's volume responds to a change in the price of a substitute. The substitute can be a competitor's product at the same shelf, a private label alternative, or a different pack tier of the same brand. The Cardinal Health technical paper on cross-price elasticity estimation shows the math at SKU level and makes the asymmetry obvious. The cross-price coefficient between two close substitutes routinely outweighs the own-price coefficient of either one in absolute terms.
Plug that into the brand's situation. When the 250g jar moved up 8%, the own-price elasticity at that tier suggested a 6% volume drop, modest and recoverable. The cross-price elasticity between the 250g brand jar and the 250g private label jar at Woolworths was nearly twice that. The cross-price elasticity between the 250g jar and the 750g family pack was negative, because the two are substitutes inside the same household budget. The 750g pack lost 22% of its volume not because anything happened to its own price. It lost volume because the price gap between the 250g and 750g had narrowed enough to make the family pack look expensive on shelf. Bain's perception beats reality work on consumer pricing shows that perceived price differences, not absolute prices, drive choice between substitutes.
Add the private label effect. Bain's pricing penetration research describes how private label captures bottom-tier shoppers when branded price gaps widen past a perceptual threshold. The 8% price move on the 250g jar pushed the brand's price-per-100g past Woolworths Essentials at the same shelf. Private label volume in the category did not grow by stealing from the 250g jar. It grew by stealing from the 750g jar, because shoppers downsized to private label rather than trade up to a family pack that now looked overpriced.
The pricing committee never modelled any of this. The aggregate elasticity coefficient was a single number applied to a portfolio that needed at least nine numbers to describe it. Three own-price elasticities, plus cross-price elasticity between each pack tier pair and the two nearest competitor SKUs at each tier.
The Elasticity Calibration Protocol Blueprint
The Protocol replaces the aggregate elasticity coefficient with a pack-tier-specific elasticity table cross-referenced against the two nearest competitor price gaps at each tier. It has four moving parts and a quarterly cadence.
I have walked four FMCG brands through this work over the last three years, and every one of them found at least one pack-tier elasticity that contradicted the category-level number by more than 0.5 in absolute terms. That is the gap between a price move that grows margin and one that hands the volume engine to a competitor.
The first part is the pack-tier table. For each pack tier in the brand's portfolio, you calculate own-price elasticity using 26 weeks of scanner data segmented by SKU-pack tier rather than rolled up to category. The shorter window matters because Armin Kakas on the aggregated data merits trade-off argues persuasively that 104-week windows over-smooth the seasonality and promotional cycles that actually drive price sensitivity. Twenty-six weeks captures one full promotional cycle in most categories without burying the signal under historical noise.
The second part is the competitor cross-reference. For each pack tier in your portfolio, identify the two nearest competitor SKUs by price-per-100g (or price-per-unit-of-measure for non-weight categories). Track the price gap between your SKU and each competitor SKU weekly. The Retail Velocity CPG price elasticity primer walks through why this is the practitioner standard rather than absolute prices. Shoppers see relative gaps on shelf, not absolute prices in isolation. When the gap moves outside its usual band, you know the elasticity coefficient you measured last quarter no longer applies.
The third part is the cross-price matrix between your own pack tiers. For each pair of pack tiers in your portfolio, calculate the cross-price elasticity using the same 26-week window. This is where the 250g-to-750g substitution effect lives, and it is the single most important number in the Protocol because it captures the cannibalisation risk that aggregate models hide.
The fourth part is the quarterly recalibration cadence. The Bain survey of 1,100 consumer companies on pricing capabilities finds that top-performing pricers refresh their elasticity work on a fixed cadence rather than on demand. Quarterly is the right frequency for shelf-stable categories. Fresh and chilled categories need monthly. The cadence stops one-off elasticity asks from the pricing committee and forces every price move to be debated against the same calibrated table.
Execution: Day 0 to Day 90
The Elasticity Calibration Protocol takes one analyst about ninety days to install in a brand the size of the Australian shelf-stable food example. Here is what each phase looks like.
Day 0 to Day 30. Pull 26 weeks of SKU-pack-tier scanner data from your data provider. In Australia that is Nielsen IQ Discover or Circana ConsumerScope. In North America it is Nielsen, Circana, or NIQ. Segment the data by SKU rather than rolling to brand or category. For each SKU, calculate the own-price elasticity using a log-log regression. Save the regression diagnostics, especially R-squared and the standard error of the coefficient. If your R-squared comes back below 0.4 for any SKU, flag that SKU as needing more data or as having a non-linear price response that the log-log model is not capturing. Bray's experimental-versus-observational work tells you the coefficient is biased upward. Add a calibration adjustment of around 30% (multiply the absolute value of your coefficient by 0.7) for any SKU where you cannot run a controlled price experiment. The adjustment is not perfect, but it is closer to the true elasticity than the raw coefficient.
Day 31 to Day 60. Build the competitor price-gap dataset. For each of your pack tiers, identify the two nearest competitor SKUs by price-per-100g. Pull weekly shelf prices for the last 26 weeks from your scanner provider. Plot the gap between your SKU and each competitor SKU over time. Identify the normal range, defined as the inter-quartile range of the gap. Flag any week where the gap moved outside its normal range. Match those flagged weeks to your volume data and confirm whether your own-price elasticity coefficient predicted the volume response. Wherever the prediction missed, the cross-price effect is doing the work, and you need a cross-price coefficient for that SKU pair.
Day 61 to Day 90. Build the cross-price matrix between your own pack tiers. For each pair of your own SKUs, calculate the cross-price elasticity using the same 26-week window. The interpretation is straightforward. A positive cross-price coefficient means the two SKUs are substitutes (raising the price of one moves volume to the other). A negative coefficient means complements (raising the price of one moves volume away from both). For most multi-pack FMCG portfolios you will find the 250g-to-750g and the 750g-to-1L pairs are strong substitutes. The numbers tell you how much volume you transfer between your own SKUs when you move price on any single one. PROS Holdings on profitable food pricing makes the case that pricing software platforms now build this matrix automatically. A competent analyst can do it in Excel inside a week.
At the end of Day 90, the brand has nine numbers in place where it previously had one. Three own-price elasticities, four cross-price elasticities (between adjacent pack tiers and against the two nearest competitors), and the inter-quartile range of the competitor price gap at each pack tier. Every future price move gets debated against this table.
What Operators Get Wrong: Own-Price Versus Cross-Price
There is one teaching moment worth burning a section on, because it is the failure landmine that bleeds the most money even when the pricing team has the right data sitting in front of them.
Own-price elasticity tells you how your SKU's volume responds to a change in its own price. Write it as a percentage change in volume divided by a percentage change in price. If your 250g jar shows a coefficient of -1.1, a 10% price increase predicts an 11% volume drop, all else equal.
Cross-price elasticity tells you how your SKU's volume responds to a change in a competitor SKU's price (or a sister SKU in your own portfolio). Write it as a percentage change in your SKU's volume divided by a percentage change in the other SKU's price. If your 250g jar shows a cross-price elasticity of +0.8 against the 250g private label jar at Woolworths, a 10% price increase by Woolworths Essentials predicts an 8% volume gain for your jar, all else equal.
Now put yourself in the shoes of the brand that raised the 250g price 8%. The own-price coefficient predicted a 9% volume drop on the 250g jar. The actual drop was within range. What killed the brand was not own-price. It was the cross-price coefficient between the 250g brand jar and the 250g private label jar (which the brand had never measured) and the cross-price coefficient between the 250g jar and the brand's own 750g family pack (also never measured). Without those two coefficients, the price decision was operating blind on the two effects that mattered most.
The fix is the cross-price matrix in Day 61 to Day 90 of the Protocol. Build it once, refresh it quarterly, debate every price move against it.
From Aggregate Confidence to Pack-Tier Discipline
The Australian shelf-stable food brand worked through The Elasticity Calibration Protocol over the following quarter. The pack-tier table came back with own-price elasticity of -0.7 on the 250g jar (more inelastic than the category aggregate had suggested), -1.4 on the 750g pack (much more elastic than the aggregate), and -0.3 on the 1L commercial format (almost completely inelastic, because the commercial buyers were on annual contracts). The cross-price matrix showed a +1.1 coefficient between the 250g jar and the private label substitute, and a -0.9 coefficient between the 250g jar and the 750g family pack.
Those five numbers told the pricing committee a different story than the original aggregate had. The 250g jar could absorb a price increase, but only if the gap to private label stayed inside its inter-quartile range. The 750g pack was the volume engine and could not absorb any price move that widened the gap to the 250g jar. The 1L commercial format was a margin lever the brand had been ignoring entirely because the aggregate model had treated it as part of the same elasticity profile as the consumer packs.
The brand reset the 250g price 4% lower than its post-March move (recovering the gap to private label), held the 750g price flat, and pushed through a 6% increase on the 1L commercial format at contract renewal. Six-month volume at the SKU level recovered to within 3% of the pre-March baseline. Margin at the portfolio level finished the year 180 basis points ahead of plan because the 1L move stuck and the 250g move was right-sized.
The pricing committee stopped asking the analyst for one-off elasticity reads. The Protocol table now sits on the conference room wall and gets refreshed every quarter. Every price move gets argued against the same nine numbers. The brand still gets some moves wrong, because elasticity is a forecasting discipline, not a prediction certainty. The moves are now wrong in the way every price move is wrong, by small amounts that the next quarterly refresh catches, rather than catastrophically wrong in ways that take six months to surface.
That is what pack-tier discipline gives a pricing team. Not a perfect model. A defensible one, calibrated at the level of granularity where pricing decisions actually live, refreshed on a fixed cadence, and tied to the cross-price effects that quietly drive most of the volume movement in any multi-pack FMCG portfolio. The category-level elasticity coefficient belongs in the bin. Pack-tier discipline is what keeps the volume engine running and the private-label gap from opening up on shelf.
Unit Economics Calculator
Contribution margin per order after COGS, shipping and fees — the number scaling actually depends on.
Pricing Strategy for Fast Moving Goods That Actually Holds
Competitive Intelligence for Consumer Goods That Predicts Share
The Private Label Competition Analysis Most Brands Skip
Market Research For FMCG: The Shelf-Reality Research Protocol
AI Powered Pricing Optimization Without Killing Your Brand
The Budget vs Actual Analysis Framework Operators Need
Newsletter
The Uncommon Insights Letter
Practical FMCG & eCommerce growth playbooks — margins, retention and scaling tactics, straight to your inbox.
Turn fmcg strategy into profit you can see
Get a hands-on operator to turn the frameworks above into results — book a free audit call.