Methodology

Full transparency on how the Canadian Grocery Price Index is constructed — published for researchers, journalists, and analysts evaluating GroceryPulse as an alternative-data input.

Overview

The Canadian Grocery Price Index (CGPI) is a weighted Jevons price index computed from a fixed basket of 50 essential grocery products. Prices are collected weekly from publicly available product listings on major Canadian retailer websites.

Unlike Statistics Canada's Consumer Price Index (CPI), which is published monthly with a 3-week lag, CGPI provides weekly price tracking with same-week publication.

Index Formula

It = exp( Σ wi × ln(Pit / Pi0) ) × 100

Where:

  • It — Index value at time t (base = 100)
  • wi — Normalized weight of product i in the basket
  • Pit — Price of product i at time t (current period)
  • Pi0 — Price of product i at the base period

The Jevons index uses a geometric mean (via log-transformation) rather than the arithmetic mean used in a Laspeyres index. This has two advantages:

  1. Substitution bias correction — The geometric mean naturally accounts for consumers switching to cheaper alternatives when one product's price rises.
  2. Symmetric treatment of price changes — A 50% price increase and a 50% decrease offset each other (they don't with an arithmetic mean).

This is the same approach recommended by the ILO/IMF Consumer Price Index Manual and used by Eurostat for elementary price aggregates.

Basket Composition

The basket contains 50 products across 9 categories, weighted to approximate a typical Canadian household's grocery spending pattern.

CategoryWeightProducts
Dairy & Eggs15.0%6
Meat & Protein19.0%7
Bread & Bakery8.0%5
Produce — Fruits10.0%5
Produce — Vegetables10.0%6
Pantry Staples12.0%7
Frozen8.0%4
Beverages7.0%5
Household Essentials9.0%5
Total100.0%50

Full Product List

#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%

Data Collection

Retailers

GroceryPulse tracks 23 banners across the three largest Canadian grocery parent companies plus two regional players.

Loblaw Companies

  • Loblaws — Ontario full-service flagship
  • No Frills — national discount banner
  • Real Canadian Superstore — large-format (Western Canada and Ontario)
  • Atlantic Superstore — large-format (Atlantic provinces)
  • Dominion — Newfoundland full-service
  • Maxi — Quebec discount banner
  • Provigo — Quebec full-service
  • Fortinos — Ontario full-service
  • Wholesale Club — bulk / small-format
  • Your Independent Grocer — smaller-market full-service

Metro Inc.

  • Metro — Ontario / Quebec full-service
  • Food Basics — Ontario discount banner
  • Super C — Quebec discount banner

Empire Company (Sobeys)

  • Sobeys — national full-service
  • FreshCo — national discount banner
  • IGA — Quebec full-service
  • Safeway — Western Canada full-service
  • Foodland — smaller-market full-service
  • Thrifty Foods — BC full-service
  • Farm Boy — Ontario specialty (via Voilà delivery)
  • Voilà — Sobeys online grocery delivery

Independents / regional

  • Save-On-Foods — Jim Pattison Group, Western Canada
  • Giant Tiger — discount / general merchandise with grocery

Method

Prices are collected from publicly accessible retailer websites. Product listings are accessed via the same pages any consumer can view, and price data is extracted from the server-rendered HTML.

Product Matching

Each retailer's product listing is matched to our canonical basket using a Tier 2 specification matching system:

  1. Type match — Product category must match (e.g., "milk", "butter", "chicken breast")
  2. Size verification — Package size must be within ±10% of the target
  3. Variant matching — Specific variants checked (e.g., "salted" butter, "whole wheat" bread)

The cheapest available match is used for the index, reflecting actual consumer behavior where shoppers tend to choose store brands over national brands.

Update Schedule

Data is collected every Thursday at 08:00 UTC (04:00 Eastern) via an automated pipeline. The index is recomputed after each collection run. 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.

Accuracy & Quality Assurance

After every weekly scrape, an automated audit re-queries each retailer's live website for a stratified sample of stored prices and compares them to what we have on file. Audit verdicts are recorded in an internal scrape_audits table and form the basis of two quality controls:

  1. Cent-level accuracy — fraction of audited prices that match the live retailer site to the cent (within 1¢ tolerance). Strict measure of read correctness.
  2. Dollar-level accuracy — fraction of audited prices within $1.00 of the live retailer site. The gap vs cent-level is retailer-side price drift (sales rolling on or off between scrape and audit), not scraper error.
  3. Auto-deactivation — any product mapping whose last two consecutive audits both fail (mismatch or not-found) is automatically retired from the index. The two-strikes threshold tolerates single-week sale rolloff while catching genuine defects within ~2 weekly cycles.
  4. Mapping-defect bucket — audit verdicts with >30% delta between stored and live price are tagged as structural mapping defects (wrong product matched), not price mismatches, and feed the auto-deactivation pipeline.
Cent-level accuracy (1¢)
83.0%
exact match across 94 ground-truth checks
Dollar-level accuracy ($1)
88.3%
within $1.00 of live (rolling 14-day, retailer-side drift inclusive)
Retailer familyCent (1¢)Dollar ($1)Audits (M / Mm / Inc)Last audit
Save-On-Foods90.0%100.0%18 / 2 / 02026-06-04
Giant Tiger90.0%100.0%18 / 2 / 02026-06-04
Empire banners (Sobeys / FreshCo / IGA / Foodland / Farm Boy / Thrifty / Safeway)100.0%100.0%20 / 0 / 02026-06-04
Loblaw banners (PC Express)73.3%73.3%11 / 4 / 52026-06-04
Metro Inc. (Metro / Food Basics / Super C)57.9%63.2%11 / 8 / 02026-06-04
Voilàn/an/a0 / 0 / 202026-06-04

M / Mm / Inc = matches / mismatches / inconclusive. Both metrics use the same denominator (matches + mismatches), so retailer-side outages don't penalise either figure. The gap between cent and dollar columns is retailer-side price drift between scrape and audit (most pronounced on banners with high promo cycling like PC Express), not scraper inaccuracy.

Known auditability gap

One retailer family currently cannot be ground-truth audited via the automated pipeline:

  • Voilà (and Farm Boy via Voilà delivery) — the consumer search interface requires an active postal-code session that the audit pipeline cannot replay. Voilà observations are still collected through the normal scrape; they just don't receive the live ground-truth check the other families do.

Closing this gap is on the engineering roadmap and will extend the audit feedback loop to the full 23-banner panel. Walmart and Costco are not in our index at all (see Limitations) so they don't enter the audit picture.

CGPI vs StatCan CPI

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

  • 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 automated price collection from these retailers.
  • 50-item basket — StatCan's food component tracks roughly 250 representative items. Our tighter basket may not capture all price movements, especially in less-frequently-purchased categories.
  • No quality adjustment — If a product is reformulated, we track the price change but not quality changes.

These limitations are openly disclosed in the spirit of transparency. The index is designed to complement, not replace, official statistics.

Commercial access

The full per-observation panel, weekly CSV pack, point-in-time Parquet dumps, and shrinkflation events are available via commercial license. See the CGPI whitepaper for the full data product specification or view pricing tiers.

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