Methodology · Canadian Grocery Price Index

How the CGPI is built

A weekly, weighted-Jevons grocery price index, computed from a fixed 50-item basket priced across 23 retailer banners and 13 Canadian cities. Documented end-to-end for the researchers, journalists, and analysts evaluating GroceryPulse as an alternative-data input.

Weekly
Update cadence
50
Basket items
9
Categories
23
Retailer banners
13
Cities
Same-week
Publication

How it works

Five automated stages run end-to-end every week, with no human in the loop between collection and publication.

  1. 01

    Collect

    Every Thursday at 08:00 UTC an automated pipeline reads publicly accessible retailer pages across 13 cities and 23 banners, extracting prices from server-rendered HTML.

  2. 02

    Match

    Each listing is matched to a canonical basket item by product type, then package size within ±10%, then variant. The cheapest valid match is kept.

  3. 03

    Compute

    Matched prices feed a weighted Jevons (geometric-mean) index rebased to 100, computed per city and banner and rolled up to a national figure.

  4. 04

    Audit

    After every run a stratified sample is re-queried against the live sites; any mapping that fails two consecutive weeks is automatically retired from the index.

  5. 05

    Publish

    The index is recomputed and published the same week — weeks ahead of Statistics Canada's monthly CPI and its three-week reporting lag.

Index formula

The CGPI is a weighted Jevons price index — a geometric mean of price relatives, the form recommended by the ILO/IMF Consumer Price Index Manual and used by Eurostat for elementary price aggregates.

It = exp( Σ wi × ln(Pit / Pi0) ) × 100
Iₜ
Index value at time t (base = 100)
wᵢ
Normalized weight of product i in the basket
Pᵢₜ
Price of product i in the current period
Pᵢ₀
Price of product i in the base period

Substitution-bias correction

The geometric mean implicitly accounts for consumers switching to cheaper alternatives when one product's price rises — the arithmetic mean of a Laspeyres index does not.

Symmetric price changes

A +50% increase and a −50% decrease offset each other exactly under Jevons. Under an arithmetic mean they do not, which biases the index upward.

The basket

50 products across 9 categories, weighted to approximate a typical Canadian household's grocery spend.

Meat & Protein
19.0%
7 items
Dairy & Eggs
15.0%
6 items
Pantry Staples
12.0%
7 items
Produce — Fruits
10.0%
5 items
Produce — Vegetables
10.0%
6 items
Household Essentials
9.0%
5 items
Bread & Bakery
8.0%
5 items
Frozen
8.0%
4 items
Beverages
7.0%
5 items

Weights approximate Statistics Canada's Food purchased from stores sub-basket and are renormalized to 100% inside the index. Bars are scaled to the largest category for legibility.

Full product listall 50 items with weights
#ProductCategoryWeight
12% Milk, 4LDairy & Eggs3.0%
2Butter, Salted, 454gDairy & Eggs2.5%
3Large Eggs, 12-packDairy & Eggs3.0%
4Cheddar Cheese, Medium, 400gDairy & Eggs2.5%
5Greek Yogurt, Plain, 750gDairy & Eggs2.0%
6Cream Cheese, 250gDairy & Eggs2.0%
7Chicken Breast, Boneless Skinless, per kgMeat & Protein4.0%
8Ground Beef, Lean, per kgMeat & Protein3.5%
9Pork Chops, Centre Cut, per kgMeat & Protein2.5%
10Bacon, 375gMeat & Protein2.0%
11Salmon Fillet, Atlantic, per kgMeat & Protein3.0%
12Canned Tuna, Chunk Light, 170gMeat & Protein1.5%
13White Bread, 675gBread & Bakery2.0%
14Whole Wheat Bread, 675gBread & Bakery2.0%
15Bagels, ~6-packBread & Bakery1.3%
16English Muffins, 6-packBread & Bakery1.3%
17Hamburger Buns, 8-packBread & Bakery1.4%
18Bananas, per kgProduce — Fruits2.5%
19Apples, ~2kg BagProduce — Fruits2.0%
20Strawberries, 454gProduce — Fruits2.0%
21Oranges, per kgProduce — Fruits1.8%
22Blueberries, Fresh 454g (1lb)Produce — Fruits1.8%
23Potatoes, 10lb BagProduce — Vegetables2.0%
24Onions, 3lb BagProduce — Vegetables1.5%
25Carrots, 2lb BagProduce — Vegetables1.5%
26Broccoli, per HeadProduce — Vegetables1.8%
27Tomatoes, per kgProduce — Vegetables1.8%
28Romaine Lettuce, per HeadProduce — Vegetables1.5%
29White Rice, 2kgPantry Staples2.0%
30Pasta, Spaghetti, 900gPantry Staples1.7%
31Canned Tomatoes, Diced, 796mLPantry Staples1.3%
32Peanut Butter, 1kgPantry Staples1.5%
33Canola Oil, 946mLPantry Staples1.5%
34Granulated Sugar, 2kgPantry Staples1.0%
35All-Purpose Flour, 2.5kgPantry Staples1.0%
36Frozen Pizza, PepperoniFrozen2.0%
37Frozen Mixed Vegetables, 750gFrozen2.0%
38Ice Cream, 1LFrozen2.0%
39Frozen Chicken Nuggets, 700gFrozen2.0%
40Orange Juice, 2.63LBeverages1.8%
41Ground Coffee, 300gBeverages1.8%
42Tea Bags, ~72-packBeverages1.0%
43Coca-Cola, 2LBeverages1.3%
44Bottled Water, 24-pack 500mLBeverages1.3%
45Paper Towels, ~6-rollHousehold Essentials2.0%
46Toilet Paper, 12-rollHousehold Essentials2.0%
47Dish Soap, 535mLHousehold Essentials1.5%
48Laundry Detergent, 1.47LHousehold Essentials2.5%
49Garbage Bags, 40-countHousehold Essentials1.0%
50Chicken Thighs, Bone-In, per kgMeat & Protein2.5%

Coverage & collection

23 banners across the three largest Canadian grocery parents plus two regional players — spanning discount and full-service formats in every province.

Loblaw Companies

10 banners
  • LoblawsOntario full-service flagship
  • No Frillsnational discount banner
  • Real Canadian Superstorelarge-format (Western Canada and Ontario)
  • Atlantic Superstorelarge-format (Atlantic provinces)
  • DominionNewfoundland full-service
  • MaxiQuebec discount banner
  • ProvigoQuebec full-service
  • FortinosOntario full-service
  • Wholesale Clubbulk / small-format
  • Your Independent Grocersmaller-market full-service

Empire Company (Sobeys)

8 banners
  • Sobeysnational full-service
  • FreshConational discount banner
  • IGAQuebec full-service
  • SafewayWestern Canada full-service
  • Foodlandsmaller-market full-service
  • Thrifty FoodsBC full-service
  • Farm BoyOntario specialty (via Voilà delivery)
  • VoilàSobeys online grocery delivery

Metro Inc.

3 banners
  • MetroOntario / Quebec full-service
  • Food BasicsOntario discount banner
  • Super CQuebec discount banner

Independents / regional

2 banners
  • Save-On-FoodsJim Pattison Group, Western Canada
  • Giant Tigerdiscount / general merchandise with grocery

Source

Prices come from publicly accessible retailer websites — the same product pages any consumer can view. Price data is extracted from the server-rendered HTML.

Product matching

  1. 1. Type — category must match (milk, butter, chicken breast…).
  2. 2. Size — package size within ±10% of the target.
  3. 3. Variant — specifics checked (salted butter, whole-wheat bread).

The cheapest valid match is used, reflecting shoppers' tendency to choose store brands and sale items.

Schedule

Collected every Thursday at 08:00 UTC (04:00 Eastern). A complete run covers all 13 cities and 23 banners; runtime is typically 10–30 minutes depending on retailer response times and rate-limit backoffs. The index is recomputed after each run.

Quality assurance

After every weekly scrape, an automated audit re-runs the matching pipeline for a stratified sample against the live retailer sites — effectively re-scraping those items on a different day — and retires any mapping it can no longer match, so broken matches don't persist in the index.

Re-run, don't re-read

The audit re-runs the same search-and-match pipeline the scrape uses, then checks whether a fresh run still finds a valid match for each sampled item — it reproduces the scrape rather than re-reading a single stored SKU.

Drift vs. defect

A re-run that finds the item at a different price is recorded as ordinary week-to-week price movement, not an error. Only a failure to find any spec-valid match flags a genuinely broken mapping.

Auto-retirement

A mapping is retired from the index only after a fresh scrape finds no valid match for it two weeks running — long enough to ride out a transient outage, quick enough to catch real breakage.

Known coverage gap

Voilà (and Farm Boy via Voilà delivery) cannot yet be re-checked by the automated audit — its consumer search interface requires an active postal-code session the pipeline cannot replay. Voilà observations are still collected in the normal scrape; they just don't receive the live re-check the other families do. Extending the audit loop to the full 23-banner panel is on the roadmap.

Formal validation against the Statistics Canada food-CPI benchmark — including the correlation backtest — is documented in the CGPI whitepaper.

CGPI vs StatCan CPI

The index is designed to complement official statistics — higher frequency and fully transparent, not a replacement for the authoritative benchmark.

FeatureCGPIStatCan CPI (Food)
Update frequencyWeekly (Thursdays)Monthly (3-week lag)
FormulaWeighted Jevons (geometric mean)Modified Laspeyres (arithmetic mean)
Basket size50 representative items~250 representative items (food component); ~700 across the full CPI
Price sourceOnline listings (public)In-store price collectors
Geographic scope13 cities across all 10 provincesNational + provincial
Banner coverage23 retailer banners (incl. all three parents: Loblaw, Metro, Empire)Not disclosed at banner level
TransparencyFull basket & methodology publishedBasket weights published, individual prices not
Substitution biasLower (geometric mean)Higher (arithmetic mean)

Limitations

Disclosed openly in the spirit of transparency. The index is designed to complement, not replace, official statistics.

Online prices only

In-store prices may differ, especially for produce and meat.

13 cities

Coverage spans major cities across Canada, but rural areas are not tracked.

No Costco or Walmart

Bot protection prevents reliable automated price collection from these retailers.

50-item basket

StatCan's food component tracks roughly 250 representative items. A tighter basket may not capture every price movement, especially in less-frequently-purchased categories.

No quality adjustment

If a product is reformulated we track the price change but not the quality change. Shrinkflation (pack-size reduction) is tracked explicitly; other reformulations are not.

Commercial access

The full per-observation panel, weekly CSV pack, point-in-time Parquet dumps, and shrinkflation events are available via commercial license.

We use cookies for analytics to improve your experience. Privacy Policy