# GroceryPulse CGPI Data Pack — July 2026

**Week ending:** 2026-07-26
**Published:** 2026-08-13
**License:** Free for journalists, academics, and policy researchers under attribution
**Attribution:** *"Source: GroceryPulse Canadian Grocery Price Index, July 2026. Research led by Sung Ha Hwang, Co-founder and Research Director."*

## Files

| File | Rows | Description |
|---|---|---|
| `cgpi-2026-07-cities.csv` | 13 | One row per city; index value, WoW/MoM change, cheapest and most expensive banner, spread |
| `cgpi-2026-07-banners.csv` | 87 | One row per banner × city; basket cost, index value, coverage |
| `cgpi-2026-07-categories.csv` | 773 | One row per category × banner × city |
| `cgpi-2026-07-coverage.csv` | 21 | Banner × city matrix of basket coverage (asterisk = below 45/50 threshold, excluded from rankings) |
| `cgpi-2026-07-national.csv` | 10 | National-level aggregate metrics |

## Methodology notes

- **Index:** matched-model weighted Jevons (methodology v2, adopted 2026-06-12; category sub-indices restated 2026-08-10). The headline series in `cities.csv`, `banners.csv` and `national.csv` is chained: each banner-city series links week to week over the items priced in both weeks, so week-over-week changes are same-composition by construction; links are accumulated and each headline series equals 100 in its own entry week. The nine category sub-indices in `categories.csv` are direct fixed-base: matched-model Jevons versus the week of 2026-06-01 = 100, with price relatives formed within a single store, so category levels are comparable with each other as change since June 2026. Full specification at [grocerypulse.ca/methodology](https://grocerypulse.ca/methodology).
- **Basket:** 50 canonical items across 9 categories. **Basket cost** is the sum of each matched item's most recent observed effective price (sale price when on sale, else regular) within the banner that week. Costs are directly comparable between banners at similar coverage; cheapest/most-expensive rankings are therefore restricted to banners matching at least 48/50 items.
- **Coverage threshold:** banner × city pairs below 45/50 matched items are flagged in `coverage.csv`. The cheapest / most-expensive rankings in `cities.csv` are stricter: they only consider banners matching ≥ 48/50 items, because missing items deflate basket cost.
- **Source:** publicly accessible Canadian retailer websites — the same product pages any consumer can view. No personal data.
- **Revisions:** observations are append-only. The published index is recomputed from the full observation history under the current, versioned normalization code; methodology revisions are versioned (the superseded v1 fixed-base series remains available via the API) and noted on the methodology page.
- **Release cadence:** weekly series, free pack published on a 14-day delay. The live, same-week feed is the commercial product.

## Known limitations

- **Walmart, Costco:** not covered (anti-bot / member-gated).
- **Online vs in-store:** prices are online-listed; in-store shelf prices may differ modestly for produce and meat.
- **Series start:** the clean weekly series begins April 2026 and deepens every week.

## Commercial access

- **Research (this pack)** — free, 14-day delay, attribution required.
- **Full feed** — US$30,000 / year, all-in: same-week CGPI index (national / city / banner / category) plus the full per-observation price panel via REST API, weekly CSV, and point-in-time Parquet. 14-day evaluation trial. Billed in USD; grocery values reported in CAD.

Contact: sales@grocerypulse.ca · [grocerypulse.ca/pricing](https://grocerypulse.ca/pricing)

## Contact

- **Press / journalists:** press@grocerypulse.ca
- **Research / academic:** research@grocerypulse.ca
- **Sales / commercial:** sales@grocerypulse.ca
- **General:** hello@grocerypulse.ca
