Yong Jae Lee
Published: September 9, 2026 Β· Reviewed: September 2026 Β· 7 min read
Researched and written by Yong Jae Lee Β· Content follows NZ Ministry of Health guidelines
22 readings of the same 16 products at one supermarket. 8 never changed price at all, and the whole basket moved $0.28.
Groceries are said to be going up all the time. I have 22 readings of the same products at the same supermarket, taken between 30 July 2026 and 18 October 2026, and that is not what the shelf did.
What is being counted
Since 30 July 2026 each row of the index has been pinned to a specific product code rather than looked up by search, so a reading is the same jar this week as last week. Before that date, a change in the number could just as easily have been the crawler picking a different brand.
The readings are not evenly spaced β they land on 30 July 2026, 2 August 2026, 3 August 2026, 10 August 2026, 12 August 2026, 17 August 2026, 24 August 2026, 5 September 2026, 6 September 2026, 7 September 2026, 10 September 2026, 13 September 2026, 14 September 2026, 20 September 2026, 21 September 2026, 27 September 2026, 28 September 2026, 4 October 2026, 5 October 2026, 11 October 2026, 12 October 2026, 18 October 2026 β because a point is only recorded when the shop's own column date moves.
Two things are deliberately not in here. These are regular shelf prices: when an item is on special the index records the ordinary price, because an index that drops every time something is promoted reports deflation instead of prices. And it is one chain's online shop, not a basket of stores.
8 of 16 did not move at all
Across the whole window, these never changed price by a single cent: Bagels 4-pack, Canned Tuna (185g), Cheese Block (500g), Cucumber, Eggs (12-pack), Pasta (500g), Rice (1kg) and Sliced Chicken (200g).
That list is not exotic, and it is not the cupboard half of a lunchbox either β which is what I assumed before I sorted it. Bagels 4-pack, Canned Tuna (185g), Pasta (500g) and Rice (1kg) keep at room temperature; Cheese Block (500g), Cucumber, Eggs (12-pack) and Sliced Chicken (200g) come out of the chiller. It splits 4β4. Over 11 weeks not one of the 8 changed by a cent.
What did move
| Item | First reading | Last reading | Change | Times it changed |
|---|---|---|---|---|
| Lettuce | $3.50 | $2.20 | β$1.30 | 7 |
| Yoghurt (1kg) | $6.99 | $8.25 | +$1.26 | 2 |
| Butter (500g) | $10.40 | $9.70 | β$0.70 | 1 |
| Apples (1kg) | $4.45 | $4.95 | +$0.50 | 5 |
| Wholegrain Bread (700g) | $4.45 | $4.40 | β$0.05 | 1 |
| Carrots (1kg) | $2.18 | $2.19 | +$0.01 | 6 |
| Bananas (1kg) | $3.99 | $3.99 | +$0.00 | 2 |
| Sliced Ham (200g) | $5.99 | $5.99 | +$0.00 | 2 |
8 items moved, and 2 of those moved exactly once β one step, then flat again. That is a different shape from the one the phrase "prices keep going up" suggests. The exceptions are Lettuce, which changed 7 times each and are both produce sold by the item.
The basket
Adding the 16 tracked items together: $86.71 at the first reading, $86.43 at the last. A change of β$0.28, or -0.3%.
3 items ended higher, 3 ended lower, 10 ended where they started. The movement did not cancel out because it was small β it cancelled out because it went both ways.
What I took out, and why
4 rows changed specification during the window and are excluded from every number above. They went in as Cherry Tomatoes (250g), Hummus (200g), Peanut Butter (375g), Wraps 8-pack, and they now read Cherry Tomatoes (180g), Hummus (220g), Peanut Butter (380g), Wraps 6-pack β each re-pinned to a product both chains actually carry. Counting those as price movements would be measuring my own spec sheet, not the shelf.
This is the same discipline the specials work needed. Over the weeks of mailers I have logged, the number of promotions per week appears to roughly triple β and the cause is that I started entering whole flyers instead of individual finds. It is a change in me, not in the shops, which is why the specials analysis counts how many weeks an item appears rather than how many promotions there were.
Now with the other two columns
Everything above is the Woolworths column, because when this article was first written that was the only column with enough readings to say anything. It is not any more. Here is what each column holds:
| Chain | Readings | Items | Window |
|---|---|---|---|
| Woolworths | 22 | 22 | 30 July β 18 October |
| Pak'nSave | 14 | 20 | 16 May β 18 October |
| New World | 10 | 18 | 17 August β 18 October |
That table is also the reason the next section does not compare how often each chain changes a price. The columns do not have the same readings: 22 readings for Woolworths, 14 for Pak'nSave and 10 for New World, over windows that start on different dates. A point is only recorded when a column's date moves, and a longer gap between points is a bigger window for a change to happen inside, so a column with fewer readings will look calmer than it is. Counting frequency here would measure our reading schedule, not the shops.
What survives that objection is which items move. So: over the 20 items tracked at both Woolworths and Pak'nSave, across the window both columns share (from 30 July onwards), 8 moved at both chains and 5 moved at neither.
| Item | Moved at Woolworths | Moved at Pak'nSave |
|---|---|---|
| Apples (1kg) | 10 Aug, 24 Aug, 6 Sept, 11 Oct, 18 Oct | 10 Sept, 18 Oct |
| Bananas (1kg) | 3 Aug, 11 Oct | 24 Aug, 4 Oct |
| Butter (500g) | 12 Aug | 24 Aug |
| Carrots (1kg) | 24 Aug, 10 Sept, 20 Sept, 21 Sept, 4 Oct, 11 Oct | 17 Aug, 6 Sept, 27 Sept, 11 Oct |
| Cherry Tomatoes (180g) | 3 Aug, 17 Aug, 24 Aug, 6 Sept, 10 Sept, 21 Sept, 4 Oct, 18 Oct | 24 Aug, 6 Sept, 10 Sept, 27 Sept, 18 Oct |
| Lettuce | 17 Aug, 24 Aug, 6 Sept, 21 Sept, 4 Oct, 11 Oct, 18 Oct | 6 Sept, 4 Oct |
| Sliced Ham (200g) | 6 Sept, 11 Oct | 6 Sept, 20 Sept, 4 Oct |
| Yoghurt (1kg) | 2 Aug, 20 Sept | 20 Sept |
Five of those 8 are produce β sold by weight or by the item. The 5 that sat still at both are Bagels 4-pack, Cheese Block (500g), Eggs (12-pack), Hummus (220g) and Sliced Chicken (200g).
Same items, different days
The list above is the same shopping list at both chains. The dates are not.
6 of the 8 share even one date with the other chain β Apples (1kg), Carrots (1kg), Cherry Tomatoes (180g), Lettuce, Sliced Ham (200g) and Yoghurt (1kg). Counting individual price changes rather than items, 20 of the 53 changes on those items β at either chain β fell on a reading date when the same item also changed at the other.
That is worth holding onto, because it is a test of a common idea. If shelf prices moved because of a shared upstream cost β a wholesale price, a fuel surcharge, a season β you would expect most of the changes to land together. Most of them do not. What clusters is the item more than the date: whatever makes these items reprice is happening at both chains, but more often than not each chain is acting on its own clock.
I am not going to tell you why. One chain reads a spot market and the other holds a contract, or one reprices weekly and the other on delivery β those are guesses, and the price feed cannot separate them. And a shared date here means the change was first seen at both chains on the same reading date, not that both chains changed on that exact day.
Where the three chains sit against each other on one day β rather than how they move β is Three NZ Supermarkets, which breaks the gap down aisle by aisle.
What I would not claim
11 weeks is short, and a 0.3% move over that window is not an inflation figure. It is one basket at one chain.
A price that did not change between two readings could still have moved and moved back in the gap β the longest gap here is 12 days. And because specials are excluded by design, an item listed above as unchanged may well have been half price for a week. What a special is worth against the everyday price is a separate question, and often the answer is "nothing" β several of this week's advertised specials land at or above the price we already track.
Every reading behind this is downloadable as price-history.csv β one row per observation, with its date and chain, so you can redo the counting above and disagree with it. The page it comes from is the NZ Lunchbox Price Index, published under CC BY.
About this article
This article was researched and written by Yong Jae Lee, a parent based in Auckland who runs Kiwi Lunchbox as a solo project. I am not a dietitian or a health professional, so nothing here is medical advice. Where an article rests on desk research rather than something I have cooked or used myself, it says so, and nutrition writing is aligned with New Zealand's healthy eating guidelines. If you spot an error or have a suggestion, please contact us.






