Product matching in price monitoring: exact matches, different pack sizes and equivalent products
Product matching means finding, for each of your products, its counterpart in a competitor’s range, so that you compare prices on the same thing. An exact match by EAN code is not always available: a chain may sell a different pack size, a private label or a product from another brand. That is why matching has several levels: an exact match, the same product in a different pack size, and an equivalent. The first two can be counted in the market price, provided you convert the price to the same volume. An equivalent is worth showing alongside, but should not be mixed with exact prices.
Why competitor prices alone are not enough
Competitor price data usually arrives as thousands of rows: the product name as it is written on the shelf or the website, the price, the date, the store. The main thing is missing: the link between each row and your product.
So someone on the team reads “Still Mineral Water 0.5L PET” and decides which of your twelve water SKUs it actually is. Row by row, thousands of times. And again after every update, because ranges change, promotional packs come and go, and chains rename items.
Here is what it costs:
- Days of work for every update. If data arrives weekly and matching takes three days, the team spends most of the week rebuilding the same links.
- Fatigue errors. After a few hundred rows, similar names blur together. One wrong match quietly distorts the comparison for the whole category.
- Prices go stale while they are being matched. Promotions in grocery chains change every week. Decisions are made on prices that are no longer on the shelf.
- A ceiling on scale. Ten stores and 500 products are still manageable. Five chains and 5,000 products are not, so coverage gets fitted to what people can handle rather than to what the business needs.
- Knowledge in one person’s head. The matching logic lives in one person’s memory and in one spreadsheet. When that person leaves, everything starts from scratch.
Three types of match: exact match, different pack size, equivalent
The most common mistake is to assume there is only one kind of match. In fact, a match can vary in “strength”, and that determines what you can do with its price.
- Exact match. The same product: same brand, type and volume. The most reliable proof is the EAN code.
- Different pack size. The same product in a different volume or quantity: 0.7 L versus 0.75 L, a 900 g pack versus 1 kg, a six-bottle pack versus a single bottle.
- Equivalent. A different product serving the same purpose: a chain’s private label (own brand) instead of a branded product, or another brand in the same price segment.
There is also a fourth case, the line variant: the same brand but a different flavour or colour. It is useful as a reference point when the chain does not carry the flavour you need.
These types must not be lumped together. If you count an equivalent as an exact match, the conclusion “we are 12% more expensive” actually means “we are 12% more expensive than something else”. You cannot base a pricing decision on a figure like that.
How automated matching works
Automated matching is not one clever algorithm but a sequence of checks, from the strongest evidence to the weakest. This is how it works in Costless Insights.
1. EAN code first
The EAN code is a global product identifier: with rare exceptions, the same code means the same product in any chain. A product with an EAN code is matched automatically, with no guesswork. That is why a column of EAN codes in your catalogue is the cheapest way to improve the quality of your analytics.
The exceptions are worth knowing. A manufacturer may reuse an old code for an updated or entirely different product. And chains have their own internal codes that look like EAN codes but are valid only within that chain. So the system should check even a code match against the name and volume.
2. Then name similarity, followed by checks
Promo flyers, chains’ social media posts, receipts and many websites carry no EAN code. Shelf price tags do not always have one either: often they show the chain’s internal code. Here products are compared by the meaning of the name: “Sparkling Mineral Water 0.5L” and “Mineral Water Highly Carbonated 500ml PET” end up side by side, even though they are written differently.
But a similar name is not yet a match. A candidate has to pass several checks:
- Product type. Dumplings cannot be matched to flour, no matter how many words the names share.
- Brand. For an exact match, the brand must be the same.
- Volume and units. 0.5 L, 0.05 L and 5 L are three different products.
- Variant. Flavour, fat content, vintage for wine. A 2019 wine and a 2021 wine are different items with different prices.
3. Anything doubtful goes to a person
Whatever does not pass the checks with confidence should not be linked by the system on its own. It should be offered as a suggestion for a person to confirm or reject. It is better to leave a product unmatched than to link it to the wrong one.
Different pack size: converting to the same volume
A chain may not sell your exact pack size. If it is the same product, the competitor’s price is converted to your volume. Example: you have a 0.7 L bottle, the competitor has 0.75 L at 210 UAH. Converted to 0.7 L, that is 196 UAH, and this is the figure to compare against. Otherwise the smaller pack will always look cheaper.
Three rules without which conversion does more harm than good:
- Only within the same unit. Grams are not compared with millilitres.
- Unknown volume means no conversion. If the competitor’s pack volume could not be established, the price is shown as is and left out of the calculations.
- Too large a deviation goes to review. If prices differ by more than 80% after matching, different pack sizes are most likely being compared: for example, a pack of ten versus a single item. A pair like that should be reviewed, not counted.
The most insidious errors are not “wrong product” but wrong order of magnitude. In a spreadsheet they look plausible:
- 0.5 read as 0.05. One misplaced decimal point, and the bottle becomes ten times more expensive.
- Pack versus single item. Six 0.5 L bottles matched to a single bottle make the competitor six times more expensive.
- Sold by weight versus sold by the piece. A price per kilogram and a price per item are not a comparison at all.
The unit price is a separate help: per kilogram, litre, square or linear metre, or item. Cable is easy to compare per metre regardless of the coil length, and tiles per square metre.
Equivalents: when there is no exact match
Often an exact match simply does not exist. A chain sells its own private label, which is not available anywhere else. A manufacturer produces an exclusive pack size for a chain. Your brand is just not stocked by the chain, but three others are, and shoppers compare you with them. In all these cases you need an equivalent.
How to choose an equivalent
It helps to split the attributes into mandatory and supporting ones. The mandatory ones screen out candidates; the supporting ones help you pick the best of those that remain.
Mandatory:
- the same product type and the same purpose;
- the same shopper: a children’s product is not an equivalent of an adult one, nor is a plant-based drink an equivalent of milk;
- a comparable volume: a small pack is not compared with a sack.
Supporting:
- price segment;
- composition and key characteristics;
- pack format.
Flavour or shade is usually not an obstacle: one brand’s strawberry yoghurt is an equivalent of another brand’s peach yoghurt if the other attributes match.
Where equivalents let you down
- Premium versus economy. An economy private label and a premium brand meet different needs. The price gap between them is the price of the brand, not a sign that you are uncompetitive.
- Concentration and dose. A concentrated gel that lasts 40 washes and a regular one that lasts 20 may have the same volume. Price per litre is misleading here; what you need to calculate is the price per wash.
- Pairs go out of date. Products are delisted, recipes change, packs shrink at the same price. Equivalent pairs are worth reviewing whenever you review the range.
What to do with an equivalent’s price
An equivalent’s price is taken as is, with no volume conversion, and shown alongside with a label saying it is an equivalent. By default it is not included in the minimum market price. If you need equivalents in your calculations, this is switched on with a separate report setting. What matters is that it is your choice, not a side effect of match types getting mixed up.
And above all: an exact match can be the basis for a pricing decision, whereas an equivalent only suggests where to look. The decision is made by the category manager.
Who confirms the pairs
The person who runs the category knows best whether two products really compete for the same shopper. That is why, in Costless, equivalent pairs go through you:
- the system suggests candidates, and you confirm or reject them;
- a rejected pair is not suggested again;
- you can add your own link manually, and it takes priority over all others;
- a link is created once and works in every chain that carries the product.
Besides your own links, there are platform-wide pairs confirmed by our moderation team. They fill the cells for chains that do not carry your pack size. Equivalents from the shared set are first shown for reference. If a pair suits you, pin it with one click: it becomes your link, and you decide whether to include it in reports.
Accuracy and coverage: how to assess matching quality
The phrase “99% accuracy” with no explanation tells you very little. Matching quality is described by two figures, and you need to look at both.
- Accuracy is the share of the matches found that are correct.
- Coverage is the share of your range for which a match was found at all.
They pull in opposite directions. Stricter checks produce fewer wrong matches, but more products are left unmatched. Looser checks fill more cells, but some of them will be wrong. A wrong match is worse than an empty cell: you can see an empty cell, while a wrong match spoils the numbers unnoticed.
What to ask your data provider
- Who does the matching: you or the provider? If you are handed raw rows, your team’s days of work are part of the true price.
- Are EAN codes used wherever they are available?
- Are exact matches, pack sizes and equivalents kept distinct? And does the report show which price comes from which type of match?
- What happens with 0.5 L versus 0.05 L, with multipacks and with products sold by weight?
- Who decides how equivalents are used? Ideally, you choose for yourself whether to include their prices in the market price calculation or just show them alongside.
- Can you review and correct a match? And does the system remember the correction?
- Does the provider see the shelf, not just websites? For brands this is especially important: brand monitoring makes sense where the product is actually sold.
Frequently asked questions
What is product matching in price monitoring?
It means finding, for each of your products, its counterpart in a competitor’s range, so that you compare prices on the same thing. Without matching, competitor price data remains a list of rows that you cannot work with.
How does an equivalent differ from an exact match?
An exact match is the same product: same brand, type and volume, usually with the same EAN code. An equivalent is a different product serving the same purpose, for example a chain’s private label instead of a branded product. The price of an exact match can be counted in the market price; the price of an equivalent is best shown alongside for reference.
Can you compare products in different pack sizes?
Yes, if it is the same product and the volume of both packs is known. The competitor’s price is converted to your volume: 210 UAH for 0.75 L corresponds to 196 UAH for 0.7 L. Conversion is only possible within the same unit of measure: grams are not compared with millilitres.
How do you compare a private label price with a branded product?
As an equivalent: the same product type, the same purpose, a comparable volume. Pay attention to the price segment. An economy private label and a premium brand meet different shopper needs, so the price gap between them says little about how competitive you are.
Should you change a price automatically based on an equivalent?
No. An equivalent is a different product, and the price difference may be explained by brand, composition or concentration. An equivalent’s price suggests where to look, while the decision is made by the category manager.
Who should confirm equivalent pairs?
A person who knows the category. The system can suggest candidates, but it is the category manager who knows whether two products really compete for the same shopper. Ideally, a confirmed pair is saved for good and a rejected one is not suggested again.
What does “99% matching accuracy” mean?
Without an explanation, almost nothing. Ask what sample it was measured on, whether only exact matches are counted or equivalents too, and what the coverage is, that is, the share of your range for which a match was found at all. Stricter checks raise accuracy and reduce coverage.
Where to start
Start with a catalogue that includes EAN codes: the exact matches will fall into place on their own. Then go through the products left unmatched and pin a different pack size or an equivalent for each. It is a one-off job that then works for you every day.
Costless maintains a single product catalogue across 100+ retail chains and updates prices anywhere from daily to weekly, depending on the chain. How the data is collected and verified is described on the methodology page. Create an account or get in touch, and we will show you matching on your own range.
Try Costless for your business
Price and assortment monitoring across retail chains, online and on the physical shelf.