Every business that holds stock eventually discovers that the recorded quantity and the physical quantity do not match. The usual response is to count more often.
Counting more often measures the problem more frequently. It does not reduce it, and it consumes the time of people who could be doing something else. Variance is not a single failure with a single fix — it is at least six distinct causes that happen to produce the same symptom, and each one responds to something different.
If you cannot tell which cause produced a given discrepancy, you cannot fix any of them. That is the actual problem, and it is a records problem before it is a stock problem.
The six causes, and what each responds to
Receiving errors
Stock arrives and is recorded as the quantity on the invoice rather than the quantity in the box. Short deliveries, substitutions and damaged units enter the record as though they were correct.
Everything downstream inherits this. The count will be wrong for weeks, and when it surfaces it looks like shrinkage.
Responds to: recording what was physically received, at receipt, against the order — not transcribing the paperwork.
Sales not recorded against stock
An item leaves without the transaction decrementing inventory. Manual bills during a system outage, staff purchases, samples, replacements given to a customer.
Each is individually legitimate and individually invisible.
Responds to: one record, so a sale cannot be recorded without moving stock. This is structural, not procedural — if the two are separate systems, this gap always exists. It is the argument in what a business operating system actually is.
Wastage and damage nobody logs
Breakage, expiry, spoilage, returns that cannot be resold. Real cost, frequently unrecorded because logging it takes effort at the moment someone is busy and slightly embarrassed.
Unlogged wastage is indistinguishable from theft in the numbers, which means neither can be addressed.
Responds to: making the write-off faster than not doing it, and treating it as normal rather than as an accusation.
Transfers between locations
Stock leaves one outlet and arrives at another. Two entries, made by two people, at two times. Anything less than both being recorded produces a discrepancy in two places at once.
Responds to: transfers as a single transaction with a dispatch and a receipt, where an unreceived dispatch stays visible as in-transit rather than vanishing.
Unit and conversion errors
Bought in cases, sold in units. Bought by weight, sold by count. Every conversion is a place for a factor to be applied twice or not at all.
Responds to: defining the conversion once in the system rather than performing it mentally at each transaction.
Actual shrinkage
Theft — internal or external. Real, and generally a smaller share of total variance than businesses assume, because the five causes above are quietly inflating the figure.
Responds to: the other five being controlled first, so the residual is visible and attributable.
Why counting more does not help
A count tells you the size of the gap on the day you counted. It tells you nothing about which of the six causes produced it, or when.
Worse, counting is itself error-prone. Full physical counts are conducted under time pressure, often after hours, by people who are tired. A count that introduces its own errors produces a new baseline that is wrong in a different way — and the next variance is measured against it.
The useful shift is from counting more to capturing better: recording each stock movement as it happens, so variance is attributable rather than merely detectable.
Cycle counting is different
Counting a small subset continuously — high-value or fast-moving items weekly, everything else on rotation — is more useful than an annual full count, for a specific reason. Discrepancies are found close to when they occurred, while the cause is still knowable.
A variance found in March that arose in January is a number. A variance found within a week is an investigation someone can actually complete.
What a system has to do to prevent, not just record
Most inventory software records stock. Preventing variance requires more specific behaviour.
Receiving against the order, with discrepancies captured. If the system cannot easily record "ordered 100, received 96, 2 damaged", the difference disappears into the count.
No path to move stock without a record. Every legitimate reason for stock to leave — sale, transfer, wastage, sample — needs a fast route. If the fast route does not exist, staff will use the manual one and the record will drift.
Transfers with two ends. Dispatch and receipt as one linked transaction, with in-transit stock visible.
Conversions defined once. Purchase and sales units, with the factor held in the system.
Same-day visibility. Variance surfaced when it appears, not at the next count. This is the single highest-leverage property, because it collapses the distance between a cause and its discovery.
Variance attributable. The record should indicate what kind of movement produced the gap. That is what makes the number actionable instead of just alarming.
What we have seen
Inventory sits in most of the ten systems we have delivered — retail, warehouse, distribution, clinic and factory operations among them. The largest is a retail chain of more than thirty outlets, where every one of the six causes above appears simultaneously and in different proportions per location.
Two findings hold consistently.
Wastage logging is the fastest improvement available. It is almost always under-recorded, it is quick to fix, and fixing it immediately shrinks apparent shrinkage — which changes what the business believes about its own staff.
Staff are not the problem. They are usually being asked to record the same movement in more than one place while serving customers. When the record is a by-product of the work rather than an additional task, accuracy improves without anyone being asked to try harder. That principle — the counter comes first — is in how Truffaire builds software, and the failure mode is in why most business software breaks at the counter.
Frequently asked questions
What level of variance is normal?
It varies too much by sector for a single figure to be meaningful, and chasing a benchmark is less useful than chasing attribution. A business that knows its variance is largely logged wastage is in a better position than one with a lower unexplained number.
Should we do a full count or cycle counts?
Cycle counting for operational control, because it finds problems while the cause is still traceable. A periodic full count may still be needed for audit, but it is a poor instrument for actually reducing variance.
Will barcodes fix this?
They remove transcription and identification errors, which is genuinely valuable. They do not address unlogged wastage, missing transfer receipts or conversion errors. Scanning the wrong movement quickly is still the wrong movement.
How do we tell theft from process failure?
Only by controlling the other five causes first. Until receiving, unrecorded sales, wastage, transfers and conversions are captured, every discrepancy is ambiguous — and treating ambiguous variance as theft damages trust for no benefit.
Do we need this if we only have one location?
Less urgently. Single-site operations can often hold stock in view. The threshold is usually multiple locations, or enough SKUs that nobody can eyeball it. Where multi-outlet businesses lose money covers what changes with a second site.
Where to start
Before buying anything, categorise your last few discrepancies against the six causes. Most businesses find they cannot — which is itself the finding, and it identifies capture as the constraint rather than counting.
If you can categorise them, fix the largest category first. It is usually receiving accuracy or unlogged wastage, and both are cheap relative to the loss they hide.
What a business operating system actually is covers why a shared record removes the unrecorded-sale case structurally, and SPEXA is our implementation. If you want a read on which cause dominates in your operation, get in touch.