GroceryPulse for business

Weekly grocery price evidence, organized by use case.

We record advertised prices for a fixed 50-item basket at 146 stores across 21 banners and 13 cities every week, and build private competitor comparisons for individual grocers. Each use case below shows what you would receive, a sample of the output, the coverage that applies and the limits to plan around.

Canadian cities
13
Retail banners
21
Stores in panel
146
Basket items
50
Categories
9
Collection cadence
Weekly

Explore the original reporting and documented attributions in our press & citations archive.

Use cases

Four ways teams use the data.

Each use case sets out who it is for, the question it answers, what you receive, a sample of the output, the coverage that applies and its limitations. Samples use invented values or show structure only; no licensed data appears on this page.

Compare plans

01 / Independent and regional grocers

Weekly competitive price checks against nearby chains

  • Private client workspace
  • Excel export
  • Updated weekly
Who it is for
Owners, merchandising and category teams at independent and regional grocers who set shelf prices against the chain stores around them.
The question it answers
Where do the chain stores near mine price the items I sell this week, and which store is cheapest on each one?
What you receive
A private, sign-in-only workspace for your team: one row per item and one column per competitor store, then Cheapest and Average across the stores counted in the comparison. Each weekly update keeps its collection dates, and the Excel export includes every store observation with the product as listed, its package size, source link and any reason it was excluded.
Access
Scoped with you: the competitor stores and the item list are agreed before the first delivery.
Relevant coverage
Competitor stores are chosen with you and need not be in the 13 panel cities. A store counts toward Cheapest and Average only when its own website lists prices for that store. A store read only from its weekly flyer, or not readable at all, is shown for reference and never counted.
Limitations
Prices are online listings, not shelf tags or checkout totals. An item a store does not list online stays blank rather than estimated, and not every nearby banner can be compared store by store.
Private client workspace · weekly table and Excel exportIllustrative sample: values are examples
Illustrative private workspace comparison: products down, competitor stores across, then Cheapest and Average. Store names and prices are examples, not collected prices.
ProductSize or unitCompetitor ACompetitor BCompetitor CFlyer · referenceCheapestEligible pricesAverageEligible prices
Milk, 2%4 L$6.00$6.50Not in this week's flyer$6.00Competitor A$6.252 stores
Butter, salted454 g$5.50Sale$5.00Reg. $6.00Sale$4.50$5.00Competitor B$5.252 stores
Bananasper kg$1.50/kgNot listed onlineNot in this week's flyer$1.50/kgOnly comparable price$1.50/kg1 store
Store names and prices are invented. Competitor C is read only from its weekly flyer, so its prices are shown for reference and never enter Cheapest or Average. A blank cell says why there is no price; nothing is estimated.

02 / Consumer packaged goods brands

Shelf price and promotion tracking across chains and cities

  • Weekly files (CSV, Parquet)
  • Commercial API
  • Same week, after quality checks
Who it is for
Sales, revenue management and category teams at food and household brands who want an outside view of advertised prices and promotions.
The question it answers
How are advertised shelf prices and promotions moving in my categories, by chain and city, and where does private label sit?
What you receive
Weekly item-level observations with regular, sale and effective price, unit price, package size, sale flag, brand and a store-brand flag, by banner and city. Pack-size changes are tracked as a separate shrinkflation feed with confidence grades.
Access
Team Data files or the Commercial API.
Relevant coverage
The fixed 50-item basket in 9 categories, across 21 banners and 13 cities. Regular and sale prices are carried where the chain publishes them; promotional capture varies by chain and is documented in the methodology.
Limitations
Each of the 50 items is matched to the cheapest valid listing within a size tolerance set for that item, so the basket is not a census of your SKUs or of a retailer's assortment. Loyalty-only and in-store promotions are not captured, and the store-brand flag is unknown on about a quarter of rows.
Item-level observations · weekly files (CSV, Parquet) or APIIllustrative sample: values are examples
Illustrative item-level observations. Chains, cities, brands and prices are examples, not collected prices.
Collectedobserved_atChain, citybanner, cityProductbrand, package_sizeRegularregular_priceSalesale_priceEffectiveeffective_priceStore brandis_store_brand
Week 1Chain A, City 1Brand X butter, 454 g$6.00None$6.00No
Week 2Chain A, City 1Brand X butter, 454 g$6.00Sale$5.00$5.00No
Week 2Chain B, City 2Brand X butter, 454 g$6.50None$6.50No
Week 2Chain B, City 2Store-brand butter, 454 g$5.00None$5.00Yes
Chains, cities, brands and prices are invented. Each row is one observation of one product at one banner and city; the effective price is the price charged that week, the sale price when one is shown. Delivered rows also carry the unit price, stock flag and canonical product.

03 / Consultancies and research teams

Matched-basket price data with a documented method

  • Weekly files (CSV, Parquet)
  • Methodology session
  • Five named users
Who it is for
Economic consultancies, market research firms and in-house research teams who need grocery price evidence they can cite, reproduce and defend.
The question it answers
How have grocery prices moved across Canadian cities and chains, measured on a consistent basket with a method we can explain and reproduce?
What you receive
The item-level panel linked to canonical basket items, the weekly index by city, banner and category, and the product catalogue, as weekly files or through the API. Team Data includes five named users within one institution and an onboarding and methodology session; work that needs only the aggregate index can start with Research access.
Access
Team Data, or Research access for the aggregate index.
Relevant coverage
13 cities, 21 banners and 146 stores in the historical panel. A city and banner cell publishes only when at least 60% of its basket slice is priced, and the public coverage matrix shows which cells published in the latest week.
Limitations
Advertised online prices on a 50-item basket, not transaction prices across a full food basket. The published series begins in July 2026, so there are no year-over-year comparisons yet.
GET /api/v1/pricesStructure only: no values shown
{
  "meta": {
    "gate_version": <text>,          // quality gate applied to every row
    "filtered_identity": <int>,      // rows dropped: title or size off spec
    "filtered_quarantine": <int>,    // rows dropped: verified wrong match
    "has_more": <boolean>,
    "next_offset": <int | null>
  },
  "observations": [
    {
      "observed_at": <timestamp>,
      "regular_price": <number | null>,
      "sale_price": <number | null>,
      "effective_price": <number>,
      "unit_price": <number | null>,
      "package_size": <text>,        // as the retailer lists it
      "in_stock": <boolean>,
      "is_on_sale": <boolean>,
      "retailer_products": {
        "banner": <banner key>,
        "brand": <text | null>,
        "is_store_brand": <boolean | null>,
        "products": {
          "id": <1 to 50>,             // canonical basket item
          "name": <text>,
          "category": <text>,
          "subcategory": <text>,
          "basket_weight": <number>
        }
      },
      "stores": { "city": <text>, "province": <text> }
    }
  ]
}
Placeholders such as <number> stand for values. Every row links to one of the canonical basket items defined on the methodology page, and the response states how many rows the quality gate removed rather than hiding them.

04 / Investment research

Weekly grocery price signals with point-in-time history

  • Commercial API
  • Point-in-time archive
  • Same week, after quality checks
Who it is for
Equity and credit analysts and data teams at investment firms who follow Canadian grocers and food prices.
The question it answers
What are basket costs, promotions and price changes doing by chain and city this week, and what had been published on any past date?
What you receive
Authenticated REST endpoints for the weekly index, the item-level panel and pack-size changes, with a quota per key, weekly CSV and monthly Parquet archives, and the complete point-in-time vintage archive. Team Data files include point-in-time files from your subscription start.
Access
Commercial API, monthly or by annual contract.
Relevant coverage
Loblaw, Empire (Sobeys) and Metro banners, including their discount formats, plus Save-On-Foods and Giant Tiger, across 13 cities. Weekly from the week ending July 19, 2026; as-of reads start August 1, 2026, when the vintage archive began.
Limitations
A short record: no year-over-year comparison yet, and no claim of predictive power over other price series. Index series for the Empire banners and Voilà are not published for the current base period after a collection change, though their item-level prices are still collected (see the revision log).
GET /api/v1/index?level=banner&category=overall&asof=<date>Structure only: no values shown
{
  "meta": {
    "asof": <date>,                  // the date you ask about
    "archive_starts": "2026-08-01",
    "has_more": <boolean>
  },
  "observations": [
    {
      "date": <week ending>,
      "city": <text>,
      "retailer": <banner key>,
      "category": null,              // null = all groceries
      "index_value": <number>,
      "basket_cost_cad": <number>,
      "pct_change_wow": <number | null>,
      "item_count": <int>,           // items priced in this cell
      "total_items": <int>,
      "vintage_date": <date>,        // when this value was published
      "source": "etl" | "seed"       // etl = captured in real time
    }
  ]
}
An as-of read returns figures exactly as they were published on that date, not as restated since, so a backtest sees only what was known at the time. No index values are shown on this page.

Available coverage

What the weekly panel covers.

The historical panel prices a fixed 50-item basket at 146 stores. A private client workspace is scoped to the competitor stores you name, which need not be in these cities.

Open the coverage matrix

Cities 13

  • VancouverBC
  • CalgaryAB
  • EdmontonAB
  • SaskatoonSK
  • WinnipegMB
  • TorontoON
  • OttawaON
  • MontrealQC
  • Quebec CityQC
  • MonctonNB
  • HalifaxNS
  • CharlottetownPE
  • St. John'sNL

Banners 21

  • Atlantic Superstore
  • Dominion
  • Food Basics
  • Foodland
  • Fortinos
  • FreshCo
  • Giant Tiger
  • IGA
  • Loblaws
  • Maxi
  • Metro
  • No Frills
  • Provigo
  • Safeway
  • Save-On-Foods
  • Sobeys
  • Superstore
  • Thrifty Foods
  • Voilà
  • Wholesale Club
  • Your Independent Grocer

Basket categories 50 items

  • Dairy & Eggs6 items
  • Meat & Protein7 items
  • Bread & Bakery5 items
  • Produce: Fruits5 items
  • Produce: Vegetables6 items
  • Pantry Staples7 items
  • Frozen4 items
  • Beverages5 items
  • Household Essentials5 items

Regional lineups

Banners are regional (Maxi and Provigo in Quebec, Safeway and Save-On-Foods in the West, Dominion in Newfoundland), so not every banner appears in every city. A city and banner cell publishes only when at least 60% of its basket slice is priced.

Outside the panel

Costco is not covered. Walmart is outside the historical panel; separately verified Walmart prices, when published, carry their own dates and coverage. Giant Tiger carries part of the basket.

Weekly cadence

Collected every Thursday, with a Friday catch-up for any city below 90% store coverage. Reporting weeks end on Sunday, Canadian local time, and cells typically publish on Thursday or Friday.

Limitations

What the data does not show.

Stated here so they shape the evaluation rather than surface halfway through it.

Methodology limitations

Advertised online prices, not checkout guarantees

Prices are read from public retailer websites. They can differ from in-store shelf prices, particularly for weight-priced produce and meat, and loyalty-only and in-store-only promotions are not captured.

Retailers outside the panel

Costco is not covered, Walmart is outside the historical panel and index, and Giant Tiger carries only part of the basket. The panel measures the banners it covers; it is not a census of Canadian grocery.

Store-level attribution

Some retailer websites do not confirm which store a price applies to. Those prices are not used for store-by-store comparisons, and a workspace evaluation states which competitor stores can be compared.

Weekly snapshots

Prices are collected once a week, so a price can change between collections. Every observation keeps its collection date.

A young series

The published series begins in July 2026, so there is no year-over-year comparison yet. Figures can be restated under versioned code; point-in-time vintages keep each value as first published.

A fixed 50-item basket

The basket covers 50 everyday items in 9 categories, not a retailer's full assortment. Pack-size changes are tracked; other reformulations are not quality-adjusted.

Request an evaluation

Tell us the decision the data needs to support.

Choose the closest use case in the form and describe what you need to measure. We reply with a relevant sample, coverage notes and evaluation terms.

  1. Describe your scope

    Name the items, cities, banners or competitor stores you need, and how you want to receive the data.

  2. Review a focused evaluation

    Qualified requests receive a sample relevant to the question, with the methodology and coverage notes that apply.

  3. Agree the terms

    Choose a data plan or agree the scope of a private workspace. Annual contracts can be invoiced in CAD against a purchase order.

Prefer email? sales@grocerypulse.ca

We use these details only to evaluate and respond to your request. See the privacy policy.

Plans, prices and licence terms are on the pricing page. Methods and coverage are public.

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