"410–650 ml, assorted, $3.79."
Read that as a product and you'll end up comparing things that aren't products. It's the kind of line that shows up in flyers every week — and until now, we partly treated it as one.
What we're building right now is a product catalogue: one durable page for every package sold in Quebec. Here's why, and what it changes for you.
A price without a product means nothing
A deal is always measured the same way: the price of a product, compared with the price of the same product somewhere else, or at another time.
The whole difficulty is "the same product". In a flyer, a single line can mean:
- one exact package (Barilla spaghetti 410 g);
- a size range (410–650 ml);
- several flavours at once ("assorted");
- several sizes at once ("170 g or 225 g").
None of those four things is a product. They are offers: a price a store advertises, for certain packages, on certain dates, in a region, with conditions attached (loyalty card, 2 for $5, limit of 4).
Treat them as products and two things go wrong: comparisons end up pairing two different things, and pages assert a size the flyer never printed.
What we found in our own data
One example we can quote, because it came out of our own checks: a deal card showed "473 g" for an IGA flyer that printed "237–473 ml". The size on display did not come from the flyer.
Two causes, both mundane:
- a range or an "assorted" line gets recorded as a product;
- a size read off another store's line gets copied onto this one — and a copy is not evidence.
We also have tens of thousands of shelf prices recorded in stores that aren't yet attached to an exact package. They are real and correct, but they can't be used for comparison yet: we don't know with certainty which package they belong to.
The words we use (and why they matter to you)
| Word | What it is | Example |
|---|---|---|
| Brand | What you pick in the aisle. A store brand is a brand too. | Barilla · Sélection |
| Product | Brand + product name. It holds the varieties. | Sélection salad dressing |
| Variety | The flavour, type or shape. All sizes of one variety compare with each other. | Caesar |
| Package (size) | One variety in one physical format. It's what a barcode identifies, and what a price history belongs to. | Caesar 425 ml |
| Offer | One store's price, for given dates, with its conditions. | Metro, Sep 24–30: dressing 410–650 ml, assorted, $3.79 |
So "410–650 ml, assorted, $3.79" is not a product — and it isn't a package either. It's an offer covering a group of packages. We'll record it as exactly that, then link it to each package it covers, without pretending it is only one.
That part is visible to you: today, those ads aren't reachable from any product page. Joint ads that genuinely exist in flyers never make it to your screen.
"Assorted" is not a flavour
A detail that sounds technical and isn't: when a flyer says "assorted", it does not mean every flavour is on sale. It means the flyer didn't name the flavours.
We'll record it as what it is: varieties to confirm, not one product that swallows all of them. For you the difference is plain: a page must never advertise a price for a flavour nobody advertised.
Two labels, one package
A package can carry two labels. "2 lb" and "908 g" are the same package. "1 lb" and "455 g" are not — that isn't the same weight.
We replaced the rough tolerance with a closed list of label pairs that actually exist, plus sizes confirmed straight off a package. Counts stay exact at any size: 12 × 200 ml is not 1 × 2.4 L, and a four-pack is not a single.
The corollary matters for shrinkflation: a real size change is a new package of the same variety. That's exactly what we want to be able to see — and it's what makes a shrinking package visible.
Where we actually are
- The catalogue is not live. Nothing has changed for you.
- The first piece — the one that stops manufacturing "products" out of ranges and sets — is written and tested, but behind a switch that is off. An independent review asked for changes before we turn it on; that work is underway.
- The 71 "products" of that kind already created will be converted one at a time, with human checking. No migration deciding on its own behind your back.
- Our general rule: an automatic rule starts by proposing, gets confirmed, and only runs on its own once it has earned it.
What it will change for you
Once it's in place, every package gets a page that says:
- what it is — brand, product, variety, size — in French and English;
- where it's on offer this week, and what it takes to get that price (card, quantity, limit);
- how it compares per litre or per kilo with the brand's other sizes;
- every dated price we've recorded for it, by store and region.
It's the same idea as the rest of the site, one level lower: the price, for real starts with knowing which package we're talking about.