Competitor pricing analysis: a category manager's playbook
A competitor pricing analysis is only useful if it changes a price. The category manager's playbook for turning competitor data into margin-safe moves.
Most competitor pricing analysis dies in a spreadsheet. Someone pulls a few hundred competitor prices, colour-codes the ones where you're higher, sends the tab around, and nothing moves. Two weeks later the prices have drifted, the file is stale, and the next analysis starts from scratch. The work happened. The price didn't change. That is the failure mode this playbook is built to avoid.
A competitor pricing analysis is only worth doing if it ends in a decision: hold, match, undercut, or deliberately sit above. Everything before that decision is plumbing. The job of a category manager is not to produce the prettiest comparison grid - it's to turn competitor data into margin-safe moves, fast enough that the data is still true when the price publishes. Here is how to run it so it actually does that.
The pressure to get this right keeps rising. Per Salsify's 2026 consumer research, 39% of shoppers are now comparing prices more carefully before buying - and that's against a backdrop where consumer sentiment recently hit a record low and 57% of shoppers named high prices as the thing eroding their finances. When the customer is checking three tabs before they buy, a competitor pricing analysis that takes two weeks to act on is a competitor pricing analysis that has already lost.
Step 1 - decide which competitors actually matter
The first mistake is monitoring everyone. You do not compete with every retailer that sells the same SKU. You compete with the two or three that your shopper actually considers in the moment of purchase - and that set changes by category. The discounter down the road sets the floor on your known-value items; a specialist sets the reference on your long tail; a marketplace seller might only matter on a handful of commoditised lines.
Before you pull a single price, write down, per category, the competitors whose price your shopper checks. Three is usually enough. Adding a fourth and fifth feels thorough but it dilutes the signal - you end up reacting to a competitor your customer never visits, and chasing a price that doesn't influence a single basket. If you can't say why a competitor is on the list, take them off it. This is the cheapest accuracy you'll ever buy: a tight, defensible competitor set per category beats a wide, noisy one every time.
Step 2 - match products, not just names
This is where most competitor price comparison work quietly breaks. A name match - "our Brand X 500ml" against "their Brand X 500ml" - looks right and is often wrong. Pack sizes differ. Bundles hide the unit price. A multi-buy on their side makes a like-for-like line look uncompetitive when the single-unit price is fine. Private label has no shared identifier at all, so it never matches automatically and gets dropped - which is exactly where some of your sharpest competitive exposure lives.
The discipline is to match on what the shopper actually compares, then normalise to a common unit. Three rules hold here:
- Match to the shopper's eye, not the barcode. If a shopper would see two products as interchangeable, they're a match - even if the EAN differs. If they wouldn't, they're not, even if the brand and size are identical.
- Normalise to unit price. Convert everything to price-per-litre, per-kilo, per-100-units, whatever the category uses. Compare normalised. This is the single biggest source of false "we're expensive" alarms.
- Tag the match confidence. Exact, close, or proxy. You will treat a price gap on an exact match very differently from a gap on a proxy match - and the person reading your analysis needs to know which is which before they act.
Matching is the unglamorous core of the whole exercise. Get it wrong and every downstream number lies. Get it right and the rest of the playbook runs on rails.
Step 3 - turn prices into a price index, not a wall of numbers
A grid of raw competitor prices is not analysis - it's homework you've handed to whoever reads it. The unit of decision is the price index: your price as a percentage of the competitor benchmark, per matched product. Index 100 means you're level. 104 means you're 4% above. 96 means 4% below. Now a category director can scan a column and see exactly where the exposure is, without doing arithmetic in their head.
Build the index against the benchmark that matters for each product - usually the lowest of your named competitor set on price-led lines, or the average where you're competing on range rather than price. Then summarise upward: an index by sub-category and by product role tells you the story in ten rows that the SKU-level grid buries in ten thousand. The SKU detail still has to exist underneath - someone will need it to act - but the conversation happens at the index level.
One caution: an index is only as honest as the match underneath it. A category sitting at index 88 might be genuinely cheap, or it might be a pile of proxy matches and unnormalised pack sizes. This is why match confidence from Step 2 travels with every number. An index without provenance is a confident-looking way to make a wrong decision.
Step 4 - segment the gap by product role
Not every price gap deserves a response, and the ones that do don't all deserve the same response. The lever that sorts this out is product role. The same 5% gap means opposite things on a known-value item and on a long-tail line.
Known-value items (KVI). These are the products shoppers price-check and remember - the ones that set your price reputation. On KVIs you generally want to be at or below the benchmark, because a visible gap here costs you trust on the whole basket. A KVI sitting at index 106 is an alarm, not a margin opportunity.
Background and long-tail lines. Products shoppers rarely price-check. Here a gap above the competitor is usually margin you're entitled to keep, not a problem to fix. Reflexively matching down on the long tail is one of the most common ways category teams give away margin for no traffic in return.
Traffic-builders and destination lines. Items where being visibly sharp pulls baskets. These can justify sitting below the benchmark on purpose, funded by the margin you hold on the background lines.
If you don't have a product-role classification, building one is the highest-leverage thing you can do for pricing - more valuable than any single analysis, because it makes every future analysis decisive instead of merely descriptive. Without roles, a competitor pricing analysis can tell you where the gaps are but not which ones to close.
Step 5 - convert the gap into a move with a rule, not a gut call
Here's the step that separates analysis that ships from analysis that circulates. Every meaningful gap needs to resolve into one of four moves: hold, match, undercut, or hold-above-with-a-reason. The way to make that repeatable - and defensible - is to express it as a rule rather than a one-off judgement.
A rule reads in plain language and runs the same way every week: "On KVIs, match the lowest of our named competitor set, but never below cost plus 12%, and round to .99." "On long-tail lines, hold unless we're more than 8% above the benchmark, then close half the gap." The point of writing it as a rule is twofold. First, it scales - you're not hand-deciding ten thousand SKUs. Second, it's explainable: when a supplier or your boss asks why a price moved, the answer is the rule and the gap that triggered it, not "it felt high." Pricing decisions that can be explained clause by clause are the ones that survive scrutiny, and they're the only kind worth automating.
The honest exceptions - the SKUs where the rule produces a price you disagree with - are where your judgement actually adds value. A good rule engine handles the 95% so you can spend your attention on the 5% that genuinely need it. That's the inversion that makes competitor pricing analysis sustainable: the machine does the comparison, you make the calls that need a human.
How often to run a competitor pricing analysis
Competitor prices change daily, sometimes hourly - large retailers change prices on tens of thousands of lines a month. That does not mean you should. The right cadence is set by how fast your competitors move on the lines that matter, not by what's technically possible.
A workable default for most mid-market categories: monitor KVIs and traffic-builders frequently - daily to a few times a week - because that's where a competitor move costs you baskets fastest. Run the full category index weekly, tied to your trading rhythm, so the analysis lands the day before you publish prices. Review the long tail monthly; it doesn't move fast enough to justify more. The failure mode at both ends is real: monitor too rarely and you're defending last month's prices; monitor everything constantly and you drown the signal and burn the team. Match the cadence to the category, and revisit it when a competitor changes behaviour.
What this doesn't change
A competitor pricing analysis tells you where you stand relative to others. It does not tell you whether your prices are right. A category can be perfectly aligned to competitors and still be leaving margin on the table, or chasing a price war nobody wins. Competitive position is one input to a pricing decision - alongside cost, elasticity, strategy, and what you're trying to be known for - not the whole decision.
It also won't fix a broken product-role classification, reconcile a messy cost file, or decide your positioning for you. If you haven't decided whether a category competes on price, range, or service, no amount of competitor data will resolve that - it'll just give you a very precise picture of a question you haven't answered. The analysis is a tool for executing a strategy, not a substitute for having one.
What it does, done well, is close the gap between knowing and doing - so the work that goes into the comparison actually ends in a price that moves, while the data is still true. That's the whole game. If your team is producing competitor pricing analysis that never quite turns into a price change, the bottleneck is usually matching and roles, not effort - and that's a fixable problem. We're happy to compare notes on how mid-market category teams are running this, or to show how competitor price monitoring looks when the analysis and the repricing rule live in the same place.