Introduction
Coles vs Woolworths product matching is the step that decides whether an Australian grocery price comparison is trustworthy. Scraping two shelves is easy. Proving that a 1 kg tub on one site is the same item as a 1 kg tub on the other is the hard part.
Short answer: Coles vs Woolworths product matching links each Coles product to the same or nearest comparable Woolworths product, using brand, pack size, variant and barcode where available. Each pair gets a match type and confidence score, prices are normalised to unit price, and doubtful pairs are reviewed before analysis.
This guide covers why matching matters in 2026, the data fields you need, a step-by-step matching method, how to extend it to Aldi and IGA, and the compliance basics. It is written for pricing teams, FMCG brands and comparison apps rather than shoppers.
Why does Coles vs Woolworths price comparison need product matching?
Most people search "Coles vs Woolworths price comparison" as shoppers. Businesses ask a different question: across thousands of SKUs, where are the two chains priced differently, and how often do promotions change the answer? That question only works when every row compares like with like.
The stakes are high. In its final supermarkets inquiry report (released 21 March 2025), the ACCC estimates Woolworths has 38% of supermarket grocery sales nationally and Coles has 29%, with ALDI at 9% and Metcash (a proxy for independents) at 7%. Together, Coles and Woolworths hold about two-thirds of supermarket grocery sales.
The same report found that more than half of products purchased at Coles and Woolworths are on promotion, and that promotional practices can make value hard to judge. It also recommended that very large chains make application programming interfaces available with dynamic price information for third parties (same report).
Who uses a matched dataset?
- FMCG brands checking that their SKUs are priced and promoted consistently across both chains.
- Comparison and budgeting apps that need clean pairs before showing shoppers a "cheaper at" badge.
- Retail analysts and economists tracking price gaps, shrinkflation signals and promotion depth over time.
- Independent grocers and wholesalers benchmarking shelf prices against the two majors.
The 4 Australian grocery platforms that matter and how they differ
Coles and Woolworths are the core pair, but a complete dataset usually adds Aldi and IGA. Each one changes how matching works. Independent consumer testing shows why: in CHOICE's June 2026 basket survey, a 16-item basket without specials cost $68.60 at Aldi, $77.53 at Woolworths, $78.58 at Coles and $91.65 at IGA.
| Retailer | Range profile | Matching challenge | Typical match type |
|---|---|---|---|
| Woolworths | Large branded range plus Woolworths own brands | Many pack-size and multipack variants | Exact (same brand, size, variant) |
| Coles | Large branded range plus Coles own brands | Own-brand tiers differ from Woolworths tiers | Exact for brands; equivalent for own brands |
| Aldi | Mostly exclusive or private-label products | Few shared barcodes with the majors | Equivalent (closest comparable product) |
| IGA | Independently owned stores, prices vary by store | Store-level variation; smaller home-brand range | Exact for brands; store or state reference needed |
IGA's own Price Match terms show how retailers think about equivalence: they match on identical pack size, colour, flavour and variety, adjust different sizes pro rata, and fall back to the closest comparable product when no identical item exists. A good matching dataset makes that same logic explicit and auditable.
The 10 data fields you need for accurate matching
Matching quality depends on what you capture. These are the fields we recommend collecting from each retailer's public product pages:
- Retailer product ID. The stable product code shown in the product URL or page, used as the primary key per retailer.
- Product name. The full title as displayed, kept raw and also in a cleaned form for matching.
- Brand. Captured separately, with own-brand labels (such as Coles or Woolworths ranges) flagged.
- Pack size and unit. Split into a number and a unit (g, kg, mL, L, each) so sizes can be compared.
- Pack count. Multipacks such as 6 x 375 mL need a count field, not just a total volume.
- Variant attributes. Flavour, fat level, scent, colour or format – the details that make two items different.
- Shelf price and promo price. Both prices, plus the promotion label and any multibuy rule.
- Unit price. The displayed price per 100 g, 1 kg, 100 mL or each, as shown on the site.
- Category path. The retailer's own category breadcrumbs, used to narrow candidate matches.
- Barcode (GTIN) where public. When a public page shows it, it is the strongest identifier.
Barcodes help most, because the same branded item usually carries the same barcode at every retailer. They are not always shown on retailer pages, though, so most pipelines still need attribute-based matching as a fallback.
How to collect, clean and match the data
Coles vs Woolworths product matching works best as a staged pipeline rather than one big fuzzy-match step. Here is the method we use.
- Collect. Capture public product pages from each retailer on a fixed schedule, for one location or a set of postcodes, because prices and ranges can vary by store.
- Normalise. Clean names, standardise units (1000 g becomes 1 kg), split multipacks and separate brand from title.
- Block. Only compare items in the same broad category and brand group, which cuts false matches and speeds things up.
- Match. Use barcode first, then brand + size + variant rules, then text similarity on cleaned names for the remainder.
- Score. Give every pair a match type (exact, equivalent, no match) and a confidence score.
- Review. Send low-confidence pairs to a human reviewer and record each decision in a QA log.
- Compare. Calculate gaps on unit price as well as shelf price, with and without promotions.
What do match types and scores look like?
| Match type | Rule | Example use |
|---|---|---|
| Exact | Same brand, same size and same variant (barcode match where available) | Branded price gap and promotion tracking |
| Exact – size adjusted | Same brand and variant, different pack size; compared on unit price | Shrinkflation and pack-price architecture analysis |
| Equivalent | Own-brand or private-label item judged closest comparable | Basket comparison including Aldi |
| No match | No reliable counterpart found | Range and assortment gap reporting |
Ask for each pair to carry its match type, a confidence score and a QA log of reviewed decisions, so your team can filter by confidence before reporting; the exact outputs are agreed when we scope the project.
Common matching mistakes to avoid
- Matching on name only. "Full cream milk 2L" and "Lite milk 2L" look alike but are different products.
- Ignoring multipacks. A 10-pack and a 24-pack of the same can should not be treated as one price point.
- Mixing promo and shelf prices. Keep both, and flag the promotion type, or gaps will swing week to week.
- Assuming national prices. Prices and availability can differ by store, so record the location used.
Unit pricing and promotion strategy by category
Unit price is the fairest common currency when pack sizes differ. In August 2025 the federal government announced a consultation on strengthening the Unit Pricing Code, including options on readability, retailer coverage, consistent units of measure and civil penalties (Treasury media release). As of the Government's May 2026 response to the Senate committee, it was still consulting on options and had not announced final changes or a start date (Treasury, Government response, May 2026).
Until any changes take effect, your dataset should calculate its own unit price from pack size, rather than relying only on the displayed figure. The table below shows how strategy changes by category.
| Category | Best match key | Unit basis | Watch out for |
|---|---|---|---|
| Dairy and eggs | Brand + size + fat level | Per litre / per dozen | Own-brand tiers; free-range vs cage-free |
| Pantry and packaged food | Barcode or brand + size + flavour | Per 100 g | Frequent half-price promotions |
| Drinks | Brand + volume + pack count | Per 100 mL | Multipacks vs singles |
| Household and cleaning | Brand + size + scent | Per 100 mL / per each | Bonus-pack sizes |
| Fresh produce | Equivalent only (loose vs pre-packed) | Per kg | Weight-based pricing; quality grade |
| Health and beauty | Brand + size + variant | Per 100 g / per each | Bundle and gift-pack listings |
Use cases for a matched Australian grocery dataset
- Price gap monitoring. Weekly reports showing where Coles or Woolworths is cheaper on exact matches, by category.
- Promotion tracking. Measure how often matched products are on special at each chain, and how deep the discount is.
- Shrinkflation signals. Flag products whose pack size falls while the shelf price holds steady.
- Private-label benchmarking. Compare own-brand equivalents across Coles, Woolworths and Aldi baskets.
- Comparison app feeds. Supply clean pairs and unit prices to a consumer price comparison product.
A typical project we see: an Australian grocery comparison app needing a matched Coles and Woolworths dataset with weekly promotion updates, delivered as CSV. [Add result from delivery team]
Legal and compliance basics
Matching should only use publicly available product and price information. Respect each retailer's robots.txt, terms of service and sensible rate limits, and never log in, bypass security or collect personal data such as shopper reviews tied to individuals.
- Public data only. Prices, product names, sizes and categories shown to any visitor.
- Polite collection. Scheduled, throttled requests rather than heavy, continuous crawling.
- Watch for official feeds. If price APIs recommended by the ACCC become available, prefer them where they fit your use case.
- Clear labelling. Mark equivalent matches as judgement calls, not exact matches, in any published comparison.
Build vs buy: choosing a matching provider
Building in-house gives full control, but matching needs ongoing upkeep: ranges change, products are renamed and promotions rotate weekly. Buying a managed feed moves that upkeep to the provider.
| Factor | Build in-house | Managed provider |
|---|---|---|
| Setup time | Weeks to months for collection, rules and review tooling | Faster start with an agreed field list and sample |
| Maintenance | Your team fixes broken collectors and rules | Provider maintains collectors and match rules |
| Quality control | You design scores and review steps | Ask for match types, scores and a QA log |
| Coverage | Usually starts with two retailers | Can add Aldi, IGA and more locations |
When comparing providers, ask for a sample file with match types, a clear definition of "equivalent", the location used for prices, and how often the data refreshes.
Get a free sample dataset. Want to see matched Coles and Woolworths products before you commit? Tell us your categories, locations and refresh frequency, and we will prepare a sample file with product fields, unit prices and match types. Contact Sales to request your free sample.
Questions
Frequently Asked Questions
It is the process of pairing each Coles product with the same or closest comparable Woolworths product, using brand, pack size, variant and barcode where available, so price comparisons are like-for-like.
It depends on the basket and the week. In CHOICE's June 2026 survey, Woolworths was slightly cheaper than Coles on a 16-item basket, but results vary by product and promotion (CHOICE).
Convert both to the same unit price, such as per 100 g or per litre, and label the pair as a size-adjusted match rather than an exact match.
Usually only as equivalents, because most Aldi products are private label. Match on category, size and key attributes, and keep equivalents separate from exact matches.
Weekly is common because many promotions run on a weekly cycle. Some teams add more frequent checks for high-priority SKUs.
Collecting publicly displayed prices is common practice, but you should follow each site's terms, robots.txt and rate limits, avoid logins and personal data, and take legal advice for your specific use.
Get a Free Food Data Sample in 48 Hours.
Tell us your platforms, target markets and required fields — we'll map exactly what's possible with food data scraping, recommend the right approach, and send a working sample so you can verify quality before any commitment.
Request a strategy call
Thanks — our data team will reach out within 48 hours with your sample.

