What a price index tells you that a price does not
A price index expresses one price as a percentage of a reference price. Verde Fresca's 16 oz fermented salsa at $6.49 against a category average of $5.41 gives a price index of 120, meaning it sits 20% above the set. That single number answers the question a buyer actually asks, which is never "what does it cost" but "what does it cost compared to what else is on my shelf."
The formula is trivial and the decisions around it are not. Which items are in the reference set, whether the average is weighted, and whether you are indexing per unit or per ounce each move the answer by more than most price changes do. This page covers how to find a price index from POS data and the four choices that determine whether it means anything.
The formula
Price index = (your price / reference price) x 100
Above 100 means you are more expensive than the reference; below 100 means cheaper. An index of 100 is parity. The number is read as a percentage without the percent sign, so 120 is "20 points above," and a move from 118 to 124 is "six points," not "six percent."
Three references get used, and they answer different questions:
| Index type | Reference | The question it answers |
|---|---|---|
| Category price index | Average price of the whole set | Where do I sit in the category |
| Competitive index | One named competitor's price | Am I priced against my actual rival |
| Cross-retailer index | Same item at another retailer | Am I consistent across banners |
The third one is the one brand teams underuse and retailers watch most closely. A buyer at a conventional grocer who finds your item 14 points cheaper at a natural retailer three miles away is not asking about elasticity. They are asking why their shopper is being charged more, and the answer had better not be "we never looked."
The four choices that decide the answer
1. Which items are in the reference set
This is the largest source of variance and the least documented. A "category average" pulled straight from a syndicated report includes everything the report calls the category, which usually means private label, every pack size, and adjacent subsegments.
Verde Fresca indexed against the full refrigerated salsa category, private label included, reads 120. Indexed against branded refrigerated salsa only, it reads 109. Indexed against the fermented and probiotic subsegment it actually competes in, it reads 97, below parity. All three are arithmetically correct. Only the third describes the shelf decision the shopper is making.
Define the set as the items a shopper would genuinely swap between, write the definition down next to the number, and keep it stable across periods. A price index whose reference set drifts is a trend line measuring your own definition changes.
2. Weighted or unweighted
An unweighted average treats a 40-facing mainstream item and a 2-facing specialty item identically. A weighted average, usually weighted by unit volume or by dollar share, reflects what shoppers actually buy.
The gap is not small, and it runs in a direction people find counterintuitive. Take the same refrigerated salsa set used below: the unweighted average across every item is $5.41, and the branded items alone average $5.95. Now weight by units. Private label sells at $3.99 and takes 34% of the units, so the volume-weighted reference falls to (0.34 x $3.99) + (0.66 x $5.95) = $5.28, below the unweighted $5.41, because the cheapest item in the set is also the one shoppers buy most.
Verde Fresca at $6.49 therefore reads 120 unweighted and 123 volume-weighted. The weighted number is the honest one for a "how expensive do we look" question, because it is closer to the price the average unit in that category actually sold at. The unweighted number is flattering here for a specific reason: it gives a 2-facing premium item the same vote as the private label doing a third of the volume.
Use unweighted when comparing your position across retailers with different assortments, since volume weighting bakes in each retailer's mix. Use weighted when the question is about shopper perception.
3. Per unit or equivalized
If pack sizes differ across the set, a per-unit index compares a 16 oz to a 12 oz and reports the wrong winner. Equivalize to a common measure first, usually price per ounce or per equivalent case, then index. See equivalized volume for what your syndicated report is already doing.
A worked contrast on the same set: Verde Fresca's 16 oz at $6.49 is $0.406 per ounce. The mainstream competitor's 24 oz at $7.49 is $0.312 per ounce. Per unit, Verde Fresca is 13% cheaper. Per ounce, it is 30% more expensive. The per-unit read tells you which item wins the price comparison on the tag; the per-ounce read tells you which wins the shelf-tag unit-price comparison that many states require retailers to print. Both matter, and reporting only one is how a team convinces itself it is priced competitively when it is not.
4. Promoted or everyday
An index built on average retail price blends promoted and non-promoted weeks, so a heavily promoted competitor reads cheaper than their shelf price. That is correct if the question is "what did shoppers pay." It is wrong if the question is "where should my everyday price sit."
Build two: an everyday index off non-promoted weeks only, and an effective index off all weeks. When they diverge by more than about 8 points, the competitor is buying volume with promotion depth, and matching their effective price with your everyday price is a permanent margin donation.
Worked example: one item, four defensible indexes
Verde Fresca 16 oz fermented salsa, $6.49, Sprouts, 4-week period.
| Reference set | Basis | Reference price | Index |
|---|---|---|---|
| Full refrigerated salsa, unweighted | Per unit | $5.41 | 120 |
| Branded only, unweighted | Per unit | $5.95 | 109 |
| Fermented/probiotic subsegment | Per unit | $6.69 | 97 |
| Full category, volume-weighted | Per ounce | $0.317 | 128 |
The brand team reported 97 and concluded price was not the problem. The buyer was looking at 128. Neither number was fabricated; they were built on different reference sets and different bases, and nobody had written either definition down. That meeting is the reason this page exists.
The reconciliation is straightforward once the choices are explicit. Against the shoppers who are actually cross-shopping fermented salsa, Verde Fresca is at parity. Against the whole fixture on a unit-price tag, it looks expensive. Both are true, and the correct response is different for each: the first says hold price, the second says the 32 oz size needs to exist so there is a lower-per-ounce entry point on the shelf.
The cross-retailer index, and why the buyer sees it first
The table above lists a cross-retailer index and then the worked example does not use one, which mirrors how most brand teams operate: they index against the category inside each banner and never index the same item across banners. The buyer does the second one on their phone.
Verde Fresca's 16 oz carries a $6.49 shelf price at Sprouts and $5.99 at a regional natural chain, because the two retailers take different margins on the same $4.21 wholesale cost. Cross-retailer index: 108. That gap is defensible. Retailers set their own retails, cost-to-serve differs, and no buyer expects identical prices across the market.
What is not defensible is a gap the brand cannot explain. Three checks make the difference:
- Is the gap explained by margin, or by your own trade spend? A retailer taking 35% versus another taking 30% on the same cost produces a price gap you did not choose. A retailer passing through an off-invoice allowance that the other did not receive produces a gap you did choose, possibly without noticing. See off-invoice versus billback for which of your allowances actually reach the shelf.
- Does the gap survive equivalization? If the cheaper retailer carries a different pack size, there may be no gap at all.
- Is the gap stable or drifting? A stable 8-point spread is a market structure. A spread that opened from 2 points to 14 over two quarters is a retailer repositioning your brand, and you want to know before the line review.
Practical rule: build the cross-retailer index on non-promoted weeks only. Promotional calendars differ by banner, so an all-weeks comparison mostly measures whose ad you happened to catch. And run it at the item level, never at the brand level, because a brand-level average across retailers with different assortments compares two different product mixes and calls the result a price difference.
How to build one from your own data
- Pull average retail price per unit by item for the period, from POS or syndicated data. Split promoted and non-promoted weeks.
- Define the reference set explicitly and store the definition with the output, not in someone's head.
- Equivalize if pack sizes vary. Price per ounce is the usual choice in food.
- Compute the reference price both weighted and unweighted; keep both.
- Index and trend it. A price index is most useful as a line, not a point. A brand drifting from 104 to 119 over three quarters without a single price increase means the set moved, which is the thing you want to catch.
- Check it against distribution. An index that improves because your cheapest item lost distribution is not an improvement. Read it alongside TDP.
Where this connects to the rest of pricing work: the index tells you where you sit, and price elasticity tells you what happens if you move. Neither answers the other's question. Teams that track only the index optimize toward parity for its own sake, which is how a differentiated item gets priced like a commodity.
Reading a price index that moved
A price index is most useful as a trend, which means the recurring question is not "what is our index" but "why did it change." Four causes, and they call for opposite responses:
- You moved. The simplest case, and the only one most teams check. Confirm it against your own non-promoted average retail price.
- The set moved. A competitor took a permanent price increase, or the retailer raised private label. Your index fell without you touching anything, and your competitive position genuinely improved.
- The mix moved. A cheap item in the reference set lost distribution, so the reference price rose and your index fell. Nothing improved. This is the one that generates false good news, and it is why the index has to be read alongside the door count of the reference set, not just your own.
- The report moved. A syndicated category redefinition, a new item reclassified into your segment, or a retailer added to the market. Your index changed because the measurement changed.
The diagnostic is straightforward: hold the reference set fixed to its prior-period composition and recompute. If the index barely moves, you are looking at a mix or definition effect. If it moves the same amount, the price change is real. Doing this once a quarter takes an hour and prevents the specific meeting where a brand team claims a competitive win that was a distribution loss somewhere else in the category.
One more thing worth trending separately: the spread between your highest and lowest index across banners. A brand indexed 104 at one retailer and 131 at another is not priced inconsistently by accident; it usually means one retailer is taking a much higher margin, or that a promotional allowance is reaching the shelf in one place and being pocketed in the other. That spread is a better early warning of a channel-conflict problem than any single index value.
Where Scout fits
Scout builds the price index off your own POS and syndicated feeds, holds the reference-set definition as an explicit input rather than a hidden default, and reports the weighted and unweighted versions side by side so the brand team and the buyer are reading the same page. It trends the index against distribution so a mix-driven move is visible as a mix-driven move.
Scout models the pricing decision and recommends where to sit. It does not hold your price file or transmit price changes to a retailer; that stays in your system of record.
Common ways this goes wrong
- An undefined reference set. The most common failure by a wide margin. Write it down or the number is unfalsifiable.
- A set that drifts between periods. Your trend becomes a measure of your own definition changes.
- Comparing a weighted index to an unweighted one across two reports and reading the difference as a price move.
- Indexing per unit across mixed pack sizes. Equivalize first.
- Using an effective index to set an everyday price. You will match a competitor's promoted price with your shelf price.
- Treating 100 as the goal. Parity is a position, not a target. A brand with a real functional difference should index above the set and should be able to say by how much and why.