What we have seen is this: teams often compare a shelf count with one number labelled “stock” and assume the difference is an error. Shopify holds several inventory states because the same physical unit can be committed, reserved, damaged or incoming. A useful Shopify cycle counting programme reconciles state and location, not just total quantity.
Explore StoreBuilt inventory and operations audits.
Table of contents
- Keyword decision
- Read the states correctly
- Design the count programme
- Run a controlled count
- Investigate variance
- Turn counts into decisions
- StoreBuilt point of view
Keyword decision
Primary keyword: Shopify inventory states with Shopify cycle counting as the operational secondary intent. Related searches include Shopify stock audit and ecommerce inventory accuracy. Intent is educational troubleshooting for operations leaders. UK agency competitors typically publish inventory-app lists; official Shopify documentation defines states but does not provide a complete count-governance model. This article fills that implementation gap.
Read the states correctly
Shopify currently distinguishes on hand, available, committed, unavailable and incoming. Its help documentation describes on hand as the recorded units at a location; available as sellable units; committed as units belonging to unfulfilled orders; unavailable as units reserved or held; and incoming as stock moving toward a location but not yet received.
| State | Operational question | Typical risk |
|---|---|---|
| On hand | Is the unit physically at this location? | Total hides its sellability |
| Available | Can the storefront promise it now? | Wrong location eligibility |
| Committed | Which open order owns it? | Stale unfulfilled orders |
| Unavailable | Why is it withheld? | Unowned holds accumulate |
| Incoming | Is receipt confirmed and dated? | Supplier ETA treated as certainty |
The equation is useful as a control concept: on-hand stock is distributed across sellable and non-sellable states. Incoming sits outside that physical total until received. Do not force every discrepancy into available stock merely to make totals agree.
Assign reason codes to unavailable units: damaged, quality control, safety stock, draft-order reservation, investigation or another approved state. Review ageing. A quantity that has been “in quality control” for 90 days may really be forgotten shrinkage.
Design the count programme
An annual stocktake discovers errors too late. Cycle counting checks smaller groups throughout the year. Segment SKUs using value, velocity, historic variance, theft risk, expiry risk and customer impact.
| Class | Example cadence | Why |
|---|---|---|
| A: high value/high movement | Weekly | Small errors create material risk |
| B: medium risk | Monthly | Regular control without overload |
| C: stable/low value | Quarterly | Lower operational priority |
| Exception class | Daily until stable | Repeated variance needs diagnosis |
Cadence is not a universal prescription. Set it from your error economics and capacity. Count by location and bin, not only SKU total, because an item in the wrong place can be unavailable to the picker even when the company-wide total is correct.
An anonymous accessories retailer repeatedly corrected a popular SKU upward at one location and downward at another. Company total looked plausible, so purchasing ignored it. The real issue was mis-scanned transfers. Location-level cycle counts and transfer completion checks exposed the workflow gap.
Run a controlled count
Define a count window and control movements. If orders, returns and transfers continue, capture a cut-off and reconcile every event after it. Blind counts—where the counter does not see the expected number—reduce confirmation bias for sensitive SKUs.
Use a two-stage process for material differences. The first counter records physical quantity and condition. A second person recounts significant variances before any adjustment. Record bin, SKU or barcode, counted state, expected state, difference, timestamp and reason.
Do not convert damaged stock to available because it physically exists. Move each unit into the correct state. Likewise, receive incoming stock only after the actual receipt and checks defined by the operation.
Explore Shopify inventory workflow automation.
Investigate variance
An adjustment fixes today’s number but can erase evidence. Require a reason from a controlled list and preserve notes for unusual cases. Useful causes include supplier short receipt, pick error, unprocessed return, damage, transfer timing, bundle component logic, duplicate adjustment, theft or integration conflict.
Trend variance by SKU, location, shift, process and cause. If the same bin repeatedly differs, inspect labelling and pick paths. If discrepancies cluster after returns, inspect the grading workflow. If a system correction is overwritten later, inspect integration ownership and event order.
Measure:
- location records matching physical count;
- absolute unit variance and value variance;
- percentage of adjustments with a verified cause;
- repeated variance by SKU/location;
- unavailable inventory ageing;
- count completion and recount rate.
Turn counts into decisions
Accurate states improve more than fulfilment. Replenishment can use true available and incoming quantities. Merchandising can avoid promoting phantom stock. Finance receives cleaner inventory adjustments. Customer service can explain delays using an owned exception rather than guesswork.
Set thresholds that trigger process work. A rising return-to-available delay should lead to a returns-flow review. Repeated committed stock on old orders should trigger order ageing and cancellation controls. Incoming quantities past their ETA require supplier follow-up rather than automatic trust.
Create a weekly inventory-control meeting short enough to survive: top value variances, repeated causes, ageing unavailable stock, overdue incoming transfers and corrective owners. Close actions with evidence.
Ask StoreBuilt to map Shopify inventory states and controls.
StoreBuilt point of view
We believe inventory accuracy is not the percentage of rows that happen to match on count day. It is the organisation’s ability to explain where each unit is, whether it can be promised and why the record changed.