
The problem · Money sitting on shelves
The money sitting on your shelves doing nothing
The shop looks healthy. The shelves are full, the back store is full, and there is no cash to pay the supplier on Friday.
Somewhere in all that stock is a line you bought twelve of eight months ago and have sold two of. A carton that will expire before it sells. A size nobody in this neighbourhood wears. A phone model that was current last year.
You know roughly which items they are, because you walk past them every day. You do not know what they add up to, and you have never written off any of it — so it is still counted as if it were worth what you paid.
What dead stock costs while it sits there
Stock is cash in a different shape. A shop holding KES 200,000 of lines that have not moved in six months has lent itself 200,000 at a terrible rate, and it is paying interest in three currencies: the supplier it cannot pay, the fast-moving line it cannot restock, and the shelf space earning nothing.
Where expiry is involved, the clock is doing the deciding. Pharmacy stock, food, cosmetics, agrovet inputs — a line that is slow and dated is not an asset depreciating gently, it is an asset that becomes worth exactly zero on a known date and often has to be disposed of at a cost on top.
And the books are lying to you in a specific, flattering direction. Unsold stock sits on the balance sheet at cost, so a shop that has been accumulating dead lines for two years looks better capitalised every year while actually getting weaker every year. The write-off, when it finally happens, lands in one brutal lump.
- Cash locked in slow lines is cash not available for the lines that sell
- Dated stock does not depreciate — it goes to zero on a date, sometimes with a disposal cost
- Shelf and store space is a fixed cost being spent on non-movement
- Stock valued at cost flatters the accounts until the write-off arrives all at once
Why dead stock accumulates
Nobody decides to buy stock that will not sell. It accumulates through a series of individually reasonable decisions that nothing in the shop ever reviews.
A supplier offers a deal on twelve and the unit price is good, so you take twelve without checking that you sell one a month. A line that used to move stops, and the reorder keeps happening because it is on the standing order. A new product is tried, does not work, and is never formally abandoned — just gradually pushed to the back. Stock arrives near its expiry date and nobody checks, because nobody is asked to.
The common thread is that there is no moment in the shop's routine where somebody is shown a list of what is not moving. Fast lines announce themselves by running out. Slow lines are silent by definition, which is exactly why they need a report rather than attention.
- Volume deals bought on unit price rather than on rate of sale
- Standing reorders that outlived the demand
- New lines that failed and were never retired
- Stock received close to expiry, unchecked at the door
- Oldest stock sitting behind newest, so the dated units are never the ones sold
- No report that makes non-movement visible
Step by step
How to get the cash back off the shelves
Find out what has not moved, and what it is worth
List every line with no sales in 60 or 90 days, with its quantity and its cost value. Most owners badly underestimate the total — the lines are individually small and collectively a month's supplier payments. Do this before anything else, because the number is what makes the rest of the list happen.
Separate dated stock from merely slow stock
They need opposite treatment. Dated stock has a deadline and should be cleared in order of expiry, aggressively, starting months out. Slow stock with no expiry is a capital decision you can make calmly — but only once you know which is which.
Clear on a schedule, not on hope
Set discount steps against the expiry date — a modest cut at 90 days out, a deeper one at 60, clearance at 30. Deciding in advance beats deciding in the last week, when the only options are give it away or throw it away.
Make old stock the stock that sells
Sell the oldest units first, physically and in the system. Batch and expiry tracking is what makes this enforceable rather than aspirational — otherwise the newest delivery goes to the front of the shelf and the oldest quietly runs out of time behind it.
Bundle slow lines with fast ones
A slow item attached to something that sells moves without a standalone markdown, and it recovers more of the cost than clearance does. It also clears the shelf space, which is frequently worth more than the margin difference.
Fix the reorder so it does not come back
Set reorder levels from actual rate of sale rather than from habit, and retire failed lines formally. Clearing dead stock without changing the buying is a cycle, not a fix — the same shelf will be full of different dead stock in a year.
What you get
What sell.ke does about it
A slow-movers report with a value on it
Every line with no movement in a period, with quantity and cost value, per branch. The number that makes the problem real instead of a feeling about the back store.
Batch and expiry tracking
Stock held by batch with its expiry date, so the oldest units are the ones sold and dated stock is visible months before it becomes a loss rather than on the day it does.
Expiry reports with a horizon
What expires in 30, 60 or 90 days, ranked by value — so a clearance decision is made while a discount can still recover most of the cost.
Promotions and bundles from the price list
Time-boxed discounts and bundles set centrally and applied at the till, so a clearance schedule is something the shop executes rather than something the owner remembers.
Reorder levels from real movement
Reorder points based on how a line actually sells in that branch, so the standing order stops outliving the demand that created it.
Stock valued where you can see it
Stock value per branch and per category, in your own currency, so capital tied up in non-movement is a figure on a report rather than a surprise at year end.
Questions
Dead stock and expiry — questions
What counts as dead stock?
A practical rule: no sales in 90 days for general retail, 60 for fast-moving consumer goods, and anything dated that will not clear before its expiry at the current rate of sale. The exact threshold matters less than having one, because the point is to produce a list somebody looks at.
Is it better to discount or to write off?
Almost always discount, and earlier than feels comfortable. Cash recovered at half price is cash; stock written off is nothing, and in the dated categories it can cost you money to dispose of. The expensive mistake is waiting — a 20 percent cut 90 days out usually recovers more in total than a 70 percent cut in the last fortnight.
How do I stop buying stock that will not sell?
Buy on rate of sale rather than on unit price. A deal on twelve is only a deal if you sell twelve inside a sensible window — otherwise the discount is interest you are paying on your own cash. Set reorder levels from actual movement per branch and review new lines after a fixed period instead of letting them drift.
My shop has no expiry dates. Does batch tracking still matter?
Less, but ageing still does. Fashion, electronics and anything with model years all lose value on a clock even without a printed date, and the slow-movers report catches those. Batch tracking is essential in pharmacy, food, cosmetics and agrovet, where the date is both a loss and a regulatory matter.
Can I see this per branch?
Yes, and you should — a line that is dead in one location is often moving in another, which makes a transfer the cheapest clearance available. Branch-level stock and movement reports are what turn that from a hunch into a decision.
Can I use it for more than one shop?
Yes. Branches share one product catalogue but hold their own stock, so a transfer between them is a recorded movement rather than a re-count. Reports run per branch or across all of them, and staff permissions are set per branch — a Kisumu supervisor does not need to see Nairobi's margins.
How long does setup take?
A single-counter duka is usually selling the same day. The work is the product list, not the software: import a CSV or let Amina create products from a supplier invoice or a photo of your price list. A multi-branch business with thousands of SKUs, opening stock counts and an eTIMS enrolment should plan a week and run the old system in parallel for a fortnight.
Will it show me my profit?
Yes, and from a real ledger rather than a sales total. Every sale posts to a double-entry chart of accounts, so you get a trial balance, profit and loss, balance sheet and cash flow — not a CSV to hand your accountant. Margin is visible per product, per branch and per channel, because cost is tracked on the way in through purchase orders and goods-received notes.
The problems that travel with this one
These rarely arrive alone. Fixing one usually exposes the next.
Stock takes that close the shop
Counting everything on a Sunday finds the loss months late. Count less, far more often.
Supplier prices keep moving
When cost moves every delivery, a shelf price set once is a margin you are losing on purpose.
Not knowing your profit
Takings are not profit. The gap between them is where most small shops quietly fail.
The features that do the work
Stock you can trust
Batch and expiry, serial numbers, reorder levels, stock takes and the formulas behind them.
Prices, price lists and promotions
Wholesale and retail off one product, quantity breaks, customer-specific lists, VAT-inclusive display.
Buying, suppliers and approvals
Purchase orders, goods-received notes, supplier bills and the cost figure every margin depends on.
Reports and real accounting
Double-entry books — trial balance, P&L, balance sheet — not a CSV export to somebody else's software.
If you are outside Kenya
The same problem, under the rails and the revenue authority you actually deal with.
Fix it on your own numbers
Fourteen days, no card. Import your product list or let Amina build it from a photo of your price list, and see what the reports say about your own shop.