BusinessTech ran a nine-item basket comparison across South Africa’s major grocery chains in October 2025. The same shop priced R438,91 at Pick n Pay, R419,91 at Shoprite, and a similar margin at Checkers depending on the store sample. That is a R19 gap on a R430 shop, or roughly 4,5 per cent.
Four and a half per cent does not sound like much. On a household doing the same shop weekly for a year, the gap is R988. On the PMBEJD household basket pricing at R5 452,09 a month, the same 4,5 per cent gap is R245 a month, or close to R3 000 a year. Here is where the gap actually lives.
The basket rule, in one line
The gap between the cheapest and the most expensive of the big four chains, on a like-for-like basket, runs at 3 to 6 per cent in most weeks. The brand-name lines move the gap up. The house-brand lines move it back down.
That is the basket. Whether your weekly shop costs R450 or R4 500, the same retailer-by-retailer relationship holds, and the same three line items do most of the work.
Where Shoprite consistently wins
The Shoprite basket in the BusinessTech comparison printed at R419,91. The lines where Shoprite carried the largest pricing advantage were the staples that the chain has built its margin model around for thirty years.
Maize meal. A 10 kg bag of Iwisa Super Maize Meal printed roughly R12 cheaper at Shoprite than at Pick n Pay in the same week. On households buying maize meal as a weekly category staple, that gap compounds quickly.
Cooking oil. A 2 litre bottle of sunflower oil (Sunfoil or store brand) ran R8 to R14 cheaper at Shoprite. The category has been volatile since the 2022 Black Sea disruption knocked sunflower supply offline, and Shoprite has priced aggressively into the volatility.
Frozen chicken portions. A 2 kg pack of frozen mixed portions ran R10 to R18 cheaper at Shoprite than at Pick n Pay in the same week. Both retailers carry the same major suppliers (Astral, RCL, Country Bird), so the gap is purely shelf-pricing, not product mix.
These three categories explain most of the R19 basket gap. The remaining six items moved within a 50-cent to R2 range across all three chains.
Where Pick n Pay holds its ground
The Pick n Pay basket in the same comparison printed at R438,91. The lines where Pick n Pay was either the cheapest or within 50 cents of the cheapest were the categories where the chain’s private label has been strongest.
Brown bread. A 700 g loaf of Pick n Pay brown bread printed at parity with Sasko or Albany brown at Shoprite, and Pick n Pay’s house-brand sliced was R1 to R2 cheaper. Across the three big bread brands, the price competition in the brown-bread category is so tight that the basket effect is negligible.
Long-life milk. A 1 litre carton of UHT milk ran within R1 across all three chains. The category is functionally a commodity, and the chains compete on shelf availability, not price.
Sugar. A 2,5 kg bag of white sugar ran within R3 across all three chains. The sugar-tax effect runs across all three equally, and the major suppliers (Tongaat, RCL) sell at parity into all three.
Eggs. A tray of 18 large eggs printed within R5 across the three retailers. The 2023 avian-flu cull is now well in the rear-view mirror; layer flocks have rebuilt, and the StatsSA food CPI release for March 2026 noted egg prices down 6,3 per cent year-on-year. The category-wide deflation has narrowed the inter-retailer gap.
The Checkers angle: where private label has overtaken the brand
Checkers’ Better and Better range and Houseguest range have, over the last three years, repositioned the chain from a Pick n Pay competitor into a private-label specialist. The same nine-item basket at Checkers prints within a few rand of Shoprite (same parent group) on like-for-like brand-name shopping. The interesting basket is the private-label shop.
A nine-item Checkers shop using Houseguest and Better and Better products instead of national brands ran roughly R45 to R65 cheaper than the same nine items at Pick n Pay or Spar with national brands, on the comparison weeks BusinessTech ran. That is a 10 to 15 per cent saving against the comparable brand-name basket.
The catch is that Checkers’ private-label range is concentrated in certain categories (cleaning, pantry staples, frozen vegetables, long-life milk) and thin in others (fresh meat, deli, bakery, wine). A shopper switching to private label saves materially on roughly half the basket and saves nothing on the other half. The total monthly saving on a R5 000 grocery spend, for a household that switches half its basket to Checkers private label, is roughly R250 to R350 a month, or R3 000 to R4 200 a year.
The Spar gap: where the convenience premium shows up
Spar runs a smaller-format store model than the big three chains, and the basket reflects it. The same nine-item BusinessTech shop at Spar printed roughly R35 to R50 above Shoprite, depending on the store sample. That is the convenience premium: closer parking, shorter queues, smaller stores, less aggressive shelf pricing.
Households doing a top-up shop two or three times a week at Spar (a typical urban convenience-shopping pattern) are paying that premium on every basket. Over a year, the cumulative effect runs R2 500 to R4 000 more than the same volume bought weekly at Shoprite or Checkers. That is the cost of the convenience, and for many households it is worth paying. The point is that it is a price, not a free choice.
Why the basket gap is smaller than the marketing suggests
Every retailer’s weekly advertising lands a single low price-point as the headline. The numbers are real on that line item. The numbers are not the basket.
Three structural reasons keep the basket gap narrow.
- The major brands sell at parity. Astral, Tiger Brands, RCL, AVI and most other major SA food suppliers sell into all four big retailers at very close to the same wholesale price. The retailer’s margin choice on each line is what creates the gap, not the cost of goods.
- House brands run roughly parallel. Each chain’s private label is priced 15 to 25 per cent below the equivalent national brand on the shelf. The gap between Shoprite’s private label and Pick n Pay’s private label, on the same category, is much smaller than the gap between either house brand and the national brand.
- Promotional cycling is constant. A line item that is R12 cheaper at one chain this week is often R8 cheaper at the other chain next week. The chain-by-chain gap shifts week by week. The basket-level gap, averaged over the year, is the more honest number than any single week’s snapshot.
The marketing language (“up to R200 cheaper”) is doing what marketing does: pointing at the largest single line-item gap available in that week. The basket-level number is the one the household budget actually responds to.
What this is worth doing about
There is no consumer hack that closes the basket gap entirely. There are three things any household running a weekly shop can do this month:
- Identify your three biggest spend lines. Not the most expensive per unit; the categories you actually buy most often. For most households those are bread, milk and frozen chicken; for some they are maize meal, cooking oil and eggs. Switching only the three biggest lines to the cheapest retailer captures roughly 70 per cent of the available saving without any other change in shopping pattern.
- Try the private label on those three lines. Not the whole basket; just the three biggest. Most households who have not switched to a house brand on their top three lines are paying a 15 to 25 per cent brand premium on those lines for no quality reason that survives a blind taste test.
- Do one consolidated weekly shop, not multiple top-ups. The Spar premium is the convenience premium, and the convenience premium is real money over a year. A consolidated weekly Shoprite or Checkers shop plus one mid-week top-up at the nearest convenience store is cheaper than three mid-week Spar shops, every time.
The cheapest basket is rarely the same chain every week. The cheapest basket is the same three line items, bought consistently, from whichever chain prints them cheapest most often.