Methodology

Full transparency on how the Canadian Grocery Price Index is constructed.

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 daily 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 daily price tracking with same-day 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%
17Tortillas, Large, 10-packBread & Bakery1.4%
18Bananas, per kgProduce — Fruits2.5%
19Apples, 3lb BagProduce — Fruits2.0%
20Strawberries, 454gProduce — Fruits2.0%
21Oranges, per kgProduce — Fruits1.8%
22Blueberries, 1 Pint (312g)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, 1.5LFrozen2.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

  • Loblaws — Canada's largest grocery retailer
  • No Frills — Discount banner (Loblaw subsidiary)
  • Real Canadian Superstore — Large-format banner (Loblaw subsidiary)
  • Metro — Major Quebec/Ontario retailer
  • Food Basics — Discount banner (Metro subsidiary)
  • Sobeys — National full-service retailer (Empire Company)
  • FreshCo — Discount banner (Sobeys subsidiary)
  • Farm Boy — Specialty/local retailer (via Voilà delivery)

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 daily at 6:00 AM ET via an automated pipeline. The index is recomputed after each collection run.

CGPI vs StatCan CPI

FeatureCGPIStatCan CPI (Food)
Update frequencyDailyMonthly (3-week lag)
FormulaWeighted Jevons (geometric mean)Modified Laspeyres (arithmetic mean)
Basket size50 items~700 items (food component)
Price sourceOnline listings (public)In-store price collectors
Geographic scopeOttawa (expanding)National + provincial
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 tracks ~700 food items. Our basket may not capture all price movements.
  • 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.