ShopHop · Methodology · Last updated 17 August 2026

How we do it

ShopHop tracks tens of thousands of advertised prices at Woolworths, Coles and Aldi, updated daily. This page documents how we detect specials with unsupported “was” prices, how we cross-reference products across retailers, and how anyone can verify our findings.

Data collection

We capture the publicly visible product listings at Woolworths, Coles and Aldi on an ongoing basis. Each capture records the advertised price, any “special” or “was” price, the unit price, pack size, and category. Snapshots are timestamped and stored permanently — we never overwrite historical records.

Coverage as of 17 August 2026: 62,359+ products across 3 retailers, with over 12,175,070 price snapshots in our archive.

What we capture per product
  • Advertised price and any “was” / regular price
  • Sale flag (whether the retailer marks it as a special)
  • Unit price and pack size
  • Brand, category, and product name exactly as shown online
  • Timestamp in AEST

Cross-store matching

When the same product is sold at multiple retailers, we link the listings to a single canonical product. This powers our “where to buy” comparisons and cross-store price records.

A pair of products is only treated as the same item when they line up on every dimension that matters:

  • Same brand
  • Same size (a 500g pack is never merged with a 600g one)
  • Same pack count (a multipack is never treated as a single)
  • Same variant or flavour (Original ≠ Sour Cream & Chives)
  • Same form (liquid ≠ powder, fresh ≠ frozen)

Matches are built by automated rules (barcode when available, brand + size + name similarity, hard vetoes for flavour/variant/pack conflicts). Ambiguous pairs go to a manual review queue — we do not hand-check every mapping. We deliberately err on the side of not matching when there is any doubt — a wrong match is worse than a missing one.

Every mapping is recorded with its source and confidence. Cross-store coverage is intentionally incomplete (private-label and ALDI exclusives often have no counterpart). Staples are prioritised for precision over raw match count.

How we flag questionable specials

The Federal Court found in May 2026 that Coles made misleading representations about 13 of 14 sample Down Down tickets examined at trial (the ACCC's case covers 245 products) — prices were temporarily raised before promotions so the “discounted” price was the same as or higher than the original. ShopHop automatically flags a simpler, related pattern in its own data. Our flag is an indicator, not a legal test.

Public “questionable special” flags on ShopHop are gated by our own observation density — we will not call a special misleading until we have watched the product on enough days. The shipped consumer detector works like this:

1
Dense observation first
We require dense coverage of the last 90 days (84 observed days at full archive depth — about 93%). While our scrape archive is still younger than 90 calendar days, we scale the gate to ~93% of available history (never below 56 days). Below that floor we show “still building history”.
2
Was-price establishment (ShopHop benchmark)
Among those days, if the advertised “was” / regular price applied on fewer than 28 days, we classify short-establishment. This is ShopHop’s working benchmark informed by ACCC commentary — not a statutory rule. The court uses a contextual “reasonable period” test.
3
Three methodology conditions
We also check: (a) special at or above the 90-day median; (b) price raised more than 15% within 30 days then “dropped” to at/above the prior median; (c) a lower price within the last 60 days. Peak-then-drop maps to was-price-inflated; recurring saw-tooth maps to price-cycling.

Published tiers use neutral labels (observed special, limited “was” history, recurring pattern, price rose then fell). We cite exact dates and prices from our scrape history — verifiable on the product chart. Classifications below our confidence threshold are not shown; patterns that may reflect legitimate cost movement go to a human review queue first.

Detection becomes strongest once a full 90-day baseline is available. The current public baseline is 196-day price history.

How to verify our findings

Every product page on ShopHop shows the available price history as a chart. The dates and prices we cite in explainers are always verifiable from the chart on the product page — click any flagged special to see the underlying data.

Our scraping timestamps, shelf prices, and sale flags are recorded as shown on the retailer's own product pages. We don't adjust shelf prices, but we recalculate a unit price when the retailer's figure is missing or inconsistent with the pack size.

Limitations

We track online advertised prices, not in-store prices. These can differ. Loyalty pricing (Everyday Rewards, Flybuys) is not tracked as such. Some Woolworths specials shown publicly are members-only and may appear in comparisons, labelled where we can detect it.

Our cross-store matching is generally reliable but not perfect. Mappings flagged as uncertain are excluded from automatic comparisons until human-verified. If you spot an incorrect match, email us.

Prices are refreshed daily and can lag real-world changes by a day or two. In-store prices may vary and are not verified by ShopHop.

For media and researchers

ShopHop is independent. We accept no payment from any retailer, brand or industry body to influence coverage or rankings. We do not currently use affiliate links or earn commission on clicks through to retailers. All data presented on this site is derived from publicly available product listings.

Journalists, researchers, and government bodies can request the raw underlying snapshot data for analysis.

Media enquiries: press@shophop.auData requests: data@shophop.au

Prices shown are sourced from publicly visible online listings and may not reflect current in-store prices. Data is refreshed regularly. Learn more about ShopHop and our price data

Methodology | ShopHop