When stock numbers drift
Buyers forgive a slow site. They do not forgive being told an article is available and then waiting three weeks for it, and they do not forgive being told it is unavailable when it is on your shelf. Both are stock accuracy problems, and they have different causes.
available, not on_hand.available is
on_hand − reserved and it is computed, never stored. Most drift complaints are
actually about the reserved half.The shop says no and the shelf says yes
The single most common report, and the causes in order:
1. Stale reservations. Check Order Management › Stock › Reservations for
active holds against orders that were never placed. An abandoned checkout that
reserved stock and has no expiry holds it forever. Release expired runs the
sweep; a reservation lifetime prevents the next one.
2. The article is not tracked at this location. Stock rows are per location.
If the article has stock in hamburg and your allocation strategy only reaches
main, the answer is legitimately no.
3. The location is disabled. A disabled location's stock does not count.
4. It is not a stock problem at all. An article can be invisible for six reasons and stock is only one of them — work through Why a product is not showing up.
+20 on top of
stale reservations makes on_hand wrong as well as available, and now two
numbers need correcting instead of one. Release the reservations first.The shop says yes and the shelf says no
The expensive direction, because the order is already taken.
Bookings that never happened. Goods left the building without a shipment
being recorded, so the stock was never committed. This is the same cause as an
order stuck at placed after delivery — see
Orders that get stuck.
Backorders that were allowed. If your backorder policy permits it, a reservation can exceed stock, and the shortfall is recorded on the reservation rather than refused. That is a deliberate setting, not drift. Check the policy before you go looking for a bug.
Breakage and shrinkage nobody booked. The real answer, usually. Physical stock moves without anyone telling the system. Only a stocktake finds it.
An ERP that writes stock outside the ledger. If your ERP owns stock and pushes levels rather than movements, the ledger cannot explain the number because the ledger was not used. That is a design decision to be aware of, not a fault — but it means the movement trail below will not answer your questions.
Read the ledger
Order Management › Stock › Movements is every booking with its type, quantity, order reference and reason. Filter to one article and read it from the date the number was last known to be right.
| Type | Should correspond to |
|---|---|
inbound | A supplier delivery you can produce a document for |
adjustment | A reason you would accept in an audit |
reserve / release | A checkout and its outcome |
shipment | A delivery note |
restock | A completed return marked for restocking |
If the movements do not add up to the current level, something wrote stock outside the ledger. That is an integration question: Sync errors.
The weekly loop
Five checks, none of which takes long:
- Reservations older than your lifetime. Should be none. If there are, your lifetime is unset or too long.
- Reorder alerts. Sort the stock list by
reorder_pointand work the rows at or below it. - Adjustments without a real reason. "correction" is not a reason. Require reasons on adjustments and read them.
- Negative or zero
availableon A-articles that should never run out. - A rolling spot count. Ten articles a week, physically counted against the system. It finds shrinkage before a customer does.
Before you trust the number publicly
If you are about to start showing live availability to buyers — and in B2B you should, because it is one of the top things they ask for — do three things first:
- Run the spot count for a month and measure how often the system is right.
- Decide what you display: an exact number, a band ("more than 10"), or a delivery date. Bands are more forgiving and usually more useful.
- Decide what happens at zero. Backorder with a date beats a blank page, and both beat a number that turns out to be wrong.
An availability display that is right 95 % of the time is worth having. One that is right 70 % of the time costs you more trust than it buys.
Next
- Manage stock day to day — the bookings themselves.
- Stock, locations and availability — the settings that prevent most drift.