Cycle counting beats the annual stocktake: a practical switching guide
The annual stocktake costs you a weekend, a public holiday, and a number you stop trusting by Wednesday.
Cycle counting replaces it with rolling daily counts the system actually trusts.
The annual stocktake costs you a weekend, a public holiday, and a number you stop trusting by Wednesday.
Cycle counting replaces it with rolling daily counts the system actually trusts.
Here is the switching plan, the variance threshold that means it is working, and what to do when it is not.
What the annual stocktake actually costs you
Two-day shutdown over a long weekend.
Six staff at penalty rates counting boxes by torchlight.
A spreadsheet of variances nobody investigates because it is now Tuesday.
A general ledger adjustment that wipes out a quarter of margin.
And by the following Friday, the number is wrong again because picking has resumed.
What cycle counting does instead
Three to twenty SKUs counted every day, every week, forever.
Counts targeted by ABC velocity, not alphabetical SKU order.
Variances investigated within 24 hours, while the receipt or pick that caused them is still on the timeline.
No shutdown. No penalty rates. No spreadsheet of regrets.
Why this is not just "counting smaller"
The point is not the count cadence. The point is the variance investigation.
A weekend stocktake gives you a number. A cycle count gives you a question.
The question is always: what posted differently from what happened?
Answering that question is what closes the gap between system stock and shelf stock.
The variance triage flow
- Variance under 0.5%: log, close, no action.
- Variance 0.5% to 2%: assign to the area supervisor; review pick logs and receipts for that bin.
- Variance over 2%: stop work in the zone; recount; investigate before posting.
Without a triage flow, cycle counting is just a slower stocktake.
ABC classification: start here
- A-class SKUs (~10% of items, ~70% of velocity): count weekly.
- B-class SKUs (~20% of items, ~20% of velocity): count monthly.
- C-class SKUs (~70% of items, ~10% of velocity): count quarterly.
That gives every SKU a count cadence, weights effort toward what moves, and means a recount comes around fast enough to catch drift.
The switching plan
Week 1: Pull last six months of pick history. Classify every SKU as A, B, or C.
Week 2: Run a full stocktake one last time. This is your baseline.
Week 3 onward: Start daily cycle counts. Schedule by ABC. Investigate every variance over 0.5%.
Month 3: Compare cumulative cycle-count variance against your last annual count. If you are within 1% you are running properly.
Month 6: Drop the annual full stocktake. Tell your auditor.
When the annual stocktake is still the right call
Honest gaps:
- Brand-new operations with under three months of pick history: you have no ABC data yet. Run one full count, build the baseline, then switch.
- Bonded warehouses with customs requirements that mandate periodic full counts: cycle counting supplements but does not replace the bonded count.
- Operations with under 200 SKUs where a stocktake takes one shift: the overhead of cycle counting may not be worth it for you yet.
How OpsUI runs this
The Cycle Counting module at /modules/cycle-counting drives counts from mobile scanners, schedules by ABC class, captures variance, and routes investigation to the right supervisor.
Variances over a configurable threshold trigger a recount before they post to the ledger.
Counter-level accuracy KPIs sit alongside the count plan, so you can see which counter is drifting before the variances do.
Pair it with /modules/inventory-management (multi-location, batch, expiry) and you have the shape Xero's native inventory cannot give you. See /blog/xero-inventory-gaps.
The honest measure
You will know cycle counting is working when your finance team stops asking for a stocktake.
That happens around month four for most operators who run the variance triage properly.
Frequently asked
How often should I cycle count to actually replace the annual stocktake?
Tie it to ABC velocity. A-class SKUs weekly, B-class monthly, C-class quarterly. That covers every SKU every quarter, weights effort toward what moves, and gives you enough cumulative coverage by month six to retire the annual count entirely.
What variance threshold means cycle counting is working?
Cumulative variance under 1% against your last full stocktake by month three. Per-count variance under 0.5% on A-class SKUs is the day-to-day signal. Above that, the count is finding real drift, which is the whole point, and your investigation flow should be catching root cause within 24 hours.
Can I cycle count on paper, or do I need a scanner?
Paper works for the first month while you prove the flow. Past that, you need a mobile scanner. The variance investigation breaks down if pickers cannot scan their actual location and the count cannot reconcile bin-level. OpsUI's Cycle Counting module at /modules/cycle-counting runs on phones, no proprietary hardware required.
Will my auditor accept cycle counting instead of an annual stocktake?
Yes, if you can show six months of cumulative coverage and a documented variance investigation flow. Most auditors are happier with cycle counting than with annual counts because the audit trail is continuous, not a single weekend. Take them the count log and the variance triage records.
How does this compare to what Cin7 or Unleashed offer?
Cin7 and Unleashed support cycle counts as a feature within their inventory product. OpsUI runs cycle counting as a dedicated module so you can pair it with the rest of the warehouse stack, wave picking, slotting, route optimisation, without buying a separate platform per concern. See /compare/opsui-vs-cin7 for the broader comparison.
See how OpsUI approaches this differently.
No hidden fees. No six-month implementations. Just warehouse software that works.
Book a Consultation