Cycle Counting Inventory: When the Shelf and System Disagree

Method

The stock record is a claim. The shelf is the evidence.

Cycle counting tests the claim without closing the building. The method is five decisions: which slice to count, how often, how to count it, how to record what you find, and how to read a run of findings as a diagnosis. The numbers below are invented worked examples.

The short version
  • Count a slice on a rhythm, not everything once a year: a variance found close to its cause can be diagnosed; the same one found eleven months later cannot.
  • Choose the slice by value and by handling: three of the eight invented SKUs below carry 78.75% of annual usage value, and the busiest by handling ranks only fifth by value.
  • Write the variance as its own event. Typing the counted figure over the system figure records the correction and deletes the evidence.
  • Read the run, not the row: flipping signs that net near zero are consistent with a counting problem, one‑directional case‑sized variances with receiving, and small, one‑directional, high‑value ones are the residual.

An annual physical count answers one question once: what was on the shelf on the day you stopped selling to look. A SKU is forty units short — since when, and because of what? Cycle counting trades that one answer for many small ones, keeping the distance between an error and its discovery short enough to still contain the cause.

Step 1 — Rank by what is at stake

Counting in SKU order treats a $1.40 consumable and a $64 item as equal claims on the same scarce hour. Rank by annual usage value instead: unit cost multiplied by the units that move in a year. Put handling in the same table, because each receipt, pick and transfer is an occasion for shelf and record to part company.

SKUUnit costUnits a yearAnnual usage valueRunning shareMovements a year
S‑101$42.004,000$168,00042.00%900
S‑102$18.005,000$90,00064.50%1,300
S‑103$9.506,000$57,00078.75%480
S‑104$64.00500$32,00086.75%120
S‑105$3.207,500$24,00092.75%2,400
S‑106$32.00500$16,00096.75%150
S‑107$1.405,000$7,00098.50%1,900
S‑108$12.00500$6,000100.00%90
Total—29,000$400,000—7,340

The rows sit in value order, and two disagree with themselves. S‑105 is fifth by value and first by movement: 2,400 handling events against $24,000 of flow. S‑107 is seventh by value and second by movement. On value alone, both would be counted rarely.

Value tells you what a variance will cost. Movement tells you how likely you are to have one. A schedule built on either number alone is half a schedule.

Splitting a ranked catalogue into classes is sound. What it does not come with is a cut‑off. Draw the first line under S‑103 and the top class is three SKUs carrying 78.75% of the value; draw it under S‑104 and it is four carrying 86.75%. Neither is more correct: a smaller top class can be counted often, a larger one less often for the same effort. Then promote the movement outliers. Keep S‑104 anyway: quiet at 120 movements a year, but three units missing is $192.

Step 2 — Turn the ranking into a schedule you can staff

A ranking is not a schedule until it meets the hours that exist. Say the invented business runs 240 active SKUs and can complete twelve SKU counts a week across fifty working weeks: 600 counts a year. Spread flat that is 2.5 counts per SKU, which watches the $168,000 and $6,000 lines equally closely. Weighted, the same budget buys this:

ClassSKUsCounts each per yearCounts consumed
Top2012240
Middle604240
Tail1600.75120
Total240—600

Those frequencies are not a standard. They are what 600 counts looks like under one chosen weighting, and each is a consequence of the other two. Raise the top class from twelve to twenty‑four and those twenty SKUs alone consume 480 of the 600; give the middle two counts each and the remaining 120 are gone, leaving the tail uncounted. That is the honest price of a higher frequency.

A frequency buys an interval. Here is what piles up inside one:

What accumulates between countsFlat: 2.5 a yearWeighted: 4 a yearWeighted: 12 a year
S‑101 value flowing through$67,200$42,000$14,000
S‑101 handling events36022575
S‑105 handling events960600200

Read the handling rows: seventy‑five movements leaves a much smaller investigation window than 960.

Step 3 — Count so that the number can be trusted

A count the counter can talk themselves out of is not evidence. Four habits do that work.

Count blind. If the sheet shows the expected quantity the exercise becomes a confirmation: a counter who reaches 405 where the sheet says 412 goes hunting for the missing seven, and people find what they are told is there.

Count every location holding the item, rather than counting the SKU from memory. An item living in a pick face, an overstock bay and a staging area is three places, and the one left out becomes a variance.

Freeze it or reconcile it. A count taken while the location is being picked from measures nothing. Stop movement there, or record the count time and apply the transactions stamped after it — decided beforehand, not after the argument.

Independently recount a material discrepancy before adjusting, with a different pair of hands. It is the cheapest test available, and it stops a miscount from entering the record as a fact.

And count in the unit you sell: when an item arrives in inner packs of six and sells as singles, “twelve” is a question, not an answer.

Step 4 — Record the variance as its own event

When the count disagrees you hold two things. One is a correction: on‑hand should now read 405. The other is a fact — on 14 June, S‑101 read 412 in the system and 405 on the shelf, a gap of seven units and $294 at cost, found blind, recounted once, cause not established.

Typing 405 over 412 records the correction and deletes the fact. Do that for a year and you own a stock file corrected many times, and nothing that can ask what the corrections had in common.

So write the variance as a row of its own, before the adjustment:

  • Date, time, and who counted.
  • The location, not only the item.
  • The system quantity as at the count, captured before the counted figure goes in.
  • The counted quantity, and the recount, held separately.
  • Variance in units and at cost, separately: units drive the diagnosis, dollars drive whether anyone spends time on it.
  • A reason code chosen at the count, on which an honest unknown is an allowed value.
  • The adjustment reference, so correction and evidence point at each other.

Capture what can be seen at the shelf, because the person standing there knows what no later reviewer will reconstruct: a mixed bin, a pallet in the aisle, two items with near‑identical packaging. Assign a cause only where the observation supports one, and leave unknown available: a mandatory cause produces invented ones that ruin the pattern you are about to read.

Step 5 — Read the run as a diagnosis

One variance is an incident. A column of them is data. Four SKUs from the invented catalogue, counted four times across a year, variance in units:

SKUUnit costPacked inCount 1Count 2Count 3Count 4NetGrossNet at cost
S‑102$18.00cases of 24+24+240+48+9696+$1,728
S‑103$9.50packs of 6−12+6+12−12−642−$57
S‑104$64.00singles−2−3−1−3−99−$576
S‑106$32.00cases of 12+1200+12+2424+$768

Two derived numbers make the first cut. Net adds the variances with their signs; gross adds them as sizes, sign discarded. Divide the size of the net by the gross and you have asked one question: drift, or noise?

SKUNetGrossNet ÷ grossSign behaviorSizes are multiples of
S‑102+96961.00all positive24, the case
S‑103−6420.14alternates6, the inner pack
S‑104−991.00all negativenothing
S‑106+24241.00all positive12, the case

Give that ratio no magic value: a middle result mainly means you have not counted enough times yet. S‑103 sits at 0.14, where four counts produced $399 of gross adjustment against $57 of net difference. The other three sit at 1.00, where nothing cancels.

A counting problem

S‑103 has the signature: signs alternate, the net is near zero against a large gross, and each variance is a whole multiple of six, the inner pack. The first place to investigate is whether packs are being counted where singles are expected. If that hypothesis is confirmed, the fix belongs in the unit of measure and the count sheet rather than in another stock adjustment. By money it is the least interesting row at $57 net; by process it is the first to fix, because $399 of adjustment noise will comfortably hide a real variance on that shelf.

A receiving problem

S‑102 and S‑106 agree on four things: the sign holds, it is positive, the sizes are whole multiples of the case quantity, and both come from one supplier. Positive means more on the shelf than the record admits; whole cases mean it happened a case at a time, which makes a receiving error the hypothesis to test first. The interesting cost is not the $2,496 but that two lines are understated, so the reorder arithmetic is asking for goods already on the floor. Compare booked against shipped quantity on that supplier’s receipts, and check whether the receiver records the ordered quantity rather than the counted one. A short shipment is the same failure reversed.

An unexplained one‑directional loss pattern

S‑104 is what remains once the other two explanations are spent. Each count negative. No multiple of any pack quantity, because it does not travel in packs. No matching positive on another SKU, which a lookalike mix‑up would leave behind. And 120 movements a year, so “miscounted four times” is a weak story. Nine units at $64 is $576. The response is not a larger adjustment: shorten the interval on that SKU so the next occurrence lands in a window somebody can examine, then look at access and at what shipped from that location.

What the run looks likeConsistent withWhere to look
Signs alternate, net near zero, gross largeA counting problemUnit of measure and count sheet
One direction, positive, case‑sized, clustered by supplierA receiving problemBooked against shipped quantity
One direction, negative, case‑sizedA movement with no transactionTransfers and mis‑booked shipments
One direction, negative, small, high value per unitResidual lossAccess, and a shorter interval

The two numbers nobody can hand you

The interval came out of arithmetic above, not doctrine: a stated capacity, a chosen split, and the fact that raising one class lowers another inside the same budget. A frequency quoted without its budget is a figure from somebody else’s warehouse.

Tolerance is the other — how large a variance has to be before somebody investigates rather than adjusts. A percentage alone is often the wrong shape: two percent of S‑107 at $1.40 a unit is not worth a phone call, and two percent of S‑104 is a fraction of a unit. Build two triggers out of the ledger you started in step four; a percentage can sit alongside them, but it cannot carry the job by itself.

  • A recount trigger, in the shape of the errors you get. Here S‑103’s variances are whole multiples of six, so “recount any variance that is an exact multiple of the pack quantity” finds the cause, and no percentage does.
  • An investigate trigger, in money, weighed against what investigating costs. S‑104’s $576, arriving in pieces between $64 and $192, buys back the hour. S‑103’s $57 net does not — and it is still the first thing to fix, because the reason to repair a process is the noise it makes.

Setting either higher costs nothing in effort and a great deal in detection: the variances you decline to look at are not diagnosed later, because the window that held the cause has closed. Setting them lower spends attention on noise. No published value settles this for your catalogue; your own ledger will.

Questions people ask

What is cycle counting?

Counting part of your inventory on a repeating schedule while the business keeps running, rather than counting the whole of it during a shutdown. The point is the interval: a difference found soon after the event that caused it still has its cause attached, while the same difference found much later is only a number.

Which inventory should I count first?

Rank by annual usage value, which is unit cost multiplied by the units that move in a year, then promote the items handled far more often than their value rank suggests. Value tells you what a difference costs; receipts, picks, returns and transfers tell you how likely one is. The class boundaries are your decision rather than a published constant.

How often should each item be cycle counted?

Start from the capacity you have rather than a target you admire. In the worked example, 600 counts a year across 240 SKUs is 2.5 counts each if spread flat, or 12, 4 and 0.75 once weighted toward the top class. Raising the top class from 12 to 24 consumes 480 of the 600 and leaves the tail uncounted, which is what a higher frequency actually costs.

What should I do when the count does not match the system?

Recount independently, with a different pair of hands, before changing anything. If the difference survives, write it down as an event of its own: the date, the location, the system quantity as at the count, the counted quantity, the variance in units and at cost, who counted, and a reason code on which an honest unknown is allowed. Post the adjustment after that, not instead of it.

How do I tell a counting error from real shrinkage?

Look across several counts rather than at one. Add the variances with their signs to get a net, add them as sizes to get a gross, and compare. Alternating signs that net near zero against a large gross are consistent with a counting problem, especially when each is a whole multiple of a pack quantity. Variances that run one way have a direction: positive and case sized points upstream at receiving, while small, high in value per unit and unmatched is the residual.

Does cycle counting replace an annual physical inventory?

That depends on what the annual count is for. If it exists to keep the stock record honest, a rhythm does that job better, because it produces differences that can still be traced to a cause. If it exists to satisfy an auditor, an insurer or a lender, whether a documented cycle counting program can stand in for it is a question for them and for your accountant.

The catalogue, costs, quantities, movement counts, variances and counting capacity here are invented worked examples, chosen so the arithmetic can be checked end to end. The class boundaries, frequencies and triggers derived from them follow from those invented inputs and are not recommended values. This article names no SKU Compass control, because the method stands without one.

Scroll to Top