Pick up the receipt from your last big shop. The Pietermaritzburg Economic Justice & Dignity Group (PMBEJD) has tracked a forty-four-item household basket every month since 2016. The most recent release prices that basket at R5 452,09. In May 2021 the same basket cost R4 137,11. That is a 31,8 per cent rise in five years, on the staples that make up most of a working household’s grocery spend.
That is the cost-of-living story your household budget is now organised around. Stats SA’s official headline inflation number averages food across the whole economy. PMBEJD breaks the same picture down line by line, weighted toward what lower- and middle-income households actually buy. The two datasets tell the same story at different volumes.
The categories that have moved hardest
Three categories on the basket have done most of the work behind that 31,8 per cent move.
Cooking oil has been the single most volatile item on the basket since the 2022 Black Sea disruption knocked global sunflower supply offline. Prices spiked, came down, and never fully retraced. The 750 ml bottle is still a different category of cost than it was five years ago.
Maize meal absorbed the 2024 El Niño season, which cut the local crop sharply and forced imports in at parity prices. Yellow maize meal posted one of the largest monthly increases in the most recent PMBEJD release, which tells you the category has not finished moving. The Bureau for Food and Agricultural Policy Baseline Outlook flags maize as still tracking above its pre-El-Niño trend through the 2026/27 marketing year.
Chicken, both fresh portions and frozen, has carried both feed-cost inflation (driven by maize) and the unresolved import-tariff dispute. Frozen chicken portions also posted one of the largest single-month increases in the most recent PMBEJD release.
Beef shifted on top of all that when the 2025 foot-and-mouth restrictions rerouted export volumes and tightened local supply for primary cuts. Eggs moved the opposite way: layer flocks have rebuilt after the 2023 avian-flu cull, and the milk, dairy and eggs category has now printed ten consecutive months of year-on-year price declines.
If your weekly shop has felt heavier this year than last, those categories explain most of it.
The categories that have moved least
Not everything has spiked. A handful of basket items have held closer to general inflation, which means in real terms (after wage growth and overall CPI) they are roughly where they were.
Brown bread sits in this category, held in check by Sasko, Albany, and store-brand competition. White sugar moved less than expected because the sugar tax shifted demand, not price. Tea bags hold their ground because Five Roses, Joko, and Glen compete hard at the entry price point. Salt is functionally a commodity. Tinned pilchards absorbed the 2024 Lucky Star strike as a single-year price shock that has since stabilised.
The pattern is competition. Categories with two or more strong house brands and a long-standing store-brand option have moved less than categories with weaker substitutes.
What households are quietly substituting
PMBEJD’s monthly write-up flags the substitutions households are making to keep the basket affordable. The shifts are predictable but worth seeing in one place.
- Brown bread for white bread. Brown bread is still the cheaper loaf at most chains, and the gap is consistent enough that households default to it without checking.
- Larger maize-meal sizes. The 10 kg bag is meaningfully cheaper per kilogram than the 5 kg, and households now buy in the larger size where storage allows.
- Frozen vegetables for fresh. A 1 kg pack of mixed frozen vegetables now consistently undercuts the equivalent fresh bundle, especially for the carrot-and-bean lines.
- Tinned pilchards for fresh fish. A category swap rather than a like-for-like substitute, but families on tight budgets have moved entirely.
- Chicken livers and necks instead of portions. Lower-priced cuts have outgrown the basket’s portion section by a wide margin since 2022.
None of this is news to anyone who does the shop. Seeing the substitutions written down is, however, a useful sanity check that your household is making the same calls every other household is making.
Why the official CPI does not feel like your basket
The headline food CPI from Stats SA averages prices across the whole population, weighted across all income bands. If you spend a larger share of your household income on food (most South African households below the median do), the basket you actually buy is more concentrated in the items that have moved hardest. PMBEJD’s index, which weights the basket toward staples actually bought by lower- and middle-income households, almost always prints a higher year-on-year number than the official Stats SA food CPI. The gap is a methodology feature, not a flaw on either side.
It is a reminder that “food inflation” is two different numbers, and the one in the news is not always the one in your trolley.
What this is worth doing about
There is no clever consumer hack that undoes a five-year move of that size. But knowing which categories have moved hardest is the first step to deciding what to do with the budget you have.
Three things any household can do this month:
- Identify your three biggest food-line items by spend. Not the most expensive per unit, the items you actually buy most often.
- Compare the in-store private label against the brand on those three lines only. That is where the meaningful savings live.
- Re-check the per-kg, per-litre, or per-100g unit price. Larger packs are not always cheaper. Sunflower-oil pack sizes in particular reward checking the unit price every shop rather than reaching for the bigger bottle on reflex.
Knowing the number is not the same as fixing the number. It is, however, the only place to start.