Operational Problems
Why Warehouse Stock Doesn't Match, and How to Fix It
You've done the stock count and corrected the numbers, and next month the discrepancy is back. This article helps you trace stock discrepancies back to where they start, then close those points one at a time.

Picture this. Sales promises a customer 200 cartons because the system says they’re in stock. The warehouse team goes to the shelf and finds 140. Nobody knows where the rest went.
This rarely comes from one big mistake. It’s usually a dozen or so small ones that pile up over weeks, at different points in the process.
A stock discrepancy is a symptom of something else
A stock count fixes the numbers and leaves the cause alone. After the count, the system matches the shelves again. But if the habits that pushed the numbers apart haven’t changed, the gap comes back and the team counts again next month.
Almost every stock discrepancy follows the same pattern: goods move but the records don’t move with them. Or the other way round, the records move and the goods stay put.
So the quickest way to understand a discrepancy is to follow goods through your warehouse. Watch what happens when they come in, when they’re moved and when they go out. If you manufacture, also watch what happens when materials go into production. Each of those points has its own typical gap.
The seven most common causes of stock discrepancies
1. Receipts are recorded from the paperwork, not from a count
Goods arrive, and the admin enters the quantity from the purchase order or the supplier’s delivery note. What actually came off the truck might be short, over, or partly damaged. The discrepancy exists from day one and only surfaces weeks later.
2. Transfers between warehouses are recorded on one side only
Goods are sent from the main warehouse to a branch. The main warehouse deducts the stock, but the branch hasn’t received it yet or forgets to record it. While the goods are on the road, the stock seems to have vanished from both warehouses. If the receipt is never recorded, the goods really do disappear from the system.
3. Goods go out first and get recorded later
An urgent order comes in, the goods ship straight away, and the paperwork can wait. Sometimes it waits forever. The reverse happens a lot too: a shipment is recorded, cancelled at the last minute, and the goods go back on the shelf with no record.
4. Returns, damaged goods and samples have no paperwork of their own
Customer returns get put in a corner of the warehouse. Damaged goods get thrown out. Sales takes samples to prospective customers. Stock gets used for office needs. All of this changes the physical stock, but none of it has a clear way to be recorded, so it never reaches the system.
5. Production consumption is recorded from the BoM, not from the shop floor
In manufacturing, this cause is the hardest to catch. The system deducts raw materials according to the standard bill of materials (BoM). On the shop floor, though, some material is wasted, some products are rejected and some offcuts go back to the warehouse. If only the standard quantities are recorded, raw material stock keeps drifting away from reality.
6. Messy master data
One item has two codes because two different people entered it. Or an item is bought by the carton and sold by the piece, and the unit conversion is wrong or inconsistent. Each transaction looks correct, but the total is bound to be off.
7. Stock is recorded in two places
The warehouse has its own Excel file, sales admin has the system, and finance keeps yet another record. Nobody has agreed which one is the source of truth. When all three disagree, each team is sure its own number is right.
Committed stock is often mistaken for a discrepancy
Sometimes the physical stock and the records do match. The problem is that part of that stock is already promised to other orders or allocated to production, and nothing marks it. Sales sees 200 available when 150 of them already belong to other orders. That isn’t a physical discrepancy, but the result is the same: a delivery promise you can’t keep.
How to trace a discrepancy back to its source
Before you replace the system or add staff, run this trace. The aim is to find the one or two points that cause most of the discrepancies. You don’t need to find every error at once.
- Pick a few items, not all of them. Start with 20 to 30 items that are most often off, move the fastest or cost the most.
- Recount those items. Do a physical count of just that list. The rest of the warehouse can wait.
- Work backwards through the stock card. For each item that’s off, find the last transaction where the system and the shelf still matched. The discrepancy started somewhere between that point and today.
- Log every finding in one table. Columns for the date, item code, size of the discrepancy, point in the flow (in, transfer, out or production) and suspected cause are enough.
- Repeat for two to four weeks. By then a pattern usually starts to show. In many warehouses most of the discrepancies cluster at one or two points.
- Close the biggest point first. Don’t try to fix seven things at once. One fix that people actually follow does more good than seven new rules that get ignored.
How to close the gap for each cause
Most fixes start with how people work. The system then enforces those rules, so they don’t rely on one person’s memory and discipline.
| Cause | Fix in how you work | What the system helps with |
|---|---|---|
| Receipts from paperwork | Count first, then confirm the receipt. Receive partially if goods are short. | Receipts are recorded per item by barcode scan, and any difference from the PO shows up straight away. |
| Transfers between warehouses | Every transfer has two steps: shipped and received. | Goods in transit sit in a transit location until the destination warehouse confirms them. |
| Shipped first, recorded later | No goods leave without paperwork, urgent orders included. | Delivery notes are created in the system, and stock goes down when the goods ship. |
| Returns, damaged goods, samples | Set up dedicated documents and locations for returns, damaged goods and samples. | Every stock adjustment needs a reason and an approval. |
| Production consumption | Record actual consumption, and keep finished goods, rejects and leftover material separate. | Leftover material goes back into stock on record, so actual consumption can be compared with the BoM. |
| Master data | One item gets one code. Unit conversions are set in the master data. | Only certain roles can create new items. |
| Recording in two places | Agree on one source of truth, then stop the parallel records. | Sales, warehouse and finance read stock from the same data. |
For committed stock the rule is simple. Stock that’s already allocated to an order or a work order should be locked so it doesn’t show as available for other orders.
When you can count less often
You still need stock counts. What changes is their job: they go from a correction tool to a verification tool.
As long as new discrepancies appear every day, a monthly count only chases errors. Once you’ve closed the leaks, you can move to cycle counting. Each week the team counts one group of items, so the whole warehouse gets counted over a period without stopping operations.
You can see an example in the metal fabrication case study. The company used to rely on Excel, manual stock cards in the warehouse and manual production cards in the factory, so it had to do a stock count every month. Once receiving, production and shipping ran in one system, stock levels could be read straight from the system and a stock count every 6 months was enough.
When the problem needs a system
A well-kept spreadsheet can take better working habits a long way. But in some situations a spreadsheet is no longer enough.
- You have more than one warehouse or location, and goods move between them often.
- Sales needs to see stock while writing a quote, without having to phone the warehouse.
- Every stock movement needs to reach the books right away, so closing the books doesn’t wait on a manual recap.
- Rules everyone agreed on keep getting broken because nothing in the system stops it.
If your warehouse flow is fairly standard (receiving, storage, transfers and shipping), an ERP like Odoo usually already covers multi-warehouse stock, transit locations, barcodes and stock reservations. We cover the needs of distribution and trading and manufacturing on their own solution pages.
If your flow has exceptions with no equivalent in a standard system, such as subcontracting to outside parties or sending samples to a lab for testing, that part can be built specially. See Custom Software for how we approach it. To decide whether Odoo is enough for your business, read Who Is Odoo ERP For?.
Summary
- Stock discrepancies almost always happen because goods move without records, or records move without goods.
- The seven points that leak most often are receiving, transfers between warehouses, outgoing goods, returns and damaged goods, production consumption, master data, and double recording.
- Trace first with a small sample over a few weeks, then close the biggest point first.
- You still need stock counts, but once the sources of discrepancy are closed their job shifts from correction to verification.
Want to know where your stock discrepancies come from?
We map how goods move through your business, from receiving to shipping, then show you which points most often throw your stock figures off and which system approach fits best to close them.