Shopify shows what it thinks you have in stock. An inventory audit shows what you actually have. For most stores, those two numbers are not the same. This guide covers how to run a full count, find discrepancies, investigate the causes, and update Shopify correctly — plus how to set up cycle counting so you never need a panicked full audit again.
Shopify updates inventory automatically when orders are placed and fulfilled. In theory, your stock counts should always be accurate. In practice, they drift — and the longer you go without an audit, the bigger the gap becomes.
The drift happens from small things that add up: a supplier shipment received and put away without being logged, a return accepted without being restocked in the system, a unit damaged and thrown out without an adjustment, a fulfillment error where the wrong quantity shipped. None of these feel significant individually. After 6 months they create meaningful discrepancies across your catalog.
These drift causes are closely related to a handful of habits that quietly cost Shopify sellers money — see our breakdown of common Shopify inventory mistakes for the full list and how to fix each one.
Not every audit is a full warehouse shutdown. Match the type to what you are trying to accomplish.
This is the process for a full count. For cycle counts, follow the same steps but only for the subset of products you are auditing that session.
Before counting, pause any activity that changes stock levels. If possible, pause fulfillment for a few hours, hold any new receiving, and make sure no orders are being picked. Even a small store processing 20 orders a day will have stock moving constantly — count against a moving target and your numbers will never reconcile.
Go to Shopify Admin → Products → Inventory → Export. This gives you a CSV with every product variant and its current recorded quantity. This is your "expected" count — what Shopify thinks you have. Save it with today's date. Do not update it yet.
Count every unit physically present. For each SKU: count what is on shelves, count what is in storage or backroom, count any units in transit that have already been received physically but not yet logged. Write down the physical count per SKU on paper or in a separate spreadsheet column — do not update Shopify yet.
Open your exported CSV and add a column for your physical count. For each SKU, calculate the variance: Physical Count minus Shopify Count. A positive variance means you have more than Shopify thinks. A negative variance means you have less — this is more concerning and needs investigation.
Do not immediately update Shopify to match your physical count. First, investigate any variance over 5 units or 10%. Common causes: units received but not logged in Shopify, items damaged and removed without an adjustment, theft or shrinkage, fulfillment errors where the wrong quantity shipped, returns received but not restocked in Shopify.
In Shopify Admin → Products → Inventory, use the inventory adjustment tool to update quantities with a reason code. Use the correct reason: "Correction" for count discrepancies, "Received" for unlogged shipments, "Damaged" for units that cannot be sold, "Theft or loss" for shrinkage. Reason codes matter for your records and for identifying patterns over time.
Save your completed audit spreadsheet with the date, the variances found, the root causes identified, and the adjustments made. Review it before the next audit. Are the same SKUs showing variances repeatedly? That points to a specific process problem — a receiving step being skipped, a product that's frequently miscounted, a fulfillment error pattern.
Finding a variance is the easy part. Fixing the number in Shopify without understanding the cause means the same discrepancy will be back at your next audit.
A shipment arrived and was put away without being marked as received in Shopify or your PO system. Physical count is higher than Shopify.
Implement a receiving audit on every incoming shipment — count units before putting away, log in Shopify immediately.
Wrong quantity packed for an order — more units sent than charged, or less. Physical count does not match either way.
Spot-check packed orders for your fastest-moving SKUs. One pick-and-pack error per 100 orders compounds fast.
Units damaged in storage, broken during fulfillment, or lost — removed physically but never adjusted in Shopify.
Log every damaged or lost unit immediately using Shopify's inventory adjustment with a reason code.
A customer return was received and accepted but the unit was never added back to Shopify inventory.
Build a returns process that includes a Shopify inventory update as part of the receiving step.
Someone adjusted inventory quantities manually and entered the wrong number, or adjusted the wrong variant.
Limit who can make manual inventory adjustments. Require a second person to verify changes over a threshold.
A full inventory audit once a year is the minimum. But stores that only audit once a year spend 11 months operating on slightly wrong stock counts. Cycle counting solves this by spreading the audit work across regular, small sessions.
The key is matching count frequency to product tier. ABC analysis gives you exactly this — it categorises every product into A, B, or C based on revenue contribution, and the count frequency for each tier follows naturally:
A store with 200 SKUs and a typical A/B/C split has roughly 40 A-items, 60 B-items, and 100 C-items. Counting 40 A-items weekly takes about an hour. Counting 60 B-items monthly takes two hours. The 100 C-items get covered quarterly. Spread across 52 weeks, you have counted every product multiple times with a fraction of the effort of one annual panic audit.
Every inventory audit surfaces some products that have not moved in 60 or more days. These are not just an inventory accuracy problem — they are a cash flow problem. Every unit of dead stock is money that could be funding your next bestseller.
When your audit flags a product with zero recent sales and significant stock on hand, act on it before the next audit cycle. The options in order of preference: targeted discount to clear it, bundle it with a fast-moving A-item, flash sale to your email list, return to supplier if still within the return window, or write it off and discontinue.
For a full breakdown of strategies ranked by cash recovery, see our guide on finding and fixing dead stock on Shopify.
A manual audit catches discrepancies that have already built up. Debnix helps prevent them from building up in the first place — and surfaces the ones that do faster.
At minimum, once a year as a full count. In practice, most stores benefit from cycle counting — auditing a rotating subset of products regularly rather than everything at once. Count A-items weekly, B-items monthly, C-items quarterly. This spreads the work across the year and catches discrepancies faster than waiting for an annual audit.
A full inventory audit counts every SKU at once and typically takes 1-2 days for a small store. A cycle count audits a rotating subset of your catalog on a regular schedule — a few products per week — so that every SKU gets counted over a defined period without stopping operations. Most stores use cycle counting as their primary method and do one full audit per year.
For a cycle count covering a small subset of products, yes — you can count a few SKUs without pausing operations. For a full inventory audit, it is strongly recommended to pause fulfillment for a few hours while you count. Counting against live order activity means your numbers will be slightly wrong by the time you finish, making reconciliation harder.
The most common causes are: receiving shipments without logging them in Shopify, fulfillment errors where the wrong quantity ships, returns received but not added back to inventory, damaged units removed physically but not adjusted in the system, and manual adjustment errors. Identifying which cause is creating your discrepancies is more important than just fixing the numbers — the same variance will reappear if the root cause is not addressed.
Shopify Admin does not have a dedicated inventory audit workflow. You can export inventory counts to CSV, make manual inventory adjustments with reason codes, and view adjustment history. For a formal audit process with variance tracking, discrepancy analysis, and cycle count scheduling, you need either a structured spreadsheet process or a third-party inventory app.
Go to Shopify Admin → Products → Inventory. You can update individual product quantities inline, or use the CSV import to update multiple products at once. Always use reason codes when adjusting — Correction, Received, Damaged, or Theft and Loss. Reason codes create a traceable history of adjustments that is useful for accounting, loss prevention, and spotting patterns across multiple audits.
Debnix connects to your Shopify store and gives you ABC analysis, dead stock detection, purchase order tracking, and reorder point alerts — all the tools that prevent inventory drift before it needs an audit to fix. $21.99/mo, 30-day free trial.
Built solo from Nepal.