One South African food store is much cheaper than Pick n Pay and Checkers
Makro is the cheapest grocery retailer in South Africa for a basket of essential grocery items compared to its top six competitors, including Pick n Pay and Checkers.
This is according to BusinessTech’s grocery basket comparison, which collected the online prices of nine staple foods and products in a typical middle-income grocery basket as of July 2025.
The comparison included seven of South Africa’s major retailers – Shoprite, Checkers, Pick n Pay, Spar, Woolworths, Food Lover’s Market, and Makro.
The grocery basket comparison includes the following products:
- 700g loaf of Albany Superior sliced white bread
- 2-litre sunflower oil (cheapest option)
- 2.5kg Iwisa maize meal
- 2.5kg Selati white sugar
- 2-litre milk (cheapest option)
- 2kg Tastic rice
- 2.5kg Snowflake cake flour
- 175g bar of Dettol herbal soap
- 9-pack of two-ply toilet paper (cheapest option)
In certain instances, not all retailers may carry specific brands that are directly comparable to one another.
For example, Woolworths may not offer Albany Superior sliced white bread but may provide a similar alternative for comparison purposes.
To ensure consistency, each store selects the most affordable sunflower oil, milk, and toilet paper.
If any substitutions are necessary, these are clearly outlined and justified in the price comparison table below.
It’s important to note that it’s possible to discover the same basket of products at a lower price or opt for less expensive non-branded options.
Prices may also vary from one region to another (such as provinces or cities) or within different franchises, which is the case with Spar.
The basket is, therefore, not a representation of the absolute cheapest version of every item. The specific brands are chosen for consistency across retailers and their recognisability among middle-class shoppers.
The pricing in the analysis comes from retailers in Gauteng. The normal price of items was used, and limited-time specials were not considered.
The results

According to the data collected, the average cost for our basket of nine staple items in July 2025 was R415.84. This is only R0.84 more than the price of the same basket of foods recorded in July 2024.
Woolworths has the most expensive basket at R439.91, which is the exactly the same price as it was last year. Pick n Pay is the second most expensive at R427.91.
Spar and Checkers followed behind Pick n Pay with a basket price of R421.91. Interestingly, this is R23.00 more for Spar and R16.00 less for Checkers than in July 2024. It must be noted that Spar is franchised, meaning prices and items can vary from store to store.
Shoprite saw a year-on-year decline in prices, with its basket priced at R419.91, which is R1.00 less than in 2024. Makro offers the cheapest basket in July 2025, totalling R367.60, which was R7.00 more than last year.
However, this is notably cheaper than the other retailers. Makro is R72.31 and R60.31 less than Woolworths and Pick n Pay, respectively.
This is also R44.15 less than the second-cheapest retailer, Food Lover’s, which priced the basket at R411.75.
The table below breaks down the prices for each item from the eight grocery retailers and shows which is the least expensive.
| Item | Woolies | Pick n Pay | Spar | Checkers | Shoprite | Food Lover’s | Makro |
|---|---|---|---|---|---|---|---|
| White Bread | R19.99 | R18.99 | R19.99 | R19.99 | R19.99 | R19.95 | R14.95 |
| Sunflower oil | R84.99 | R84.99 | R77.99 | R79.99 | R79.99 | R79.99 | R61.95 |
| Maize meal | R38.99 | R41.99 | R37.99 | R39.99 | R39.99 | R44.99 | R37.95 |
| White Sugar | R68.99 | R65.99 | R63.99 | R65.99 | R65.99 | R65.99 | R60.95 |
| Milk | R38.99 | R34.99 | R32.99 | R34.99 | R34.99 | R29.95 | R28.95 |
| Rice | R46.99 | R44.99 | R44.99 | R44.99 | R42.99 | R34.99 | R32.95 |
| Flour | R41.99 | R41.99 | R42.99 | R41.99 | R41.99 | R41.99 | R39.95 |
| Soap | R18.99 | R18.99 | R18.99 | R18.99 | R18.99 | R18.95 | R15.00 |
| Toilet paper | R79.99 | R74.99 | R81.99 | R74.99 | R74.99 | R74.95 | R74.95 |
| July total | R439.91 | R427.91 | R421.91 | R421.91 | R419.91 | R411.75 | R367.60 |