Inventory Control Methods for Shopify: Pick the Right Fix by SKU Risk
Pick a control method by the failure it prevents
Inventory control methods are the rules that keep on-hand stock accurate, available when demand shows up, and limited enough that cash is not trapped in slow units. A Shopify store does not need every method on every SKU. It needs the smallest control that stops the failure already happening.
Three failures cover most catalog problems. Counts are wrong, so Available does not match what you can ship. A predictable seller runs out before the next receipt. Or cover is too deep, so units sit past the window you intended to hold them. Name the failure first, then pick one method from the list below.
| Failure you can see | Minimum control | What it does not fix |
|---|---|---|
| Available does not match the shelf, warehouse, or 3PL | Cycle counting | Future demand or order quantity |
| A-class sellers stock out on a known lead time | Reorder threshold | Bad counts or overbuying |
| Cover is long and sell-through is weak | Buying limit | Record errors on fast movers |
| Time is spent counting or reviewing the wrong SKUs | ABC prioritization | The count, threshold, or limit itself |
Shopify already tracks inventory by location and separates On hand, Committed, Unavailable, and Available. Shopify’s inventory states are documented in the inventory management help guide. A control method sits on top of those states. It does not replace them.
If the weekly operating loop is still missing, start with the Shopify inventory management system post, then come back here to choose which control a SKU actually needs.
Cycle counting: address unreliable stock records
Use cycle counting when the record is the problem. A count is the right control if customers hit sold-out pages while units sit in a bin, if refunds and transfers never land in Available, or if two locations disagree on the same variant. It is the wrong first move for a SKU whose count is trusted and whose only issue is late reordering.
The National Retail Federation’s 2023 National Retail Security Survey put average shrink at 1.6% of sales in fiscal year 2022, up from 1.4% the year before, based on 177 retail brands. That survey covers retail loss broadly, not Shopify-only record errors, but it is a reminder that uncounted loss changes what you think you can sell. Read the NRF shrink release before treating a discrepancy as a software glitch.
A lean version for a small catalog:
- Export or snapshot Available and On hand for the variants you will count today, so sales during the count have a timestamp.
- Count a small set: the SKUs with recent adjustments, the highest-revenue variants, and any location that has been wrong twice.
- Post the adjustment in Shopify with a reason you can filter later (damage, theft, receiving error, count correction).
- Recheck the same SKUs on the next cycle. A second miss means the process is broken, not the number.
Do not pause checkout to run a full physical inventory unless the records are unusable. The execution steps, snapshot timing, and accuracy tracking live in the cycle counting guide. If the gap is a state mismatch rather than missing units, diagnose it with the inventory discrepancy walkthrough before you rewrite every quantity.
ABC prioritization: focus limited operator time
ABC analysis is a time-allocation control, not a buying formula. It answers which SKUs deserve a weekly count, a tighter reorder review, or a hard buying cap, and which can wait. The ASCM Dictionary defines ABC classification as dividing inventory into three classes based on annual dollar usage, with A items the highest value and C items the lowest.
On Shopify, revenue alone is a weak sort. A high-revenue SKU with 90 days of cover does not need the same control as a high-revenue SKU that stocked out twice this quarter. Layer velocity and stockout history on the revenue rank, then assign a suggested operating cadence. These intervals are targets you choose, not industry standards:
- A (suggested): cycle count on a short interval, reorder threshold reviewed every purchase cycle, no open-ended reorders.
- B (suggested): count monthly or when an adjustment appears, reorder threshold set once per season.
- C (suggested): count only after a discrepancy or a return spike. Do not build a forecast for every C variant.
The grading method, including how to fold sales velocity and stockout risk into the rank, is owned by the ABC analysis guide. Use that post to classify. Use this one to decide which control the class receives.
If the catalog is already segmented by revenue, conversion, and inventory risk, ABC should not create a second taxonomy. Map A/B/C onto that segmentation and stop. The product segmentation framework is the broader sort when conversion and exposure matter as much as units on hand.
Reorder thresholds: address predictable stockouts
A reorder threshold is the right control when demand and supplier lead time are stable enough to name a number, and the on-hand count is trusted. It fails when the record is wrong, because the alert fires against a quantity you do not actually have. Fix the count first, then set the threshold.
The standard reorder point is expected demand during lead time plus a safety buffer. Shopify does not calculate that point for you. You set a quantity, and the alert is only a trigger. The formula, the safety-stock input, and how to attach the alert belong in the Shopify reorder formula post and the inventory alerts setup guide. Do not rebuild that math here.
Apply a threshold only where the failure is a predictable stockout:
- The SKU has sold in most recent weeks, so velocity is not a one-off spike.
- Lead time is known in days, including the supplier’s quoted time and your receiving lag.
- You have already separated committed units from available units, so a cart reservation does not look like free stock.
- You are willing to place a purchase order when the alert fires, not after the product page shows sold out.
Skip thresholds on made-to-order items, one-time drops, and C-class variants you would rather stock out than warehouse. A threshold on a SKU you will not reorder just creates noise.
After the threshold is live, check two outcomes on the next review: did the SKU stay available through the lead time, and did incoming units arrive before Available hit zero. If it still sold out, the buffer or the lead time is wrong. If it arrived with weeks of extra cover, the threshold is too high and you have drifted into the next failure.
Buying limits: address excess cover
A buying limit caps how many units, or how many days of cover, you will place on the next purchase order. It is the control for excess stock, not for stockouts. Use it when sell-through is weak, when a previous order overshot demand, or when a supplier minimum would otherwise force more units than the SKU can clear.
Sell-through rate is the check that tells you the limit is needed. Units sold divided by units available to sell over a period shows whether the last receipt is clearing. The formula and the reorder, promote, or markdown actions sit in the sell-through rate guide. Read that result, then set the cap. Do not re-derive the formula in the purchase order.
A practical limit for a Shopify operator:
- Set a cover ceiling by class. Example targets, not benchmarks: 30 to 45 days for A replenishment items, 60 days for seasonal B items, and no reorder for C items already past 90 days of cover.
- Convert the ceiling into units using inventory position, not raw On hand. Inventory position here is Available plus inbound, which is On hand minus Committed minus Unavailable, plus units already on purchase orders that have not been received. Ceiling units equal daily velocity times the cover ceiling. Buy quantity equals ceiling units minus inventory position. If the result is zero or negative, do not buy.
- If the supplier minimum exceeds that unit cap, buy the minimum only when the extra units still clear inside the ceiling plus one lead time. Otherwise decline the minimum or split the buy with another channel.
- Record the ceiling on the SKU so the next order does not reset to “whatever we bought last time.”
Those day counts are operating targets you choose, not industry standards. Change them when lead time or season length changes. If aged units are already on hand, the limit stops the next receipt. Clearing what you already own is a separate decision, covered in the inventory aging report workflow.
Economic order quantity can size a replenishment buy when ordering cost and holding cost are both real. It is a quantity model, not a substitute for a cover cap on a slow SKU. Use the EOQ formula only after you have decided the SKU should be reordered at all.
When to combine methods and review the result
Combine controls only when one failure creates another. A wrong count plus a reorder threshold will buy against fiction. An ABC rank with no count schedule and no threshold is a spreadsheet, not a control. The usual stack for a replenished A item is a short cycle count, then a reorder threshold, then a cover ceiling on the purchase order. C items usually need one control or none.
Review on a fixed cadence, not after every sale. Once a month is enough for most small catalogs. Pull the SKUs that were on the at-risk list last month and ask three questions:
- Did count adjustments on the counted set fall, or did the same variants need a second correction?
- Did threshold SKUs stay available through their lead time without a manual rush order?
- Did capped SKUs stop gaining cover, measured as days of stock or as a weaker sell-through on the new receipt?
If the answer is no, change the control, not the whole catalog policy. A SKU that still mismatches after two counts needs a receiving or location fix, which the shrinkage diagnosis post separates from timing errors. A SKU that still sells out on a trusted count needs a higher buffer or a shorter review, not another ABC sort. A SKU that still piles up after a cap needs a stop-reorder, not a tighter forecast.
Sku-level velocity, stock cover, and inventory trend are enough to see whether the at-risk set shrank. Skymetrics stock intelligence surfaces those signals without a separate export, which is useful once the catalog is too large to scan location by location. The selection rule stays the same either way: one failure, one minimum control, then a check that the failure got smaller.