Inventory discrepancy — variance math and the investigation workflow
An inventory discrepancy is any gap between counted and recorded stock. The variance math, a step-by-step investigation workflow, and root causes.
InventoryX is in development and not available today. ClearStock is the live Shopify app.
An inventory discrepancy is any difference between what your records say you have and what a count finds — records say 48, the count says 44, and the 4 units are now a question you have to answer. The discrepancy itself is just math; the expensive part is either skipping the investigation (the gap repeats and compounds) or misdiagnosing it (the "fix" addresses the wrong process). This article covers the variance math, a repeatable investigation workflow, and the root-cause categories that explain almost every discrepancy a small Shopify store produces.
The variance math: two numbers, both worth computing
When a count finishes, compute the variance two ways because they answer different questions:
- Unit variance = counted quantity − recorded quantity. Direction matters: negative means stock went missing or was never received; positive means over-receipts, unprocessed returns, or count errors.
- Dollar variance = unit variance × unit cost. This is the number that ranks your problems. A −2 variance on a $6 item is noise; a −2 on an $80 item is a process failure worth an afternoon.
And the ratio:
- Variance % = (counted − recorded) ÷ recorded. This is what you baseline over time. One 3% variance tells you nothing; three consecutive counts on the same category drifting 2–4% tells you the category has a structural problem, not a bad day.
Worked example from an aquarium supply store, October 2026 count:
| SKU | Recorded | Counted | Unit var. | Unit cost | $ variance | Var % |
|---|---|---|---|---|---|---|
| PUMP-AIR-2OUT | 31 | 28 | −3 | $11.40 | −$34.20 | −9.7% |
| TANK-10GAL | 12 | 12 | 0 | $18.00 | $0.00 | 0% |
| FOOD-FLAKE-20G | 55 | 58 | +3 | $5.20 | +$15.60 | +5.5% |
| MEDIA-CARB-500 | 24 | 20 | −4 | $9.10 | −$36.40 | −16.7% |
Read order: dollar variance first (MEDIA-CARB-500 and PUMP-AIR-2OUT are the money), then direction of the positives (FOOD-FLAKE-20G over-count suggests returns restocked without recording, or a case of 6 received as loose units), and percentage only as a trend line across counts.
The investigation workflow
Work discrepancies in this sequence — each step either solves the case or eliminates a suspect.
1. Recount before anything else. Count the SKU again, ideally by a different person, checking adjacent bins for misplaced stock. A meaningful share of "discrepancies" are location errors that evaporate on recount. Only investigate variances that survive the recount.
2. Bracket the timeline. Find the last count or event where records were known-good, and list everything that touched the SKU since: receipts, sales, returns, transfers, adjustments, app writes. In Shopify, the inventory adjustment history and the PO/receipt records give you the event list as of October 2026. You're building the suspect window.
3. Audit the audit trail. Review every adjustment in the window for that SKU — who made it, when, with what reason code (the discipline of keeping that trail clean is covered in inventory adjustments as an audit trail). Look for: round-number adjustments that match your variance, duplicate adjustments, corrections made during busy hours, or an app's automated writes you didn't expect.
4. Check the receiving events first. If a receipt falls in the window, pull the packing slip and PO (e.g., INV-2027-114) and compare three numbers: what the supplier shipped, what the slip said, what was entered. Unverified receiving is the single most common birthplace of phantom gaps — the pattern is dissected in the phantom inventory post-mortem, and the receiving routine that prevents it — blind counts, slip-to-carton verification, exception logging — is the inventory receiving checklist.
5. Check returns and transfer edges. Unrecorded returns restocked to the shelf, and transfers or marketplace channels whose quantities didn't sync, both produce discrepancies that look identical to theft from the inside.
6. Only then consider theft. If the audit trail is clean, receiving was verified, and the variance persists across counts, external or internal shrinkage becomes the residual explanation — and the response shifts from investigation to prevention controls (the prevention stack). Running the full preventive-control buildup on day one, before the boring causes are eliminated, is how stores burn trust and find nothing.
7. Close the loop in writing. Record the resolution: root cause, correction made, process change. The value of an investigation is the next one being faster.
The root-cause taxonomy
Almost every discrepancy a sub-$2M store produces falls into one of six buckets. Keep this table next to the workflow:
| Root cause | Typical signature | Fix lives in |
|---|---|---|
| Receiving error | Gap born on a receipt date; carton vs contents mismatch | Receiving checklist discipline |
| Unrecorded damage/write-off | Steady small negative drift on fragile or perishable SKUs | Adjustment reason-code discipline |
| Returns handling | Positive variances, or negatives if returns were "restocked" as wrong items | Returns verification step |
| Process/timing (sales in flight, sync lag) | Small variances that vanish on recount or next-day recount | Count cutoff rules |
| Counting error | Random direction, disappears on recount | Recount-by-a-second-person rule |
| Theft/shrinkage | Persistent negative variance on high-value, small, desirable SKUs after clean audit trails | Access and POS controls |
The counting-cadence question — how often to count which SKUs so discrepancies get caught while the trail is still warm — is the cycle-counting topic proper, covered in inventory counts on Shopify. This article starts where a count ends.
What good looks like
A store with discrepancy discipline has three habits: every count variance gets the seven-step workflow the same week (small variances take ten minutes), every adjustment carries a reason code, and variance % by category is baselined over quarters so "normal for us" is known. The last one matters most — there are no universal benchmarks for acceptable variance, so your own trailing average is the only honest reference line.
Common questions
What is an inventory discrepancy? Any difference between the quantity your system records and the quantity a physical count finds. It's computed as a unit variance, valued at cost for ranking, and tracked as a percentage over time — the investigation exists to explain the gap, not just erase it.
How do you investigate an inventory discrepancy? Recount first, bracket the timeline back to the last known-good count, audit the adjustment history in that window, then check receiving paperwork, returns, and transfers. Only treat theft as the explanation after the process causes are eliminated — and close every case with a written root cause.
How do you calculate inventory variance? Unit variance = counted minus recorded. Dollar variance = unit variance × unit cost per item. Variance % = variance ÷ recorded quantity. Track all three; the dollar figure prioritizes your attention and the percentage trends across counts reveal structural problems.
What is an acceptable inventory variance? No universal benchmark holds across categories, so treat any specific number you read as an assumption. Build your own baseline: run your counts, average variance % by category over a quarter, and treat movement above your own normal as the signal worth investigating.
What causes negative inventory discrepancies? In rough order of frequency for small stores: unverified receiving, damage that was never written off, mis-picks and wrong-variant picks, returns mishandling, and only then theft. The audit trail usually shows which event minted the gap — that's why reason-coded adjustments are the core discipline.
Your next step
Take your last count's three biggest dollar variances and run steps 1–4 of the workflow on them this week — recount, bracket, audit trail, receiving paperwork. Whatever root cause appears twice goes on the prevention list, and if the counts themselves are ad hoc, set the cadence with the cycle-counting routine so discrepancies surface while they're still traceable.