Retail shrinkage: the six places stock disappears before anyone calls it theft
Shrinkage is the word for stock that the system says you have and the shelf says you do not. Most owners hear it and think of theft. In practice the majority of it is created by ordinary mistakes in receiving, billing and returns, all of which a stock system can show you.
That matters because the two problems have different fixes. Process errors are fixed with settings and habits. Theft is fixed with supervision. Treating the first as the second costs you staff goodwill and changes nothing.
On this page

How to measure retail shrinkage
Retail shrinkage is normally expressed as a percentage. Take the value of stock you should have, subtract the value you counted, and divide by sales for the same period.
The figure on its own is meaningless. What matters is the direction over several periods, and the split by category. A single number for the whole shop hides the one aisle where everything is happening.
Measure per category, per month. Three months of that will point at a department, a supplier or a shift without anyone guessing.
Receiving, where most of it starts
A case marked twelve that holds ten creates a permanent two-unit gap. Nobody notices for weeks. By the time a count finds it, the delivery note is filed and the supplier has moved on.
The fix is to count against the purchase order rather than the supplier’s invoice, and to record a short delivery as short instead of editing the order down to match. That one habit removes a large slice of what later gets called theft.

Billing, and the lookalike item problem
Two products at the same price, different sizes, one barcode that scans for both. The money is right, the stock is wrong, and it stays wrong until somebody counts.
This is an item master problem, not a cashier problem. Duplicate codes, generic codes used for several products and a miscellaneous line that absorbs anything awkward all produce the same result.
- One code per sellable unit, never shared across sizes or variants
- No open miscellaneous item on the billing screen
- Weighed goods billed from the scale, not typed
- Barcode printed and stuck on anything that arrives without one
- New items blocked from saving without a code and a category
Returns and exchanges
A customer brings something back, the staff member accepts it, puts it on the shelf and gets on with the queue. No return entry exists, so the system still counts that unit as sold. The shelf has one more than the record.
Returns have to be a transaction type with a reason, linked to the original bill where possible. That also tells you which products come back most, which is a different and useful conversation.
Transfers between locations
Stock dispatched from one outlet and never received at the other sits in a gap. Both sides think the other has it. This is only a problem for shops with more than one location, and for them it is a large one.
A transfer needs two halves, a send and a receive, with the second confirming quantities. Until the receive happens the stock stays in transit and shows on a report, which is what multi-store control is for.
Damage, expiry and staff use
Breakage happens. Food expires. Staff open a packet. None of that is a scandal, and all of it is invisible unless somebody records it.

Give each of these its own reason code and a daily entry at close. Without them, every unrecorded breakage becomes an unexplained difference, and unexplained differences get blamed on people.
| Source | Signature in the data | Fix |
|---|---|---|
| Receiving | One supplier, repeated gaps | Count against the order |
| Billing | Pairs of items, one over one under | Clean the item master |
| Returns | Shelf has more than the record | Return as a transaction |
| Transfers | Gap at one outlet, surplus at another | Two-step transfer |
| Damage | Perishables and fragile lines only | Daily reason-coded entry |
| Theft | What is left after the five above | Supervision and layout |
Only then, theft
Once the first five are clean, what remains is worth investigating as theft, and by then you usually know the category, the shift and often the hour. That is a far better starting point than a camera and a suspicion.
External theft concentrates on small, high value, easily pocketed items. Internal theft shows up around voids, refunds and discounts, which is why those three need a named role rather than being available to every cashier.
A programme that actually runs
- Count the top fifth of lines by value every month
- Record every difference with a reason, even zero
- Report shrinkage by category, not as one shop number
- Restrict voids, refunds and stock adjustments to one role
- Review the trend quarterly and act on the worst category only
Retail shrinkage never reaches zero, and chasing zero wastes more than it saves. A rate that falls for three quarters in a row, with the reasons visible in your back office reports, is what success looks like.
Frequently asked questions
How is retail shrinkage calculated?
Take the value of stock the system says you should have, subtract the value you physically counted, and divide by sales for the same period. The percentage on its own means little. The useful view is the trend over several periods and the split by category.
Is shrinkage mostly theft?
Usually not. Receiving errors, lookalike item codes at billing, returns accepted but never entered, transfers dispatched and never received, and unrecorded damage account for most of it. Theft is what remains once those five are under control.
What single change reduces it the most?
Counting goods in against the purchase order rather than the supplier invoice, and recording a short delivery as short instead of editing the order to match. Editing the order erases the shortage and makes an unreliable supplier look perfect in your records.
Why do lookalike products cause stock errors?
Two products at the same price with one shared barcode bill correctly for money but wrongly for stock. One line shows a surplus and its twin shows a gap. The fix is in the item master, one code per sellable unit, not in retraining the cashier.
Who should be allowed to void a sale or post a stock adjustment?
A named role, not every cashier. Voids, refunds and adjustments are where internal losses concentrate, because each one can make a difference disappear. Requiring a reason code and recording who did it is usually enough on its own.
Sources, method and author
A diagnostic order rather than a theory piece. The six sources listed account for most unexplained stock differences in small and mid-sized retail. They are ranked by how often each turns out to be the answer. The measurement method is the standard one, loss at cost over sales for the same period. No benchmark rate is quoted, because a shrinkage percentage is only meaningful against your own trend.
- Investopedia on shrinkage — the definition and what the figure covers
- Investopedia on ABC inventory classification — how to choose which lines to count monthly
- IBEF on Indian retail — market context for small format stores
Clotouch is a point of sale product built by Clonet Technologies Pvt Ltd. The controls described work in any system that records reasons against stock movements, including ours. Nothing here is audit advice.
Author. Aman Raj. Published 13 October 2026 for Clonet Technologies Pvt Ltd, Bengaluru.