How to stop van stock shrinkage before it eats your margin
iotoms team · August 17, 2026 · 5 min read
A snack and beverage distributor running twelve vans out of one depot had a shrinkage problem nobody could point to. Not a dramatic one — no missing pallets, no obvious theft, nothing a security camera would catch. Just a slow, steady gap between what left the warehouse each morning and what the accounts showed as sold by the time the vans came back at night. Across a month it added up to a number the owner didn't want to say out loud to his partner: almost four percent of throughput, gone, with no single explanation.
The instinct was to suspect the drivers. It's the instinct every distributor has, and it's usually wrong, or at least incomplete. When the owner finally sat down with two of his longest-serving reps and walked through a single day end to end, the shrinkage wasn't hiding in one place. It was scattered across a dozen small ones, each too minor to notice on its own.
Shrinkage is rarely one leak
The morning load was counted by cases, signed off against a paper sheet, and driven out. But a rep short on a specific SKU for one customer would swap in a similar item and make a note "to sort out later" — a note that sometimes got made and sometimes didn't. A store that wanted five units but only had cash for four got four, with the fifth quietly put back on the van and, three visits later, nobody remembered which crate it came from. A customer disputed a delivered quantity, the rep adjusted it verbally to keep the peace, and the adjustment never made it back to the office. None of this was theft. It was drift — the natural result of decisions made in a truck, at a loading dock, in front of a customer, that never got recorded where the business could see them.
The paper system wasn't built to catch this because it wasn't built to catch anything in real time. It was built to produce a total at the end of the day, and totals hide exactly the kind of small, repeated variance that compounds into a real number. By the time the office reconciled the sheet against the bank deposit, the day was over and the specific case that went missing was three stops and six hours in the past. Nobody could reconstruct it, so nobody tried, and the number just got written off as "shrinkage" — a name for a cause nobody had actually found.
The turning point was moving the count to the event, not the day
The fix wasn't more supervision or a harder line with the reps — most of them were honest people improvising around a system that gave them no better option. The fix was making every stock movement traceable to the moment it happened instead of reconstructed at the end of the day. A load-out becomes a transaction with a timestamp and a signature, not a line on a clipboard. A swap, a return, a damaged case, a customer dispute — each one becomes an entry against the van's stock the instant it happens, from the same device the rep is already using to record the sale. If a van's tablet says forty cases went out and the rep's app confirms thirty-eight sold, two returned, and zero adjusted without a reason code, there's no gap left for "probably shrinkage" to hide in. Every unit is accounted for at the point it moved, not guessed at when the totals stopped matching.
That single change surfaced the pattern within two weeks. Most of the variance wasn't fraud — it was three specific SKUs that were routinely short-loaded because the warehouse team eyeballed count on fast-moving items instead of scanning them, and one rep who was genuinely skimming, caught not by suspicion but because his van's numbers were the only ones that stayed unexplainable after everyone else's cleared up.
What actually stops van stock shrinkage
- Record the load-out as a transaction, not a tally. A signed count against a system record, not a paper sheet, closes the gap between "what we think went out" and "what we can prove went out."
- Push every adjustment through the same device as the sale. Swaps, returns, damage and disputes need a reason code entered on the spot — not a note "to sort out later" that never gets sorted.
- Reconcile per van, per day, not per warehouse, per month. Variance is easy to find when it's twelve small numbers checked daily. It's nearly impossible to find once it's one large number checked monthly.
- Flag patterns, not incidents. One short-count is a mistake. The same SKU short on the same route three days running is a process problem or a person problem — and you can't tell which until the data isolates it.
- Make the honest path the fast path. Reps route around friction. If logging a return takes longer than pocketing the discrepancy and moving on, the system will get bypassed no matter how clear the policy is.
The distributor didn't solve shrinkage by trusting people less. He solved it by giving the business a way to see what was actually happening on the van in the moment it happened, instead of trying to reconstruct it from a total at the end of the day.
iotoms was built around that same idea: every load-out, sale, return and adjustment on a route is captured as a transaction from the field app the rep already carries, reconciled against expected stock automatically instead of manually at month-end, so variance shows up by van and by SKU while it's still small enough to explain.