# GroceryPulse CGPI Data Pack — April 2026

**Observation date:** 2026-04-20
**Published:** 2026-04-22
**License:** Free for journalists, academics, and policy researchers under attribution
**Attribution:** *"Source: GroceryPulse Canadian Grocery Price Index, April 2026."*

## Files

| File | Rows | Description |
|---|---|---|
| `cgpi-2026-04-cities.csv` | 12 | One row per city; cheapest banner, most expensive banner, spread |
| `cgpi-2026-04-banners.csv` | 68 | One row per banner × city; basket cost + coverage |
| `cgpi-2026-04-categories.csv` | 612 | One row per category × banner × city; line-item cost in each category |
| `cgpi-2026-04-coverage.csv` | 18 | Banner × city matrix of basket coverage (asterisk = excluded, <45/50 match rate) |
| `cgpi-2026-04-national.csv` | 10 | National-level aggregate metrics |

## Methodology notes

- **Basket:** 50 canonical items across 9 categories (meat, dairy, bakery, fruit, vegetables, pantry, frozen, beverages, household). Full specification at [grocerypulse.ca/methodology](https://grocerypulse.ca/methodology).
- **Basket cost:** for each banner, the sum of the **cheapest effective price** (sale or regular) of each canonical item. Reflects actual consumer behavior — shoppers substitute toward store brands and sale items.
- **Coverage threshold:** a banner×city pair is included in rankings only if **≥45 of 50 basket items** were successfully matched (90% coverage). Pairs below threshold are flagged with an asterisk in `coverage.csv` and excluded from `cities.csv`/`banners.csv`/`categories.csv`.
- **Pricing source:** publicly accessible retailer websites. Product listings are fetched from the same pages any consumer can view; price data is parsed from the embedded server-rendered payload.
- **Not included (this release):** MoM / YoY changes (first MoM in May release, once one full month of history is available), Jevons index values (provided separately to Professional-tier subscribers), shrinkflation events (first batch in May release).

## Known limitations

- **St. John's, NL:** onboarding; not covered in this release. Expected in May 2026.
- **Walmart, Costco:** not covered (bot protection prevents reliable scrape). Roadmap Q3 2026 pending residential-proxy arrangement.
- **Online vs in-store:** all prices are online-listed. In-store shelf prices may differ; empirical gap is ≤2% for shelf-stable goods, 4–6% for produce/meat.
- **3 scrape gaps (April 2–12):** partial coverage due to retailer layout changes. Being backfilled; not included here.

## Commercial access

This pack is the free-tier release. Subscriber tiers:

- **Research** — Free, 14-day delay, attribution required. This pack.
- **Standard** — $2,000/mo. Same-day full index, REST API access, weekly CSV pack.
- **Professional** — $5,000/mo. Full per-observation panel, shrinkflation feed, revision-free point-in-time historical dumps.
- **Enterprise** — Custom basket, on-demand backfills, DPA.

Contact: sales@grocerypulse.ca · grocerypulse.ca/pricing

## Regenerating this pack

```bash
cd outreach/data-packs/2026-04
python3 _generate.py
```

Input is a snapshot of `https://grocerypulse.ca/api/index` cached at `/tmp/cgpi-index.json`. For the next monthly release, run the same script against a fresh snapshot.

## Contact

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