Institutional grocery-price intelligence
Canadian grocery prices, repriced every week
GroceryPulse gives institutional teams an analysis-ready weekly panel of advertised grocery prices across 13 Canadian cities and 22 retail banners. Use the free public index to evaluate the series, license the weekly files for research, or integrate the full panel through the Commercial API.
Latest published week 2026-08-09national headline -1.40% w/w4 published weeks since July 2026
Who relies on this panel
Cited by
The weekly panel is shared with Dalhousie University's Agri-Food Analytics Lab, and several of the citations above reach print through the Lab's national grocery-price analysis. Every article, with the sentence that names us, is listed on the press page.
The panel
Prices are read every Thursday from publicly accessible retailer storefronts across six retailer families. Walmart and Costco are not in the panel — see coverage.
Evaluate the panel against a real institutional use case
Tell us what the data needs to prove. We will respond with the smallest relevant sample, its coverage notes, and the appropriate Team Data or Commercial API evaluation terms.
Plans
The public index remains free. Institutional buyers can license analysis-ready weekly files through Team Data or add production endpoints and the full vintage archive through the Commercial API. Figures are quoted in US dollars; annual contracts can be invoiced in CAD.
Research
Free
CC BY 4.0 · attribution required
- Free public index endpoint — national, city and banner series by category, no account and no key, ~60 requests/min
- Monthly CSV pack, published on a 14-day delay
- Aggregate index only — no per-item observations
- Attribution to GroceryPulse required in any published use
- Best-effort support, no SLA
Team Data
Institutional files$1,250 USD / mo
$12,500 USD/yr by contract · no production API access
- Full weekly index tables as soon as the run clears quality gates
- Full per-observation panel in CSV and Parquet
- Product catalogue, sale flags, package size, unit price, and stock state
- Five named users within one institution
- Weekly secure-download delivery and email notification
- Point-in-time files from the subscription start date
- Onboarding and methodology session
Qualified founding institutions can apply a private Stripe code for $750/month during their first three months. Five redemptions total.
Commercial API
$2,500 USD / mo
Weekly, full panel · or $30,000 USD/yr
- ·Full weekly index, all 13 cities × 22 banners
- ·Category breakdown (9 categories)
- ·Full per-observation price panel
- ·REST endpoints: /index, /prices
- ·Point-in-time vintage historical dumps
- ·Weekly CSV + monthly Parquet archive
- ·14-day evaluation trial available on request
- ·Email support, best-effort 1-business-day response
What you actually get
The line is simple and we do not blur it: the index is free, because a published index that everybody can check is what makes the series credible. What you pay for is the microdata underneath it — the individual observations, the product linkage, and the vintages.
| Free (Research) | Team Data | Commercial API | |
|---|---|---|---|
| Aggregate index | National, city, banner × 9 categories | Live weekly files and vintages from subscription start | Same series plus complete vintage archive |
| Per-item observations | Not included | Full weekly CSV and Parquet panel | Full panel through files and authenticated endpoints |
| Product catalog | Basket list on /basket | Included in weekly files | /api/v1/products — canonical ids, weights, sizes |
| Shrinkflation detections | Highlights on /shrinkflation | Included in weekly files | /api/v1/shrinkflation with confidence grades |
| Delivery | JSON endpoint + delayed monthly CSV | Secure weekly CSV and Parquet | REST JSON plus weekly files |
| Latency | Index live; CSV pack on a 14-day delay | Same week after quality gates | Same week after quality gates |
| Throughput | ~60 requests/min, per IP | File delivery; no production API | Per-key quota sized to the workflow |
| Licence | CC BY 4.0, attribution required | Five named users; internal institutional use | Internal use; embedding or redistribution by written licence |
| Support | Best effort | One-business-day email response | Named contact and implementation support |
Cadence
Collection runs every Thursday at 08:00 UTC, with an automatic Friday re-collection for any city below 90% store coverage. Reporting weeks are bucketed in Canadian local time and end on Sundays.
Latency
A cell publishes as soon as it clears the 60% coverage floor for the week — typically the same Thursday or Friday. We suppress a thin cell rather than publish it early.
Formats
REST JSON over HTTPS with bearer auth and cursor paging, CSV for the weekly pack, and a monthly Parquet archive for bulk loads. An OpenAPI document is served at /api/v1/openapi.json.
A real response, right now
This is the last two weeks of the national headline series, rendered from the same table the endpoint reads — not a mock-up. No key, no account, CORS open:
GET https://grocerypulse.ca/api/public/index?level=national&category=overall
{
"meta": {
"source": "GroceryPulse CGPI",
"series": "v2",
"endpoint": "public/index",
"license": "CC BY 4.0 — attribution to GroceryPulse required. Redistribution/resale of the underlying data requires a license (sales@grocerypulse.ca).",
"note": "Aggregate index only. Per-item price microdata is available under license via /api/v1/prices.",
"filters": {
"series": "v2",
"level": "national",
"category": "overall",
"city": "all",
"banner": "all",
"from": "2026-07-19",
"to": "2026-08-09"
},
"limit": 5000,
"offset": 0,
"count": 2,
"has_more": false,
"next_offset": null,
"generated_at": "2026-08-18T09:39:26.009Z"
},
"observations": [
{
"date": "2026-08-02",
"city": null,
"retailer": null,
"category": null,
"index_value": 100.14,
"basket_cost_cad": 303.63,
"pct_change_wow": -0.219,
"pct_change_mom": null,
"item_count": 50,
"total_items": 50
},
{
"date": "2026-08-09",
"city": null,
"retailer": null,
"category": null,
"index_value": 98.74,
"basket_cost_cad": 297.14,
"pct_change_wow": -1.398,
"pct_change_mom": null,
"item_count": 50,
"total_items": 50
}
]
}Swap level=city&city=toronto or level=banner&banner=metro to cut the same series differently. Paid endpoints — /api/v1/index, /api/v1/prices, /api/v1/products, /api/v1/shrinkflation — take the same parameters behind a bearer key.
How access works
Start with the delivery method your team actually needs. Team Data is analysis-ready file delivery; Commercial API adds production endpoints and a complete point-in-time archive.
- 1
Choose the workflow
Select weekly institutional files or production API access. The free public index remains available for initial methodology and series checks.
- 2
Request an evaluation
Tell us the use case and scope. Qualified teams receive a focused 14-day sample with the relevant coverage notes.
- 3
Subscribe or contract
Monthly card subscriptions use Stripe Checkout. Annual institutional commitments can be invoiced in CAD against a purchase order or contracted in USD.
- 4
Receive or integrate
Team Data receives secure weekly files and onboarding. Commercial API customers receive a one-time API key and implementation support.
Who this is built for
Macro & consumer
Weekly food-price monitoring
Grocery is one of the most closely watched components of household spending, but the advertised prices shoppers actually see are not published anywhere in a standardized weekly form. This panel repriced the same shelves last Thursday, at banner and city level, so you can observe advertised-price moves and promotional cycles as they happen rather than reconstructing them afterwards.
Equities
Consumer-sector research
Banner-level index and basket cost for the listed Canadian grocers — Loblaw (L.TO), Empire (EMP.A.TO) and Metro (MRU.TO) — plus their discount banners. Track promotional intensity, category-level price gaps between a full-service and a discount banner in the same city, and how quickly a competitor's move is matched.
Retail
Competitive intelligence
Benchmark your own shelf against 22 banners in 13 cities on a common 50-item basket, weekly, at the city level. Independent and regional grocers use this where a full syndicated-scanner subscription is not justifiable.
Academic & policy
Research access
The aggregate index is free and citable under CC BY 4.0. Licensed per-observation access supports pass-through studies, regional price-dispersion work, and shrinkflation research. Universities and public-interest researchers should write to us before paying list price.
Before you buy, read the limits
We would rather lose a deal here than in month three of a subscription. All four of these are documented in full on the coverage page.
No Walmart, no Costco
Two of the largest food retailers in Canada are absent — Walmart for collection reliability, Costco because there is no public price to read. Giant Tiger is partial. The index measures the market as covered by the 22 banners in the panel; it is not a census.
The series starts July 2026
Roughly two months of published weekly history today. We report week-over-week and change since inception, and nothing else — there is no year-over-year figure on this site until the data can support one.
Only category levels are cross-comparable
Every series, headline and category, city and banner, shares one base: the week of 13 July 2026 = 100. Levels are therefore directly comparable and each reads as the change since that week. Absolute basket cost in dollars is published alongside for comparisons in levels rather than in index points.
Online list prices, not shelf tags
Prices are read from public retailer storefronts. They can differ from the in-store shelf, particularly for weight-priced produce and meat, and loyalty-card or in-store-only promotions are not captured.
Questions buyers ask
What am I allowed to do with the data?
The free aggregate index is published under CC BY 4.0: use it, chart it, cite it, including commercially, as long as GroceryPulse is credited. A commercial subscription adds the per-observation panel for internal use — research, models, and client-facing notes that quote derived figures with attribution. Redistribution, resale, sub-licensing, or embedding the underlying observations in a product you sell requires a separate written licence. Those are priced per case, not per seat, and we would rather write the licence than discover the breach. Ask for licence terms.
How much history is there?
The continuous published panel begins July 2026. That is the honest answer and it is the main reason to start now rather than later — the series only ever gets more useful, and subscribers accrue point-in-time vintages from their start date. There is no year-over-year figure anywhere on this site, because the data cannot support one until roughly March 2027; anyone quoting you a Canadian grocery YoY off this panel today is splicing something. A March–June 2026 pilot series exists and is retrievable as series=v1, but it was collected under the previous methodology and we do not chain it onto the published series.
Is the index revised, and how is methodology versioned?
Price observations are append-only, and the published index is recomputed from the full observation history under the current, versioned normalization code — so a corrected product match propagates through the whole series rather than leaving a step in it. Methodology changes are dated and documented (v2: chained headline, direct fixed-base categories; adopted 2026-06-12) and the superseded series stays retrievable. Because a recompute can move a historical figure, commercial subscribers also receive point-in-time vintages: the number as it stood on the date it was published, which is what you need for an honest backtest. Full methodology.
Do you cover Walmart or Costco?
No. Walmart Canada runs anti-bot protection that makes unattended collection unreliable, and we will not publish a series we cannot collect consistently; coverage is on the roadmap only if a proxy or licensing arrangement makes it dependable. Costco is member-only and CAPTCHA-gated, with no reliable public price to read — we treat it as infeasible rather than pending. Giant Tiger is a partial-basket merchandiser and publishes only where it clears the 60% coverage floor. If a share-weighted national aggregate matters to you, the missing warehouse-club and supercentre channel is the material caveat, and we would rather you weight around it than assume it away.
What currency is this, and can you invoice in CAD?
Self-serve card subscriptions are charged in USD through Stripe — that is what the checkout above will bill, so it is what we quote. Annual commitments are contracted directly, and Canadian institutions can be invoiced in CAD against a PO at a rate fixed on the contract date; we deliberately do not print a converted CAD figure here, because a rate quoted on a static page is stale the day after it ships. Note that the data itself is priced in Canadian dollars throughout: every basket cost is basket_cost_cad. Request a CAD quote.
Can we evaluate it before committing?
Yes, three ways, in increasing order of effort. The free public index endpoint needs no account and no key, so you can pull the aggregate panel into a notebook in the next five minutes. The free monthly CSV pack on /data gives you the same series in flat files. For the per-item panel, a 14-day evaluation key can be issued on request — that is the only step that involves a human. Request an evaluation.
Talk to the people who build it
Coverage requests, redistribution licences, CAD invoicing, evaluation keys, and methodology questions all go to the same address, and are answered by the person who wrote the pipeline. Write to sales@grocerypulse.ca.