Stock Discrepancy 2026: How to Find the Cause

A warehouse keeper counts one shelf on Monday morning. The program shows one figure and the shelf holds a smaller one. He writes the difference on the sheet and carries on. A stock discrepancy is the difference between the recorded quantity and the quantity actually on the shelf.
Finding it is quick. Explaining it takes days. The cause is almost always one movement: a delivery, a write-off or a return. It reached the record at a different time, or never reached it at all. That one movement has to be found among hundreds of others.
Why does a recount show the difference but not the cause?
Because a count measures one moment, and the difference was built across many of them. The sheet tells you that two figures disagree. It says nothing about which delivery, which write-off or which return put them out of step.
How common this is has been measured. In June 2026 ECR Retail Loss published a report by Yacine Rekik, Aris Syntetos and Christoph Glock. They worked through more than 1.3 million stock audits across six grocery retailers and roughly 231 stores. The finding is blunt: “nearly 60% of all audited SKU-store combinations are inaccurate” (opens in new tab). Those inaccurate records split almost evenly. In roughly 32% of all audited records the system showed more stock than the shelf held. The other 28% went the other way: the shelf held more than the system showed.
All of it covered retail stores, not a factory warehouse or a wholesale depot. That figure shows a direction, not a prediction for your own shelves.
Where does a stock discrepancy come from?
Five causes account for most of it, and they share one feature. In each of them an item moved in the warehouse, and the move never reached the record.
Goods arrived before the paperwork did. The delivery is already in the warehouse and the note is still in the cab. An invoice from the supplier arrives three weeks later. Until the note is entered, the stock is physically there and absent from the system.
Material was taken for production without a note. A production order needed more metres of sheet, someone fetched them, and the job continued. The material left the shelf and the write-off never followed it.
A return came back to the shelf and nowhere else. The customer sent goods back and the warehouse put them away. A credit note was then agreed by email. Those goods came back to the shelf, and in the record they are still sold.
The same item sits under two codes. A supplier changed an article number, or a second code was created for the same part. Both codes hold a quantity, and neither one looks wrong on its own. The physical stock is right, and the record splits it in two.
A write-off was agreed in a message. Damaged packaging, a sample sent to a customer, an offcut used for a test. Every one of these is a real movement with a real reason, and the reason lives in a chat thread.
None of the five is an error in counting. In every one of them the item moved before any record of it existed. Counting again tomorrow finds the same difference.
What happens while the difference stays unexplained?
Decisions keep getting made against a figure nobody trusts. Purchasing orders more of something already sitting in the far aisle. Sales promises a delivery date on stock that left last week. Production waits for material the system says is available.
Then the slower cost arrives. People stop using the figure and start walking to the shelf to check it. That walk is administrative work too, and nobody counts it. It never appears as a task in anyone’s week.
The month closing is the point where all of this lands at once. Someone has to write against each line why the balance moved. That work is what a stock discrepancy actually costs.
What can a system explain on its own?
A rule can compare two totals and report that they differ. To attribute the difference it would need every movement recorded in the same shape and the same place. That is the part missing here. The movements that cause the difference are the ones that left no tidy record.
An AI system reads the documents as they actually exist. It opens a photographed delivery note and finds the quantity written beside a printed line. The same system reads the sentence in an email that agreed a return. It also reads the message confirming that a sample went out. From those it can propose which movements account for the difference, and which lines are left without an explanation.
Only those lines need a person, and there are usually few of them. The system explains the record, and it does not tell you how much stock is actually on the shelf.
What follows is our own work, and projects like it are what we get paid for.
For a steel and metal structures manufacturer we built a system for material records. Arrivals, warehouse locations and movements are captured once, at the moment they happen. The project page (opens in new tab) describes it plainly. Materials are logged with quantities, types and warehouse locations on delivery. Staff record deliveries and storage places as they go. Every movement from storage retrieval to use on site is kept. Each material also has a full timeline of request, arrival and usage.
We have no published figure for how far a stock discrepancy falls, so none is quoted here. What that project shows is narrower and still useful. When the movement and its record happen in the same minute, little is left to reconstruct later. The wider factory picture sits in our article on automating manufacturing processes (opens in new tab).
Frequently asked questions
Will this force us to change our accounting program?
No. The work happens around the movements and the documents behind them. Results are written back into the program you already use. How that is done depends on what the program allows.
Do we need barcodes or scanners first?
They help, and they are not a precondition. Scanning fixes the moment of recording. The cases above are mostly about movements nobody recorded at all. Those two problems are worth separating before buying hardware.
How often should we count?
More often than once a year, and on fewer items at a time. A short monthly count on fast moving articles surfaces a stock discrepancy early. The movements behind it are then still recent enough to trace.
Who decides what counts as an acceptable difference?
Your company does, and that is a business decision rather than a technical one. A system can flag everything above the line you set. Someone has to set that line and own the queue.
Can the system write off the difference by itself?
It should not. Reading a document and adjusting a balance are different levels of permission. The second belongs to a named person.
A tidy record does not make the stock correct
Three situations where chasing a stock discrepancy saves nothing.
The difference gets written off and nobody looks for a cause. Some companies clear it at year end and carry on. Then the hours never existed, because nobody was searching for a reason. In that company the work described above has no buyer.
The movement leaves no trace at all. Everything above rests on the movement being recorded somewhere: a delivery note, an email, a message. When no trace exists, there is nothing to read. The entry has to be made by the person moving the material, and we do not control that person. A warehouse without that habit needs the habit first, because process automation starts after process repair (opens in new tab).
Every difference sits in one group of items. Suppose the lines that disagree are all packaging, or all fasteners taken from an open box. The answer is then an agreement about who takes them and when it gets written down. That agreement needs no software and no supplier.
Where to start
Take your last stock count sheet and go down the lines that showed a difference. Beside each one, mark whether any document explains it: a delivery note, a write-off, a credit note, a message. Then count the lines with nothing beside them at all.
That second number is the one worth knowing. If most lines had a document somewhere, the work is about reading and matching what already exists. Lines with nothing beside them point earlier, to the moments when material moves and no entry follows.
What we do is read the movements and the documents behind them. We say which part of the difference can be attributed and which part cannot. Then we write the result back into the program already in use. Get in touch (opens in new tab) if a stock discrepancy is eating days each month. The first conversation needs no access to your systems.


