Skip to main content

Original Data

NZ Lunchbox Price Index

October 2026

20 school lunchbox staples, priced at Woolworths and Pak'nSave in Auckland. Regular shelf prices, not specials.

Woolworths column: 2026-10-18 β€” read from Woolworths NZ's online price feed

Pak'nSave column: 2026-10-18 β€” read from Pak'nSave's online shop, store set to Ormiston

Last read 2026-10-18. The next automatic re-read lands Monday morning, New Zealand time β€” every column on this page is pulled again each week.

These are the shelf prices recorded on that date β€” not today's prices. Supermarket pricing moves week to week, so treat this as a baseline for comparing stores and formats, not a live quote. For this week's specials, use the weekly planner, which tracks the current Woolworths and New World mailers. Every reading we have taken, going back to our first round, is on the price history page.

Woolworths basket

$97.80

19 of 20 items

Pak'nSave basket

$87.64

same 19 items

You save at Pak'nSave

$10.16

on these 19 items (10.4%)

Price Comparison Table

Bakery

ItemWoolworthsPak'nSaveNew WorldP βˆ’ W

Wholegrain Bread (700g)

per loaf

$4.40

$0.63/100g

$2.99*

$0.43/100g

β€”-$1.41

Wraps 6-pack

per pack

$6.99

$1.17 each

$5.69*

$0.95 each

$6.99

$1.17 each

-$1.30

Bagels 4-pack

per pack

$3.79

$0.95 each

$3.69*

$0.92 each

$3.99

$1.00 each

-$0.10

Produce

ItemWoolworthsPak'nSaveNew WorldP βˆ’ W

Apples (1kg)

per kg

$4.95$2.99*$4.99-$1.96

Bananas (1kg)

per kg

$3.99$3.59*$3.59-$0.40

Carrots (1kg)

per kg

$2.19$1.99*$2.49-$0.20

Cherry Tomatoes (180g)

per punnet

$2.99*

$1.66/100g

$3.29

$1.83/100g

$3.59

$1.99/100g

+$0.30

Cucumber

each

$2.49$2.49$1.99*Tie

Lettuce

each

$2.20*$2.99$3.29+$0.79

Meat & Deli

ItemWoolworthsPak'nSaveNew WorldP βˆ’ W

Sliced Chicken (200g)

per pack

$6.50

$3.25/100g

$4.99*

$2.50/100g

$6.99

$3.50/100g

-$1.51

Canned Tuna (185g)

per can

$4.50

$2.43/100g

$3.99*

$2.16/100g

$4.49

$2.43/100g

-$0.51

Sliced Ham (200g)

per pack

$5.99*

$3.00/100g

$6.49

$3.25/100g

$7.69

$3.85/100g

+$0.50

Dairy & Eggs

ItemWoolworthsPak'nSaveNew WorldP βˆ’ W

Cheese Block (500g)

per block

$10.50

$2.10/100g

$8.99*

$1.80/100g

β€”-$1.51

Eggs (12-pack)

per dozen

$11.79

$0.98 each

$10.99

$0.92 each

$10.79

$0.90 each

β€”

Yoghurt (1kg)

per tub

$8.25$7.29*$8.29-$0.96

Butter (500g)

per block

$9.70

$1.94/100g

$9.29*

$1.86/100g

$9.79

$1.96/100g

-$0.41

Pantry

ItemWoolworthsPak'nSaveNew WorldP βˆ’ W

Rice (1kg)

per kg

$3.40$3.39*$3.39-$0.01

Pasta (500g)

per pack

$1.79

$0.36/100g

$1.52*

$0.30/100g

$1.79

$0.36/100g

-$0.27

Hummus (220g)

per tub

$5.39

$2.45/100g

$4.99*

$2.27/100g

$5.39

$2.45/100g

-$0.40

Peanut Butter (380g)

per jar

$7.79

$2.05/100g

$6.99*

$1.84/100g

$7.69

$2.02/100g

-$0.80

* Cheaper option highlighted. Prices are regular prices, not specials. A dash means that chain does not carry a directly comparable product, so there is nothing to put in the cell. The last column is Pak'nSave minus Woolworths: a green negative is how much less the item costs at Pak'nSave, an orange positive how much more.

No winner mark on Eggs (12-pack) (Pak'nSave figure from 2026-09-13). The Pak'nSave figure for these rows is older than the Woolworths one, so comparing them would show the passage of time rather than a difference between the stores. A row falls behind when the item was on special that week β€” a special price can't stand in for a regular one β€” or when the store sells no product matching this row's spec. The last regular price is still shown.

Re-specified on 2026-08-12: Wraps 6-pack (was an 8-pack, which Woolworths does not sell); Apples (1kg) (was Royal Gala, which Pak'nSave Ormiston does not sell loose); Hummus (220g) (was a 200g tub, a size neither chain stocks in this line). These rows were stuck because no single product matched the stated spec at both chains, so the spec was changed to one that does. The price history for these rows starts again from that date β€” an earlier figure measured a different product, and comparing the two would read as a price move when it is a change of product.

Visual Comparison

Wholegrain Bread (700g)

Woolworths
$4.40
Pak'nSave
$2.99

Wraps 6-pack

Woolworths
$6.99
Pak'nSave
$5.69

Bagels 4-pack

Woolworths
$3.79
Pak'nSave
$3.69

Apples (1kg)

Woolworths
$4.95
Pak'nSave
$2.99

Bananas (1kg)

Woolworths
$3.99
Pak'nSave
$3.59

Carrots (1kg)

Woolworths
$2.19
Pak'nSave
$1.99

Cherry Tomatoes (180g)

Woolworths
$2.99
Pak'nSave
$3.29

Cucumber

Woolworths
$2.49
Pak'nSave
$2.49

Lettuce

Woolworths
$2.20
Pak'nSave
$2.99

Sliced Chicken (200g)

Woolworths
$6.50
Pak'nSave
$4.99

Canned Tuna (185g)

Woolworths
$4.50
Pak'nSave
$3.99

Sliced Ham (200g)

Woolworths
$5.99
Pak'nSave
$6.49

Cheese Block (500g)

Woolworths
$10.50
Pak'nSave
$8.99

Eggs (12-pack)

Woolworths
$11.79
Pak'nSave
$10.99

Yoghurt (1kg)

Woolworths
$8.25
Pak'nSave
$7.29

Butter (500g)

Woolworths
$9.70
Pak'nSave
$9.29

Rice (1kg)

Woolworths
$3.40
Pak'nSave
$3.39

Pasta (500g)

Woolworths
$1.79
Pak'nSave
$1.52

Hummus (220g)

Woolworths
$5.39
Pak'nSave
$4.99

Peanut Butter (380g)

Woolworths
$7.79
Pak'nSave
$6.99
Woolworths
Pak'nSave

What the last full comparison showed

The last time both columns were priced in the same round β€” 2026-05-16 β€” one thing jumped out: Pak'nSave Ormiston was cheaper on all 20 items, with Woolworths Ormiston not coming out ahead on anything in that basket. The 20-item basket came to $99.48 at Woolworths versus $87.42 at Pak'nSave β€” a $12.06 gap for one week of staples, or roughly $482 across a 40-week school year.

The single biggest gap was the 500g cheese block, $1.41 cheaper at Pak'nSave. Dairy and bakery were where the difference stacked up fastest; fresh produce was closer between the two stores.

Something doing this repeatedly has taught me: the biggest difference is usually not obvious from the shelf price at first glance. I end up checking the unit price (per 100g, per litre) on the items that quietly move the weekly total β€” cheese, wraps, and yoghurt especially. Two blocks of cheese can look similarly priced until you notice one is 500g and the other 700g. That habit is most of where the gap above actually comes from, not any single headline price. It is also why every row of this index is pinned to one named product in one named size β€” and why each price in the table now carries that unit price underneath it, worked out from the size in the row's own name so you can check the division yourself. Some rows do not get one, and that is deliberate: where a thing is sold singly, or sold in exactly one kilo or one litre, the shelf price already is the unit price, and printing it twice would only make the table louder.

None of this means Woolworths is the wrong choice. The Woolworths store has longer trading hours and a wider range, which matters more than a weekly ten-dollar gap to a time-poor parent doing a single evening shop. The index is here so you can make that trade-off with the actual numbers in front of you, not a vague sense that "one is cheaper."

Receipt Verification

Both columns are read from the supermarkets' own online shops, so neither figure comes from a till receipt. As proof that we actually shop at the store behind the Pak'nSave column, here is a real receipt from one of our family shops at Pak'nSave Ormiston β€” it is evidence that this is our store, not the source of the numbers in the table. The dates above each column are the check.

A real Pak'nSave Ormiston receipt totalling NZ$101.83, with the card number and auth code blacked out and the bottom payment details cropped away
πŸ“· A real Pak'nSave Ormiston receipt (14 June 2026, total NZ$101.83). This is an ordinary family shop, not the 20-item index basket itself β€” it is here to show I genuinely buy and check prices at this store in person. The card number, auth code, and cashier details are masked or cropped out for privacy; the store, items, and totals are untouched.
The top of a real Pak'nSave Ormiston receipt from 18 June 2026, showing the store header at 1 Bellingham Road, Flat Bush, and itemised grocery shelf prices
πŸ“· The top of another Pak'nSave Ormiston shop (18 June 2026) β€” the store address, 1 Bellingham Road, Flat Bush, matches the methodology above, and you can read the itemised shelf prices straight off the docket. The entire payment section (card, auth code, and EFTPOS terminal details) is cropped away for privacy; the store name and item prices are untouched.
A real Pak'nSave Ormiston receipt from 18 July 2026 totalling NZ$100.18, showing the store header at 1 Bellingham Road, Flat Bush, and itemised grocery shelf prices with the card number, auth code and payment details masked or cropped out
πŸ“· A more recent shop at the same store (18 July 2026, total NZ$100.18). You can read the itemised shelf prices, including Ploughmans wholemeal bread $3.79 and Yummy apples 6-pack $4.99, straight off the docket. The card number and auth code are blacked out and the EFTPOS terminal section is cropped away for privacy; the store name, items, and totals are untouched. The index above is re-read weekly and is now newer than this docket; the receipts are here as evidence of which branches stand behind the columns, not as the source of the figures. The dates at the top of the page are the ones that count.

The raw data

Everything on this page and in the price articles comes from three files, and all three are downloadable so you can check the arithmetic rather than take it on trust. They are published under CC BY β€” reuse them, and please say where they came from.

  • price-index.csv

    One row per chain per item on this page: reading date, chain, store, the pinned product name and SKU, pack size, price, and the normalised unit price. The reading date is the column date for Woolworths (automated) and a per-row date for the two chains checked individually β€” blank where a date was never recorded, rather than filled in from somewhere else.

  • price-history.csv

    Every reading kept since each column was pinned to fixed product codes, one row per observation. A week where a price did not change has no row: points are recorded by the shop's own column date, so the row count is a count of readings, not of weeks.

  • allergen-labels.csv

    The allergen label on every tracked product that carries one, as the retailer published it β€” the declared line and the precautionary line kept as separate raw text, plus our reading of each. Where the two disagree with the product name, the raw text is there so you can judge it yourself rather than take our parse on trust.

  • lunchbox-ingredients.csv

    A different dataset from the table above. The 20-item index is a basket chosen so the same specification can be compared across chains. This file is the full set of ingredients the planner prices β€” pack size, pack price, the serve one lunchbox uses, and the cost of that serve. The articles that cite a number of ingredients are counting this file, not the table above.

One column in these files is an estimate and is labelled as one: how much of a pack a single lunchbox uses. Pack prices are read from the chains; the serve is our household's portion. Every other figure is an observation with a date against it.

How I Collect This Data

1

Both columns are read from the stores' own online shops

The Woolworths column comes from Woolworths NZ's online price feed, read automatically for a fixed list of products. The Pak'nSave column is read the same way from Pak'nSave's online shop with the store set to Ormiston β€” Pak'nSave prices vary by store, so the branch is pinned and every reading is checked to confirm it came back for that branch. These are Click & Collect prices and may differ from the shelf tag. Each column carries its own date above.

2

The same product every time

Each of the 20 rows is pinned to one specific product β€” a named brand, in a named size. I don't take an average of whatever a search returns, because that quietly swaps brands between updates and turns a brand change into a fake price rise. If a pinned product is discontinued or renamed, the update stops and says so rather than substituting something else.

3

Regular shelf price, never the special

The figure recorded is the normal shelf price, even in a week when the item is on promotion. A half-price week would otherwise show up as deflation. Weekly specials are tracked separately in the planner, which is where they belong.

4

Auckland prices only

Prices reflect Auckland metro stores. Regional NZ prices may vary, especially in smaller towns. I note when a product is unavailable.

How the Price Index is built

The Kiwi Lunchbox Price Index tracks 20 staple lunchbox ingredients at three Auckland supermarkets β€” Woolworths and Pak'nSave on all 20, and New World on the 17 whose price is fresh enough to sit beside them. It exists because supermarket promotional pricing moves quickly, and parents need a stable reference point when planning a weekly shop. The Woolworths and Pak'nSave columns are the two that carry every item, and they are built the same way. The Woolworths column is pulled automatically each week from Woolworths' own online price feed, with a fixed product code per item so the same product is followed over time rather than whatever a search happens to return. The Pak'nSave column is pulled the same way, from Pak'nSave's own online shop with the store set to Ormiston β€” so it is that branch's Click & Collect price, which is not guaranteed to match the shelf tag β€” the dates for both are shown above. When those two dates drift more than 30 days apart, this page switches off the per-item winner marks and says so rather than presenting a stale gap as a store difference. There are no third-party data brokers and no marketing partnerships influencing what is recorded.

Where the prices are collected

  • Pak'nSave Ormiston β€” 1 Bellingham Road, Flat Bush, East Auckland. This is our main supermarket; roughly 60% of our weekly shops happen here. Pak'nSave is consistently the lowest-price option for most items, which makes it a useful floor benchmark. Using the store I actually buy from is deliberate: these are prices I am paying, not a shelf I visited once for a comparison.
  • Woolworths Ormiston β€” the Woolworths (formerly Countdown) store at Ormiston Town Centre, checked on the same trips. House-brand and branded items are both recorded. We also shop the Botany branches of both chains maybe 40% of the time; prices between the Ormiston and Botany branches are usually within a few cents, so the Ormiston branch is the one pinned for both columns.
  • Where a product is unavailable at one store on the check date, the entry is left blank rather than substituted with an online estimate. Blank entries are visible in the table above.
  • Both columns are online prices, not shelf tags. Woolworths figures come from Woolworths NZ's online price feed; Pak'nSave figures come from Pak'nSave's online shop with the store set to Ormiston. Either can lag an in-store change, and a Click & Collect price can differ from the shelf tag outright. That trade-off buys a weekly refresh of both columns instead of a quarterly one, and it is stated here rather than hidden. The May 2026 round below was walked in store, and is kept as-is.
  • Some rows are not auto-updated on one side or the other, because no product at that chain matches the stated spec, or because the row is on special that week and the index records regular prices only. The two examples that used to sit here β€” an 8-pack wrap Woolworths does not sell, and loose Royal Gala apples Pak'nSave Ormiston does not stock β€” were re-pinned on 12 August 2026 to products both chains actually carry, and are no longer held back. Rows that are held back keep their last recorded figure until the spec is corrected. Leaving an old number visible is better than substituting a different product and calling it the same thing.

The 20 items in the basket

The basket is fixed across months so the index is comparable over time. It was chosen to represent a typical Term-1 NZ lunchbox week and includes:

  • Bakery β€” wholegrain bread (700g), wraps 6-pack β€” farrah's premium white, bagels 4-pack.
  • Produce β€” apples (1kg) β€” granny smith, bananas (1kg), carrots (1kg), cherry tomatoes (180g), cucumber β€” telegraph, lettuce β€” iceberg.
  • Meat & Deli β€” sliced chicken (200g) β€” deli sliced, canned tuna (185g) β€” sealord in springwater, sliced ham (200g).
  • Dairy & Eggs β€” cheese block (500g) β€” mainland mild, eggs (12-pack) β€” free range, yoghurt (1kg) β€” fresh 'n fruity greek natural, butter (500g) β€” anchor.
  • Pantry β€” rice (1kg) β€” long grain white, pasta (500g) β€” penne, hummus (220g) β€” obela classic, peanut butter (380g) β€” pic's smooth.

Where a recipe-specific item changes between supermarkets (e.g., Woolworths stocks Anchor cheese; Pak'nSave stocks Mainland and house-brand), the cheapest comparable house-brand and brand-name version are both checked and the recorded price is the one most parents would actually buy.

How a round works now

  1. Weekly, online, one operator. Each column is re-read from that chain's own online shop, with the store pinned to Ormiston, and each column carries its own reading date at the top of this page. I do it personally β€” no third-party shoppers or paid couriers.
    Until August 2026 this was a monthly in-store walk instead: both stores visited within the same two-hour window, normally on the third Saturday of the month. That is how the May 2026 round below was collected, and it is kept as-is. It is not how the current table is produced.
  2. Receipts kept from our own shops. The figures in the table are read from each chain's online shop, not from a till, but we keep receipts from our own shopping at these stores as evidence that they really are the branches behind the columns. Receipts are shown with the card number, auth code, and cashier details masked or cropped out (see the sample above) β€” the store name, items, and totals stay untouched.
  3. Specials and member-only prices. Where a product is on a promotional special or requires a OneCard / club price, the table keeps its regular shelf price (at Pak'nSave and New World, whose online shops show only the special price that week, the last non-special price recorded) β€” so the figure is what a parent would pay without any loyalty programme and stays comparable across promotional cycles. Specials themselves are not shown in this table.
  4. Which figure is canonical, per column. For Woolworths, the price feed is canonical β€” it is the retailer's own published number for the pinned product, and it is what allows a weekly refresh. For Pak'nSave, the canonical figure is that chain's own published price for the Ormiston store specifically, because Pak'nSave sets prices per store; every reading is checked to confirm which store it came back for. Both are the retailer's own online number rather than a shelf tag read by hand, and both refresh weekly.
  5. What the automation refuses to do. The update job will not substitute a different product for a pinned one. If a pinned item is renamed, resized, or discontinued, the job reports it and leaves the old figure in place rather than filling the row with a near-enough match. An earlier version picked the median of a keyword search instead of a fixed product, and it swapped a Woolworths own-brand cheese block for a premium brand β€” a 40% jump that was a brand change, not a price change. That is the failure this design exists to prevent.

What the Price Index does not include

  • A complete New World column. New World is in the table, but only on the items whose price is fresh enough to sit beside the other two β€” 17 of the 20 on the last read. 2 items are blank in that column (Wholegrain Bread (700g), Cheese Block (500g)), so the three-way basket is a smaller basket than the two-way one and the two totals are not interchangeable. Filling those gaps is the next thing on the list.
  • Regional NZ stores. Every price on this page comes from two Ormiston stores in East Auckland. We have not measured Wellington, Hawke's Bay, Christchurch or Dunedin, so we publish no adjustment factor for them β€” a number we had not measured would be worth less than none here. Treat the index as an Auckland benchmark and check your own shelf.
  • Online-only retailers. Costco, online specialty stores (FreshChoice online, Bin Inn, etc.) are not included. The 20-item basket focuses on mainstream supermarket pricing that most NZ families actually experience.
  • Bulk and farmers' market pricing. Farmer's market produce in Auckland (Avondale, La Cigale, Parnell, etc.) is often cheaper for in-season fruit and vegetables, but the index uses supermarket prices because that is where the bulk of NZ families shop.

Limitations and disclaimers

  • Prices are accurate as of the check date only. Supermarket prices change weekly, and the last-updated banner at the top of the table should be checked before relying on a figure for an actual shop.
  • The index reflects two specific stores. Other Woolworths or Pak'nSave branches may differ by NZ$0.20–0.80 on most items. Central-city branches like Sylvia Park or Newmarket, for instance, tend to run slightly higher than the Ormiston stores due to retail rent differential.
  • The index is not endorsed by Woolworths, Pak'nSave, Foodstuffs, or Woolworths NZ. It is an independent reader-facing reference. Brand and logo references are nominative use only.
  • Where a price is unavailable or out of stock, the entry is left blank in the table. Blanks are not imputed or estimated.

How the index is used by the planner

The Kiwi Lunchbox Planner does not read this 20-item table. It prices from a larger weekly cache of pinned supermarket products (data/price_cache.json), refreshed by the same routine; this page is the part of that work published for scrutiny. When the planner generates a weekly menu, the cost shown on the results screen is the sum of each ingredient's pack price multiplied by the share of the pack one lunchbox uses. If you toggle on "use this week's sales" in the planner sidebar, the planner additionally consults a separate weekly promotions feed (Woolworths and New World mailers) and discounts the affected ingredients on the spot.

Every pack price in the planner traces back to a named product at a named chain β€” that chain's own published price for that exact product, with the Pak'nSave store pinned to Ormiston. None of them is an industry average. What is an estimate, and is labelled "Est." on the results screen, is the second half of the sum: how much of a pack one lunchbox uses. A 30g serve of cheese out of a 500g block is our household's portion, not a published figure, and a family that cuts thicker slices will spend more than the screen says.

Editorial accountability

If you spot a price you think is wrong β€” perhaps you shopped at the same store the same week and saw a different number β€” please email it through the contact form. Submitted corrections are checked against the store's own online listing for the pinned product and against the prices recorded for that week, and where the reader is right the figure is corrected and a new lastUpdated stamp is published. Every recorded round is kept and published in full as price-history.csv. The same applies to the update date itself: this page shows when the index was last re-priced, not when the page was last touched, so a stale date is visible rather than hidden.

This page is owned, written, and maintained by Yong Jae Lee, a Senior Product Designer based in Auckland and the solo operator of Kiwi Lunchbox. There is no team. The same person who designs the site, checks the prices, and replies to your email is the person whose name is on this page.

See what a week of lunches costs

The Kiwi Lunchbox planner estimates your weekly lunchbox cost from a separate weekly cache of regular Woolworths prices β€” one tracked product per ingredient β€” not from the table on this page.

Try the Planner