Home / Blog / Case Study

Case Study · Inventory & Stock Loss

How a Custom Inventory System Cut Our Supermarket's Expiry Losses by ~90%

By Shiraz Goraya · Published July 3, 2026 · 10 min read · Platform: RetailOps Suite (live)

In short: Before RetailOps Suite, one branch of our supermarket was losing TZS 2–4 million (roughly $800–1,600) every month to expired products, and a full stocktake took 5–8 days. After deployment: expiry losses are down to TZS 200–300K per month (~90% reduction), a complete stocktake takes about 12 working hours with 15 staff, ~9,000 items are under live expiry tracking with 970+ products saved from expiring — and our first audit-trail count uncovered a stock variance of over TZS 200 million that the old numbers had been hiding. This is the full story, with the real numbers.

I'm the Branch Manager of Jambo Supermarket, a 5-branch chain in Dar es Salaam. I'm also the developer who built our inventory system. That means this case study has something most vendor case studies don't: the person writing it is the person who suffers if the numbers are wrong.

How much was the supermarket actually losing?

Before we had systematic tracking, expiry losses at a single branch ran TZS 2–4 million per month — roughly $800–1,600, month after month, quietly written off. Products expired on shelves because nobody knew they were about to. By the time an expired item is found, every option is bad: it's already unsellable, usually past the supplier-return window, pure loss.

And that was only the loss we could see. The deeper problem was that we didn't actually know what we owned. More on that below — it turned out to be a TZS 200 million question.

What does the expiry monitoring system do differently?

The core idea is simple: move the moment of discovery from "after expiry" to "weeks before expiry." Staff scan products' barcodes and record expiry dates; the system continuously calculates days remaining for every tracked item and surfaces what needs action now — return to supplier, discount to sell through, or move to a faster-selling branch.

Today the system tracks roughly 9,000 items at the branch. Since deployment, 970–1,000 products have been saved from expiring — recovered through supplier returns, timely discounting, or inter-branch transfers, instead of being written off.

Before — expiry losses

TZS 2–4M / month

(~$800–1,600) per branch, written off

After — expiry losses

TZS 200–300K / month

(~$80–120) — a ~90% reduction

Run the math and the reduction comes out between 85% and 92%. On my website I quote it as "roughly 80%" — I'd rather under-promise a number I can defend on any given month than headline the best one.

How did stocktaking go from 8 days to 12 hours?

Our old full stocktake took 5 to 8 days. Days of counting on paper, transferring to Excel, arguing about which sheet was current, and recounting sections because two people counted the same aisle and their numbers couldn't be reconciled. For most of a week, the business ran half-blind while staff were consumed by the count.

With RetailOps, the same branch — 14,000+ products — is now counted in about 12 working hours: roughly 4 hours for the warehouse and 8 hours for the shop floor, with 15 staff scanning simultaneously.

Before — full stocktake

5–8 days

Paper counts, Excel transfers, recounts

After — full stocktake

~12 hours

Warehouse 4h + floor 8h · 15 staff scanning

Three design decisions made that possible:

The TZS 200 million surprise: what our first real count revealed

Here's the part that changed how our leadership thinks about inventory. When we ran the first full audit-trail count and compared physical reality against the stock value the old records showed, we uncovered a variance of over TZS 200 million — around 22% of book stock value.

Let that sink in: more than a fifth of the stock the business believed it owned wasn't actually there. Years of untracked shrinkage, unrecorded damages, receiving errors, and paper-count mistakes had quietly accumulated into the books. Every purchasing decision, every margin calculation, every "how are we doing?" conversation had been built on numbers that were 22% wrong.

A stocktake doesn't create the loss — it reveals the loss that was already there. The variance existed whether we measured it or not. The only choice was whether to know.

This is the real argument for audit-trail inventory systems, and it's bigger than expiry savings: until you can count accurately, your business is making decisions on fiction. After the correction, our system stock finally matched reality — and because every future count leaves a permanent scan trail, variance can now be caught per-count, per-item, per-staff-member, while it's still small.

What else runs on the platform?

Expiry monitoring and stocktaking are the headline modules, but RetailOps Suite grew into the branch's full back office: a product master with per-branch catalogs and Excel import/export, VAT-compliant quotations, invoices and customer statements, competitor price comparison, and supplier performance tracking. It's multi-tenant — built to serve other retailers, not just us — and available as a subscription from $30/branch/month, or as a custom build from $1,500.

Results — RetailOps at Jambo Supermarket

Expiry losses, beforeTZS 2–4M / month
Expiry losses, afterTZS 200–300K / month (~90% ↓)
Full stocktake, before5–8 days
Full stocktake, after~12 hours (15 staff)
Items under expiry tracking~9,000
Products saved from expiry970–1,000
Variance uncovered, first countTZS 200M+ (~22% of book stock)
Products on system, single branch14,464+
StatusLIVE ✓

What should other retailers take from this?

Frequently asked questions

How much money do supermarkets lose to expired products?

In our experience, TZS 2–4 million (roughly $800–1,600) per month per branch before systematic tracking. After deploying expiry monitoring, losses dropped to TZS 200–300K per month — roughly a 90% reduction.

How long should a supermarket stocktake take?

Manually, our 14,000+ product branch took 5–8 days. With barcode scanning and concurrent multi-staff counting, the same count takes about 12 working hours — 4 for the warehouse, 8 for the shop floor, with 15 staff.

What is stock variance and why does it matter?

It's the gap between what your system says you own and what's physically on the shelves. Our first audit-trail count uncovered over TZS 200 million of variance — about 22% of book stock. Every business decision built on a wrong stock number inherits the error.

How much does a custom inventory system cost?

A custom build — product master, audit-trail stocktaking, expiry monitoring, variance reporting — starts from $1,500 one-time. Or subscribe to RetailOps Suite from $30/branch/month. Details and what's included here.

Does it work with unreliable internet?

Yes — it was built in Tanzania for Tanzanian conditions. Scanning works offline and syncs when the connection returns, so an internet drop mid-count doesn't stop the stocktake or lose scans.

How much is your stock actually losing you?

If you run a supermarket or retail business, the numbers in this case study are probably hiding in your operation too. Message me — I'll tell you exactly what I'd deploy, with a fixed price.

Discuss Your Inventory on WhatsApp →