Why your stock never matches the count
Odoo is rarely wrong about stock. It is faithfully recording a process that has a hole in it — usually one of these five.
Every few months a client tells us the system "loses" stock. In four years we have not once found the database at fault. What we find is a habit: a step people skip because it is inconvenient, and a configuration that lets them skip it.
1. Delivering before receiving
Goods arrive, the warehouse sells them the same day, and the receipt is validated a week later when accounting chases the supplier invoice. For that week the system shows negative or missing stock, and by the time the receipt lands the numbers no longer tell you when anything actually moved. Fix the sequence, not the number: nothing leaves before its receipt is validated.
2. Negative stock left switched on
Allowing negative quantities is a convenience during go-live that nobody remembers to turn off. It converts a hard stop — which forces someone to investigate today — into a silent number that gets buried under three months of transactions. Turn it off once the opening balances are stable, and let the block do its job.
3. Units of measure that do not convert
Purchased in cartons, sold in pieces, counted in whichever the storekeeper had in mind. If the conversion factor on the product is wrong — or the same physical item exists twice under two units — the count will never agree with the system, and no amount of recounting will fix it. Audit the conversion factors before the next stock take, not after.
4. Transfers treated as paperwork
Branch A sends stock to branch B, the driver leaves, and the transfer is validated at the end of the month in one batch. Meanwhile branch B sells from goods that, in the system, are still in a van. Use an in-transit location so both sides stay honest: stock leaves A immediately and only arrives at B when someone confirms receipt.
5. Adjustments used as a delete key
When the count disagrees, someone posts an adjustment and the difference disappears — along with the evidence of why it happened. Adjustments should be rare, reasoned and reviewed. If a location needs adjusting every month, the adjustment is not the fix; it is the symptom you keep treating.
Before the next count, ask one question about each discrepancy: which document should exist and does not? The answer is almost never "the system lost it".
How to unwind it without a full recount
- Pick the twenty products with the largest value variance rather than counting everything — they will explain most of the gap.
- Trace each one back through its moves until the first date system and reality diverge. The habit that caused it is usually visible at that date.
- Fix the habit first, then adjust the number. Adjusting first guarantees you will do this again next quarter.
- Move to cycle counting: a few locations every week beats one exhausting annual count that nobody trusts.