Inventory Shrinkage on Shopify: How to Measure, Audit and Reduce It

Inventory shrinkage is the gap between the stock your records say you have and the stock you can actually find. This guide shows how to calculate it, how to run a count-based audit, and how to close the leaks that cause it most often.

What is inventory shrinkage?

Say your Shopify admin shows 100 units of an item, and a physical count finds 94. The 6 missing units are shrinkage. The units may have been stolen, damaged, miscounted, mis-shipped or never received. The records simply no longer match the shelf.

Shrinkage does not need one big event. It can build up from many small errors: a receiving count that was off by two, a damaged unit thrown away without an adjustment, a return restocked to the wrong SKU. Each one is minor, and together they distort your numbers.

The cost goes beyond the missing goods. If records show more stock than exists, you can sell items you do not have, which leads to cancellations, refunds and unhappy customers. Reorder decisions made from inflated counts also arrive late.

The shrinkage formulas

Variance (units) = recorded quantity − counted quantity
Shrinkage rate (%) = ((recorded inventory − actual inventory) ÷ recorded inventory) × 100
Shrinkage cost ($) = recorded inventory value − actual inventory value

A positive variance means you have fewer units than the records say. A negative variance means you have more, which can point to an unrecorded receipt, a return or a mis-pick somewhere else. Value inventory at your cost, not your selling price, so the dollar figure reflects what you actually lost.

Hypothetical example. Your records show 1,200 units across all SKUs. A physical count finds 1,158.

Shrinkage rate = (1,200 − 1,158) ÷ 1,200 × 100 = 42 ÷ 1,200 × 100 = 3.5%.

If every unit costs $30, recorded value is 1,200 × $30 = $36,000 and actual value is 1,158 × $30 = $34,740. Shrinkage cost = $36,000 − $34,740 = $1,260.

Net versus gross shrinkage

Totals can hide problems, because a surplus on one SKU offsets a shortage on another. Calculate both a net figure (all variances added together) and a gross figure (shortages only).

Hypothetical example. SKU A is recorded at 100 and counted at 94, so the variance is +6. SKU B is recorded at 50 and counted at 54, so the variance is −4. Total recorded is 150 units.

Net shrinkage = (6 − 4) ÷ 150 × 100 ≈ 1.3%. Gross shrinkage = 6 ÷ 150 × 100 = 4.0%. The net figure looks mild, but SKU A is short by 6 units. SKU B may be holding units that belong to SKU A (a mis-pick or wrong-variant restock), or it may have an unrecorded receipt. Investigate both.

Some stores express shrinkage as a share of sales instead of inventory. Either works. Pick one denominator and keep it fixed so your trend is comparable from month to month.

Common causes of shrinkage

Categories overlap, but sorting your variances into these groups tells you where to focus.

1. Administrative and process errors

For an online-only store with no walk-in customers, paperwork and process errors are a sensible place to start looking. Your own audit will show what applies to you. Examples:

  • Receiving mistakes: a supplier ships 48 units and someone logs 50.
  • Returns handled wrongly: a customer is refunded, but the item is never added back, or it is added to the wrong variant.
  • Pick and pack errors: a Medium ships instead of a Large. Two SKUs now have wrong counts, and the customer may return the item.
  • Manual adjustment typos: 10 entered instead of 100, or the wrong SKU edited.
  • Sync delays between channels: a sale on one channel reaches your other channels late, so the same unit can sell twice. That is an overselling problem more than a missing-stock one, but the cancellations and manual fix-ups it triggers can leave counts wrong.
  • Transfers between locations: stock leaves one location and is never received at the other, or is received at the wrong one. Shopify tracks quantities per location, so a transfer that is not recorded on both ends shows up as a shortage in one place and a surplus in another. See multi-location inventory management.

2. Supplier short-shipments

Sometimes a supplier's packing slip or invoice says one thing and the box holds another. It may be honest miscounting at their end rather than fraud, but the effect on your books is the same: you pay for units you never got. The fix is to count inbound shipments against the packing slip or purchase order before accepting them. See purchase order management.

3. Internal theft or misuse

Exposure depends on how many people can handle stock and change records, and on how strong your controls are. It can look like extra items in shipments, returns marked unsellable and taken home, or fabricated adjustments. Segregation of duties (the person who receives stock is not the only person who adjusts it) and a reason for every adjustment make it easier to see.

4. Damage and spoilage

Items break, expire or get crushed in storage and handling. The loss is real, but the recording failure is the bigger problem: a damaged unit left in a "deal with later" pile is still counted as sellable stock. Perishables need extra attention. See food and beverage inventory management.

How to run a shrinkage audit

  1. Export book inventory. Shopify lets you export inventory levels to CSV. That is what your system believes you have. Note the date and time of the export.
  2. Freeze movements and count. Count every unit by location. Pause receiving and shipping during the count, or record any movement in the meantime so you can adjust for it. Use a barcode scanner if you have one, because manual counts of large catalogs are error-prone.
  3. Calculate variance per SKU. Use recorded minus counted. Check any large variance by counting again before you act on it.
  4. Sort the variances into causes. Treat each pattern as a lead to check, not a conclusion. High-value items with small shortages may reflect supplier short-shipments, theft or miscounts. Low-value items with large swings may reflect counting or entry errors. A shortage on one SKU matched by a surplus on a similar SKU may reflect mis-picks or wrong-variant restocks. Perishables with steady losses may reflect damage or expiry.
  5. Calculate rates. Work out net and gross shrinkage, in units and in dollars. Break it down by location, product category and supplier to see where the problem concentrates.
  6. Adjust the records. Correct system quantities to match the count and record a reason for each adjustment, so the next audit has history to compare against.

Seven ways to reduce shrinkage

1. Cycle count instead of relying on annual counts

A full count is disruptive, so it happens rarely and finds problems late. Cycle counting means counting a few SKUs every day or week. It works best when you count important items more often.

Hypothetical example. You have 500 SKUs and time for 25 counts a week (5 a day). Counting evenly, each SKU is counted every 500 ÷ 25 = 20 weeks. Instead, you could count your 50 highest-value SKUs every 4 weeks, which uses 50 ÷ 4 = 12.5 counts a week. The other 450 SKUs then share the remaining 12.5 counts a week, so each is counted every 450 ÷ 12.5 = 36 weeks. The ABC analysis approach is a natural way to decide which SKUs go in the frequent group.

2. Tighten receiving

Count each inbound shipment against the packing slip or purchase order before updating inventory. Record discrepancies immediately, with photos if useful, and raise the issue with the supplier while the shipment is fresh.

3. Scan barcodes at pick, pack and receive

Scanning replaces "read the name and grab it" with a check that the right variant was picked. This cuts down wrong-variant errors.

4. Hold a buffer if you sell on several channels

Overselling is not shrinkage in itself, but the cancellations and manual fix-ups it triggers can leave your counts wrong. If your channels update with a delay, list slightly fewer units than you hold. For example, with 10 units in stock, show 8 to absorb sync lag. Raise the buffer for fast sellers and lower it when sync is quick.

5. Create a damage write-off process

Inspect, photograph, remove from sellable stock, adjust the quantity and log the reason. A damaged unit should never sit in limbo.

6. Reconcile returns on arrival

Check the returned item against the return request: correct SKU, condition and quantity. Restock it only if it can be sold. If it cannot, record it as damage instead of adding it back to available stock.

7. Require a reason for every adjustment

"Received", "damaged", "returned", "count correction" and "transfer" are enough. A reason code turns a vanishing quantity into data you can analyze, and it discourages careless or fraudulent edits.

Why shrinkage undermines forecasting

Reorder decisions depend on inputs that include how much you have, how fast it sells and how long resupply takes. If recorded stock is higher than real stock, you reorder late and run out of items the system says you have. While the product is out of stock, it records no sales. A later review sees low sales and can read it as low demand, which lowers the next forecast even though customers were willing to buy.

Accurate counts are the base for reorder points, safety stock and purchase quantities. See reorder point formula, safety stock formula and preventing stockouts. For a broader look at forecast quality, see improving forecasting accuracy.

Shrinkage prevention checklist

  • Every inbound shipment is counted against the packing slip or purchase order before inventory is updated.
  • Cycle counts run on a fixed schedule, with higher-value and fast-moving SKUs counted more often.
  • A full count happens at least once a year, and more often if variances are large.
  • Picking and packing is scanned, not read by eye.
  • Channels carry a buffer if sync is not instant.
  • Damaged items have a written write-off process.
  • Returns are inspected before they are restocked.
  • Every adjustment has a reason code and a name.
  • Net and gross shrinkage are calculated and tracked monthly.
  • Supplier shortages are reported promptly, while you can still dispute them.

Key takeaways

  • Shrinkage is recorded stock minus counted stock. Calculate both net and gross rates, in units and in dollars at cost.
  • Administrative and process errors are worth checking first. Your audit shows what applies to you.
  • Cycle counting catches errors earlier than annual counts, especially when high-value items are counted more often.
  • Reason codes, receiving checks and return inspections catch record errors where they start.
  • Bad counts distort every downstream decision, including reorders and forecasts. See also dead stock management for what to do with units that exist but do not sell.