Skip to main content
Marsonya

NZ Grocery Price Index

The Marsonya NZ Grocery Price Index tracks month-by-month grocery price movement across Woolworths, Pak'nSave and New World, from the same continuously collected price data the app compares stores with. Unlike a one-off basket study, the index re-measures the same listings every month, across the full catalogue. Methodology and CSV download below.

Observation period: 2026-06-11 to 2026-07-31 · complete calendar months (the base month starts on the first day data was collected) · base monthJune 2026 = 100 ·1,991,918 price observations across 3 stores.

What does the index show?

One number per month, per chain and overall: how prices moved for the listings sold in both that month and the month before. A rising index means the same goods cost more; the matched-listings column shows how much of the catalogue each figure stands on.

Monthly index values, overall and per chain
MonthAll chainsMonthly changeWoolworthsPak'nSaveNew WorldMatched listings
June 2026100base month10010010047,285
July 2026100.50.5%100.9100.899.947,285

How far apart are the chains?

For every product stocked by all three chains in a month, each chain's price is compared with the cheapest chain's price for the same product. The medians below summarise the spread — the gap a shopper could close by choosing the right store, before any specials hunting.

Chain price spread for July 2026
Chain (July 2026)vs cheapest chainvs three-chain averageMatched productsStores sampled
Woolworths3.2%-2.8%6,5341
Pak'nSave0%-5.5%6,5341
New World20%9.1%6,5341

Which categories moved the most?

Category movement for July 2026, computed the same matched-listing way as the headline index. Categories below the sample floor are omitted rather than published on thin data.

Per-category monthly price movement
CategoryMonthly changeMatched listings
Fish & Seafood2%244
Baby & Child1.9%1,041
Household1.9%3,516
Beverages1.3%3,026
Fridge & Deli1.2%930
Deli1%669
Meat & Seafood1%307
Fresh Produce0.5%557
Health & Body0.5%5,991
Pantry0.5%10,244
Bakery0.4%873
Pet0.4%1,116
Dairy0.3%2,114
Frozen0.1%1,430
General0.1%12,673
Beer & Wine-0.1%2,554

How is the index different from a one-off price survey?

Consumer NZ's basket studies and Interest.co.nz's weekly monitor are real, useful incumbents — and both are snapshots of a small fixed basket. An index built from full-catalogue price history re-measures thousands of matched listings every month, so a quiet 3% drift on everyday staples shows up even when no single price makes a headline. Breadth is the difference, not virtue.

How is the index calculated?

Listing = one product variant at one store of one chain; its monthly value is the median of the daily prices recorded for that listing in the calendar month. Each daily price is the retailer's own current selling price for that day, so promotional and special prices are measured while they run rather than stripped out, and at Pak'nSave and New World it is the loyalty-card price wherever Foodstuffs club pricing is in effect — the higher non-member price is recorded separately and never used. The index therefore tracks what a card-carrying shopper pays, which moves more than a regular-shelf-price measure would.

Chained Jevons index: for each pair of consecutive complete calendar months, the geometric mean of price relatives across listings priced in both months, per chain and overall (base month = 100). The matched set is recomputed for every adjacent pair and the chain multiplies through, so a listing that appears or disappears mid-series never counts as a price change. Categories and the chain spread use the same matched basis; the spread compares GTIN-matched products priced at all three chains, each chain's price taken as the median across its stores.

Of the 51 days in the observation window, 47 recorded at least one price snapshot and 4 recorded none at all: 2026-06-14, 2026-07-01, 2026-07-22, 2026-07-24. A further 7 days recorded under 80% of the window's median of 46,393 snapshots: 2026-06-17 (2,159), 2026-06-18 (14,682), 2026-06-21 (34,646), 2026-06-22 (31,778), 2026-06-29 (36,379), 2026-06-30 (3), 2026-07-27 (27,538). Every low- or no-data day carries the last observed price forward into the index rather than being dropped.

That's a day-by-day account derived directly from the underlying price data, naming the specific days that fell short rather than leaving a reader to infer them from the monthly headline figures alone. Coverage floors are a different check entirely, run on monthly aggregates — never on which days or chains actually ran — so they have no way to detect the day-level gaps described above; a monthly total carries no record of which days it came from, and a month with one bad day counts the same as one where every day ran clean. Every month published here cleared its floors. Within that check, a category whose matched-listing count for a month falls under its floor is dropped from that month's table; a chain whose count falls under its floor blocks the entire publication outright — the generator refuses to write a dataset at all rather than let one chain's shortfall through. The dataset regenerates end-to-end from the production price database by one documented script run, so every published figure can be reproduced from source.

How can you use this data?

Download the full series as CSV: nz-grocery-price-index.csv. Republishing a figure with attribution is welcome. Cite the dataset as:

Marsonya NZ Grocery Price Index, July 2026 release — observation period 2026-06-11 to 2026-07-31. https://marsonya.com/data/nz-grocery-price-index

The consumer-facing half of the same data — which chain wins a real list this week — lives in the pillar on spending less at the supermarket.