Do regional towns really pay more at Coles?
Luke Durrant · Prices captured 21 September 2026 · 6 min read
Across 25 Coles stores, 96.2% of lines cost a country town exactly what they cost its own capital city — to the cent. Two capital cities agree with each other less often than that (84.9%). The price line runs between states and into the far north, not between the city and the bush.
One household's real weekly shop — 49 lines mapped from a real receipt — priced at 25 Coles stores across eight states and territories, every price read on the same day as the price Coles lists for that store.
- Town vs its own capital
- 96.2%
- of shared lines priced identically, to the cent
- Capital vs capital
- 84.9%
- identical — cities disagree more than towns do (widest: Adelaide vs Perth)
- Dearest town: Broome
- +2.6%
- on the same basket as its own capital — a freight loading, not a country loading
- Specials
- 10 of 13
- discounted lines ring up at the same price in all 25 stores
- Stock, not price
- 40 vs 48
- lines in stock: Broome against Wagga Wagga — the gap that is real
01 / 06Town vs its own capital
Eighteen country towns, priced against their own capital city
| Town | Compared with | Same price | Basket | Difference |
|---|---|---|---|---|
Broome WA Remote town · 2,230 km from Perth | Perth | 73% 29 of 40 lines | $215.92 capital $210.43 | +2.6% |
Port Hedland WA Remote town · 1,640 km from Perth | Perth | 76% 31 of 41 lines | $220.26 capital $215.18 | +2.4% |
Bendigo VIC Regional town · 150 km from Melbourne | Melbourne | 100% 48 of 48 lines | $249.02 capital $249.02 | 0.0% |
Rockhampton QLD Regional town · 600 km from Brisbane | Brisbane | 100% 45 of 45 lines | $232.90 capital $232.90 | 0.0% |
Cairns QLD Regional town · 1,390 km from Brisbane | Brisbane | 100% 46 of 46 lines | $238.30 capital $238.30 | 0.0% |
Mount Isa QLD Remote town · 1,830 km from Brisbane | Brisbane | 100% 41 of 41 lines | $214.70 capital $214.70 | 0.0% |
Port Lincoln SA Regional town · 650 km from Adelaide | Adelaide | 100% 45 of 45 lines | $231.43 capital $231.43 | 0.0% |
Geraldton WA Regional town · 420 km from Perth | Perth | 100% 43 of 43 lines | $225.13 capital $225.13 | 0.0% |
Kalgoorlie WA Regional town · 595 km from Perth | Perth | 100% 43 of 43 lines | $225.13 capital $225.13 | 0.0% |
Alice Springs NT Remote town · 1,490 km from Darwin | Darwin | 100% 39 of 39 lines | $191.39 capital $191.39 | 0.0% |
Devonport TAS Regional town · 280 km from Hobart | Hobart | 100% 41 of 41 lines | $215.18 capital $215.18 | 0.0% |
Dubbo NSW Regional town · 300 km from Sydney | Sydney | 98% 43 of 44 lines | $231.01 capital $231.31 | −0.1% |
Wagga Wagga NSW Regional town · 450 km from Sydney | Sydney | 98% 43 of 44 lines | $231.01 capital $231.31 | −0.1% |
Bairnsdale VIC Regional town · 280 km from Melbourne | Melbourne | 98% 45 of 46 lines | $237.32 capital $237.62 | −0.1% |
Mildura VIC Regional town · 540 km from Melbourne | Melbourne | 98% 45 of 46 lines | $238.22 capital $238.52 | −0.1% |
Bunbury WA Regional town · 175 km from Perth | Perth | 98% 42 of 43 lines | $224.78 capital $225.08 | −0.1% |
Coffs Harbour NSW Regional town · 500 km from Sydney | Sydney | 98% 41 of 42 lines | $221.41 capital $221.71 | −0.1% |
Broken Hill NSW Remote town · 1,140 km from Sydney | Sydney | 93% 40 of 43 lines | $223.63 capital $227.51 | −1.7% |
02 / 06The exception
Even remote isn't a rule — freight is
- Broome, WA
+2.6%
on the same basket as Perth, 2,230 km away. Same price on 29 of 40 lines.
- Port Hedland, WA
+2.4%
on the same basket as Perth, 1,640 km away. Same price on 31 of 41 lines.
- Mount Isa, QLD
0.0%
on the same basket as Brisbane, 1,830 km away. Same price on 41 of 41 lines.
- Alice Springs, NT
0.0%
on the same basket as Darwin, 1,490 km away. Same price on 39 of 39 lines.
- Broken Hill, NSW
−1.7%
on the same basket as Sydney, 1,140 km away. Same price on 40 of 43 lines.
Even there the loading is single-digit, and it lands on packaged goods trucked a long way — pasta, tinned tomatoes, chips, flavoured milk — not on the store's whole range. Distance alone doesn't predict it: Broken Hill, 1,140 km from Sydney, came in slightly BELOW Sydney on the same basket.
03 / 06Where the gap really is
Two capital cities agree with each other less than a town agrees with its capital
- Adelaide vs Perth38 of 43 same+2.7%
- Perth vs Hobart35 of 40 same−2.1%
- Adelaide vs Darwin32 of 43 same+1.9%
- Sydney vs Adelaide40 of 43 same−1.7%
- Brisbane vs Perth39 of 44 same+1.6%
- Melbourne vs Perth39 of 44 same+1.5%
- Melbourne vs Adelaide43 of 46 same−1.2%
- Sydney vs Hobart37 of 40 same−1.2%
- Perth vs Darwin25 of 40 same−1.1%
- Sydney vs Perth36 of 41 same+1.1%
- Darwin vs Hobart29 of 40 same−1.1%
- Brisbane vs Adelaide41 of 45 same−0.9%
- Sydney vs Brisbane39 of 43 same−0.7%
- Melbourne vs Hobart40 of 42 same−0.7%
- Brisbane vs Darwin28 of 42 same+0.7%
- Adelaide vs Hobart41 of 42 same+0.6%
- Melbourne vs Darwin29 of 43 same+0.5%
- Sydney vs Melbourne42 of 44 same−0.5%
- Brisbane vs Hobart38 of 42 same−0.4%
- Melbourne vs Brisbane42 of 47 same−0.3%
- Sydney vs Darwin26 of 40 same+0.0%
04 / 06What moves
Most of the basket is flat; these are the lines that aren't
| Product | Cheapest | Dearest | Spread | Dear end |
|---|---|---|---|---|
Coles Green Zucchini (each) produce | $0.78 | $2.50 | +221% | Perth, Bunbury, Geraldton |
Coles Pink Lady Apple (each) produce | $0.70 | $1.50 | +114% | Sydney, Dubbo, Wagga Wagga |
Coles Truss Tomatoes (each) produce | $0.77 | $1.29 | +68% | Perth, Bunbury, Geraldton |
Coles Cherry Tomatoes 250g produce | $2.50 | $3.20 | +28% | Sydney, Dubbo, Wagga Wagga |
Dairy Farmers Protein Smoothie 400mL dairy | $4.55 | $5.10 | +12% | Port Hedland, Broome |
San Remo Penne Rigate 500g pantry | $2.95 | $3.22 | +9% | Port Hedland, Broome |
Mutti Polpa with Basil 400g pantry | $2.75 | $3.00 | +9% | Port Hedland, Broome |
Red Rock Deli Sea Salt & Balsamic 165g pantry | $6.00 | $6.54 | +9% | Port Hedland, Broome |
Mutti Sugo Bolognese 400g pantry | $4.80 | $5.23 | +9% | Port Hedland, Broome |
Coles Bananas (each) produce | $0.77 | $0.83 | +8% | Sydney, Broken Hill, Melbourne |
Coles Mushrooms Cup 200g produce | $4.00 | $4.20 | +5% | Perth, Bunbury, Geraldton |
Specials are national. The sale price is identical in every store measured — what differs is the “was” price printed beside it, so the same special reads as a deeper discount the further from the city you are.
05 / 06The real regional gap
It isn't the price. It's whether the shelf has it at all.
The same 29 lines — the ones every store in the study prices — rung up at each store on the same day, with that store's stock coverage of the full shop beside it.
- Broken Hill$140.3845/49 in stock
- Adelaide$140.3845/49 in stock
- Port Lincoln$140.3845/49 in stock
- Hobart$141.7841/49 in stock
- Devonport$141.7842/49 in stock
- Darwin$142.0942/49 in stock
- Alice Springs$142.0942/49 in stock
- Bairnsdale$142.5245/49 in stock
- Mildura$142.5246/49 in stock
- Brisbane$142.6047/49 in stock
- Rockhampton$142.6043/49 in stock
- Cairns$142.6045/49 in stock
- Mount Isa$142.6041/49 in stock
- Melbourne$142.8247/49 in stock
- Bendigo$142.8247/49 in stock
- Dubbo$143.5647/49 in stock
- Wagga Wagga$143.5648/49 in stock
- Coffs Harbour$143.5644/49 in stock
- Sydney$143.8644/49 in stock
- Bunbury$145.8842/49 in stock
- Perth$146.1843/49 in stock
- Geraldton$146.1843/49 in stock
- Kalgoorlie$146.1841/49 in stock
- Port Hedland$148.8741/49 in stock
- Broome$148.8740/49 in stock
- Capital city
- Regional town
- Remote town
Stock coverage doesn't split city from country either: the best-stocked store in this capture is Wagga Wagga, a country town, and the gaps that remain sit in the premium and specialty tail rather than the staples. It splits big stores from small ones.
That's the number worth acting on: a thinner shelf pushes you to a dearer substitute, and the receipt goes up without a single price changing.
06 / 06When the line is missing
What a missing line actually costs you — priced per kilo, not per pack
Often yes — and it is worth separating two things people feel as one. Measured per kilo or litre, the replacement is genuinely dearer in 26 of 49 forced swaps, median +22%. On top of that, the cash you hand over rises further — median +47% — because in 36 of 49 cases the only thing left was a bigger pack. The first number is a price rise. The second is buying more than you came for, and only the first should be called expensive.
- Price, per kilo or litre
- +22%
- median across 49 forced swaps — a real price rise, dearer in 26 of them
- Cash at the till
- +47%
- median — the rest is pack size, not price (36 of 49 forced bigger)
- Worst single swap
- +79%
- per unit: Pizza base/dough in Broome
- Worst basket: Bunbury
- +$5.06
- real price penalty across 3 forced swaps (+$7.20 at the till)
Every need, dearest per unit first
Read both columns. Strawberries in Broome are the honest example: the 250g punnet was gone, so the swap is the 350g Premium — 22% dearer per kilo, which is a genuine price rise, and 71% more at the till, which is mostly just more strawberries than you wanted.
| What you wanted → what was there | Store | Price (per kilo/litre) | Cash that day |
|---|---|---|---|
Coles Dough Ball 250g → Coles Mini Bases 280g Pizza base/dough · 250g → 280g | Broome and 5 more stores | +79% per kilo +$1.57 for the 250g you wanted | +$2.00 out today $2.00 → $4.00 plus 30g you didn't come for |
Home Chef Quiche 200g → Herbert Adams 200g Quiche · 200g → 200g | Broome | +62% per kilo +$3.74 for the 200g you wanted | +$3.74 out today $6.00 → $9.74 |
Coles Strawberries 250g → Coles Premium 350g Strawberries · 250g → 350g | Broome and 5 more stores | +22% per kilo +$0.79 for the 250g you wanted | +$2.50 out today $3.50 → $6.00 plus 100g you didn't come for |
La Casa Ball 250g → Coles Mozzarella Pear 500g Fresh mozzarella · 250g → 500g | Broome and 1 more store | −27% per kilo −$1.50 for the 250g you wanted | +$2.50 out today $5.50 → $8.00 plus 250g you didn't come for |
Coles Deli Strips 130g → Always Fresh Strips 310g Roast capsicum · 130g → 310g | Broome | −33% per kilo −$1.23 for the 130g you wanted | +$2.25 out today $3.75 → $6.00 plus 180g you didn't come for |
Perfect Italiano Tub 250g → Perfect Italiano 500g Ricotta · 250g → 500g | Broome | −37% per kilo −$2.00 for the 250g you wanted | +$1.40 out today $5.40 → $6.80 plus 250g you didn't come for |
Who gets forced into it
The cash effect is identical everywhere — the same median in a capital, a regional town and a remote one, because pack sizes are national. The price effect moves around, and not in the direction you would guess: the remote stores' gaps happened to fall on needs where the replacement is a bigger tub of the same thing. What changes most between towns is simply how often you are forced into a swap at all, and that follows store size, not the map — Perth, a capital city, was forced into 3.
| Store type | Forced swaps | Median price change | Median cash that day | Genuinely dearer |
|---|---|---|---|---|
| Capital city | 9 | +22% | +47% | 5 of 9 |
| Regional town | 23 | +22% | +47% | 13 of 23 |
| Remote town | 17 | −27% | +47% | 8 of 17 |
And sometimes there is no substitute at all
- Strawberries — nothing acceptable in stock in Bairnsdale
- English muffins — nothing acceptable in stock in Hobart
- English muffins — nothing acceptable in stock in Devonport
This is the one unambiguous loss: no pack size makes up for the shelf being empty — and note that a capital city is on this list too.
And the staple never went missing anywhere
- Zucchini — listed as available in all 25 stores, typically $1.58
- Full-cream milk (1L, any brand) — listed as available in all 25 stores, typically $1.75
Plain full-cream milk, any brand, was stocked in every store measured, and the cheapest litre cost the same in all 25. Loose zucchini was available everywhere too — it only looked missing in Western Australia because Coles lists it there under a different product code, at a different price. The gaps in this basket sit in the premium and specialty tail — a named-brand quiche, a particular tub of ricotta — not in the things everyone buys. That is worth holding onto before concluding a town is being short-changed.
You can't buy less than you came for: the substitute is the smallest available pack at least as big as the usual one (the largest available if nothing reaches it). The price impact is the substitute's rate applied to the amount you wanted; the cash impact is what you actually hand over.
How this was measured
Coles per-store product API (/api/bff/products/{sku}?storeId=), one live call per product per store, same day.
apps/nextjs/tests/fixtures/real-carts-au.json — order ww-2026-09-01 (the owner's own 51-line Woolworths shop), mapped line-for-line to the nearest Coles product.
- Coles only — every claim on this page is a Coles claim. Woolworths and Aldi are covered in the checks below.
- One store per town — the first full-size supermarket the retailer's own store finder returns for that postcode. Small-format stores are excluded, because store format is a separate effect from location.
- Basket totals only ever sum lines both stores price. 29 of the 49 lines are priced at all 25 stores.
- A single day's capture. Specials rotate weekly, so the produce numbers in particular are one week's picture, not a trend.
- For each shopping need in the study basket, a hand-checked set of the products a shopper would actually accept instead — priced and stock-checked at all 25 stores through the same per-store product API. Milk is measured as an everyday need rather than one product code: Coles lists house-brand milk under a different SKU in every state, so the 'usual' is whichever 1-litre plain full-cream milk that state's store lists.
- These are the prices Coles quotes online for each store, and fulfilment method makes no difference to them (checked: click and collect, delivery and home delivery return the same price at every store tested). What the capture cannot see is the physical shelf ticket. Coles' own terms say in-store prices may differ from online, so every claim here is a claim about the price Coles lists for that store, not one read off its shelf.
How the numbers were checked
A per-store price is only worth publishing if the store id really changed the answer. Four checks, run against the retailer's own pages after the capture:
- Negative control: the price endpoint rejects a missing, zero or nonsense store id with HTTP 400. Every price here came back from a call that named a real store, so an identical price between two towns is two stores agreeing — not one national price served twice.
- Store echo: for a sample of stores the product page was loaded with that store pinned and the page echoed the same store id back (initStoreId), at the same price the API gave. Dubbo $4.55, Broome $5.10 and Port Hedland $5.10 for the same line, read twice through two different code paths.
- Store identity: every store id was resolved back through the retailer's own store finder and confirmed to sit in the town it is credited to — Coles Chinatown is Broome's Chinatown (Broome WA 6725), Coles Toormina is a Coffs Harbour suburb, Coles South Hedland serves Port Hedland.
- Coles only, and not by preference: Woolworths' fulfilment endpoint returns HTTP 401 to an anonymous caller, so a town's Woolworths price cannot be read without signing in, and Aldi publishes a single national price. Coles is the one Australian grocer whose per-store listed price is publicly readable at 25 stores in a day.
- State-variant SKUs: Coles lists some products under a different code in each state, which reads as a phantom stock-out if a product is keyed to one code. Every one of the 116 gaps in this capture was re-checked twice against a store search — once on brand, name and size, then again on name alone because produce sizes are written differently per state. Two were variants, not gaps, both in WA: Pauls Farmhouse Gold 1.5L milk (WA code 3058255) and loose zucchini (WA code 157716, and $2.50 each against $1.58 in the east). Both are merged. The other 114 gaps are real.
- Fulfilment method: the same product at the same store returns the identical price whether the API is asked for click and collect, delivery or home delivery, or nothing — checked at Sydney, Dubbo, Alice Springs, Port Hedland and Broome. What this capture cannot see is the physical shelf ticket: these are the prices Coles quotes for that store online, and Coles' own terms say in-store prices may differ.
Frequently asked questions
- Do supermarkets charge more in regional towns?
- On this capture, almost never. Across 18 country towns measured against the capital city of their own state, 96.2% of shared lines were the same listed price to the cent on the same day. Dubbo pays Sydney's price, Mount Isa pays Brisbane's, Devonport pays Hobart's.
- So why does a country shop feel more expensive?
- Substitution, and it comes in two parts worth separating. Across the forced swaps in this basket the replacement was dearer per kilo or litre in a median across 49 forced swaps — a real price rise, dearer in 26 of them — that is a real price rise. On top of that the cash handed over rose by a median of +47%, because the survivor on the shelf is usually a bigger pack: Broome's 250g strawberry punnet was gone, so you take the 350g at $6.00. The first number is being charged more; the second is buying more than you came for. Both make a shop feel expensive, and only the first one is. The staples don't drive this at all — plain full-cream milk and loose zucchini were stocked in all 25 stores.
- Where do prices actually differ, then?
- Between states and at the far end of freight routes. Two capital cities agreed on only 84.9% of lines in this capture — less often than a country town agrees with its own capital. Produce moves with state and season — loose zucchini is $2.50 each in Western Australia and $1.58 in the east — and remote stores add a freight loading to packaged goods.
- Are specials the same everywhere?
- The sale price is. Ten of the thirteen lines on special rang up at exactly the same price in all 25 stores. What changes is the 'was' price printed next to it, so the same special is advertised as a bigger saving in a remote store than in the city.
- Does OpenOrder work outside the cities?
- Yes. Prices are matched to your state and zone, and because the listed price of a given line is the same in town and city, the comparison holds. What matters more for a regional shopper is whether a store stocks the line at all — which is why the basket comparison prices whole baskets and flags what a store doesn't carry.
Price your own basket, wherever you shop
OpenOrder prices a whole week's shopping list at every major supermarket and tells you which store is cheapest for the lot — and which lines a store doesn't carry.
Plan a week and compare