Guide

Why Is My Shopify Inventory Always Wrong?

L

Landara Team

FIFO Cost of Goods Sold for Shopify

||8 min read
TWO VERSIONS OF THE TRUTHSHOPIFY ADMINSKU: KET-BLK-0184units on handWhat the report saysTHE SHELFCounted on Saturday71units you can touchWhat is actually thereTHE GAP13units of mysteryWhere the gap comes fromReceipts neverenteredReturns notrestockedBundles andkitsDamage andtheftCSV edits andfat fingersEvery unit in the gap is money: it was bought, it cost something, and nobody knows where it went

Shopify inventory goes wrong because the number is only as good as the last human action that touched it. Unrecorded receipts, returns that never make it back to the shelf, bundles, POS sales and plain shrinkage all push the count away from reality, and nothing in Shopify pushes it back.

If you spend part of every week comparing a Shopify export to what is physically on the shelf, you are in good company. Ask any group of merchants about inventory and the same story comes back: the counts drift, nobody knows exactly why, and the reconciliation never ends.

This guide covers where the drift actually comes from, why it never fixes itself, and how to turn an endless chore into a short monthly routine that also produces numbers your accountant can use.

What Drift Actually Costs You

A wrong count is never just a wrong count. It cascades:

  • Oversells and stockouts. Shopify happily sells the 13 units that exist only in the database, and you spend Monday writing apology emails.
  • Dead cash. Stock the system says you have does not get reordered; stock it says you lack gets bought again. Both mistakes tie up money.
  • Wrong margins. Every vanished unit was bought and paid for. If it disappears without being recorded, its cost never reaches your cost of goods sold, and your gross margin reads higher than it really is.
  • The weekly tax. The hours spent exporting CSVs, walking aisles and hunting discrepancies are hours not spent running the store.

That third point is the one most merchants miss. Inventory drift is not just an operations problem; it quietly falsifies your profit numbers. Which is why fixing it properly means fixing the cost record, not just the count.

The 6 Causes of Inventory Drift

CauseWhat happensDirection
Unrecorded receivingA delivery is shelved before anyone updates Shopify, or a partial delivery is entered as completeEither
ReturnsRefund processed, item never restocked (or restocked but unsellable)System high
Bundles and kitsThe bundle SKU sells but component counts are adjusted by hand, late or not at allSystem high
Multi-channel and POSSales on other channels or in person sync late, partially, or against the wrong locationEither
ShrinkageDamage, theft, samples given away, units lost in the warehouseSystem high
Manual editsCSV imports, quick fixes and fat-fingered adjustments, none of them documentedEither

Notice that most causes push the system count above reality. That is why physical counts so often come back short, and why the shortfall is usually real money already spent.

Why It Never Fixes Itself

Shopify is an honest bookkeeper of the events it is told about. It is never told about the box crushed in the warehouse or the return that went in the bin. Errors do not cancel out; they accumulate. A store that has never counted is not drifting around the right number, it is walking steadily away from it.

The usual response is more spreadsheet: weekly exports, VLOOKUPs against last week, a growing tab of unexplained differences. The spreadsheet documents the drift; it does not reduce it. And because it tracks only quantities, it says nothing about what the missing units cost, which is the part your accountant actually needs.

The Standard Worth Aiming For: Finance-Grade Inventory Truth

The goal is not inventory tracking for its own sake. It is finance-grade inventory truth: counts verified against the shelf, landed cost allocated into every unit, FIFO cost layers behind every sale, and a variance that gets costed and posted instead of shrugged at. Get there and the weekly reconciliation ritual disappears, because the numbers stop needing to be argued with.

The Fix: Counted Checkpoints, Not Constant Vigilance

You will not stop drift at the source. Returns will still be mishandled and boxes will still get crushed. What works is accepting that, and installing checkpoints:

  1. Count on a cadence, in slices. A rolling cycle count (top sellers monthly, the long tail quarterly) beats a giant annual stocktake that everyone dreads and postpones. A barcode scanner turns an evening of counting into an hour.
  2. Fix receiving and returns first. The two biggest leaks respond to process: stock is not shelved until Shopify says it arrived, and a refund is not finished until the item is restocked or written off. One rule each.
  3. Correct the system, with a record. When the count disagrees with Shopify, the shelf wins. Adjust the count, and keep a record of the variance rather than silently overwriting it, because the variance is information: it tells you which leak is still open.

Cost the Variance, Don't Delete It

Here is the step almost everyone skips. When you find 13 units missing, editing the count from 84 to 71 makes the operational problem go away, and quietly creates an accounting one: those 13 units were bought, and their cost is sitting in your inventory value, inflating it. Until that cost moves to a shrinkage or COGS account, your stock is overstated and your margin is overstated with it.

Done properly, a count produces two outputs: a corrected quantity in Shopify, and a costed variance in your books (shrinkage valued at what the missing units actually cost, found stock added at its real cost). That second output is what makes the count worth doing, and it requires knowing the cost of each unit, which is a FIFO cost layer question.

How Landara Helps

Landara does not replace Shopify's inventory tracking; Shopify keeps owning quantity. What Landara adds is the cost side, and the checkpoints:

  1. Stocktakes with barcode scanning. Run a persisted, resumable count against a location, on-hand or available basis, with open orders handled so they never read as shrinkage.
  2. Variance, costed automatically. The review screen prices every discrepancy at its FIFO cost. Committing posts shrinkage as a costed adjustment and adds found stock as a new cost layer, and can push the corrected counts back to Shopify.
  3. Reconcile between counts. A reconciliation view compares Shopify's on-hand to Landara's costed position per SKU and location, so drift surfaces as a short list of findings instead of a weekend of CSV archaeology.
  4. The books follow. Shrinkage posts to a dedicated account, separate from the monthly Dr COGS / Cr Inventory journal, so your accountant sees exactly what was sold versus what was lost.

Drift is inevitable. Losing hours to it every week, and carrying falsified margins because of it, is not.

Make Your Next Count Your Fastest

Connect Shopify, run a barcode stocktake, and get every variance costed automatically. Free up to 250 orders a month.

Try Landara Free
L

Written by Landara Team

FIFO Cost of Goods Sold for Shopify

The Landara team is dedicated to helping Shopify merchants and importers get finance-grade cost of goods sold without running an inventory system.

Related Articles

THE FORMULA DOES NOT COMPUTE COGS. IT BACK-SOLVES IT.TWO VERY DIFFERENT QUARTERSQuarter A750 units sold to customersnothing lostQuarter B700 units sold to customers50 units gone, nobody knows howTHE SAME THREE INPUTSBeginning inventory$4,800+ Purchases$9,600- Ending inventory$4,000COUNTED, NOT CALCULATED250 units on the shelf, either waybecause the 50 are not there to countONE ANSWERCost of goods sold$10,400Quarter A revenue $24,000Quarter B revenue $22,400$800 of loss, filed as cost of salesWhatever is missing from the count becomes cost of goods sold, by definition.And every receipt of stock arrives at a different price, so all three inputs are valuations.
Guide

COGS Formula: What It Calculates, and What It Hides

11 min read

THE ENTRY TAKES TEN SECONDS. THE AMOUNT TAKES A LEDGER.RECEIPTS OF STOCK12 March600 units, goods $6,000freight, duty, clearance $1,200$12.0028 April400 units, goods $4,800freight, duty, clearance $1,400$15.50MAY SALES, OLDEST LAYER FIRST450 units shipped150 x $12.00 = $1,800300 x $15.50 = $4,650$6,450the cost of the units that leftTHE JOURNALDr Cost of Goods Sold$6,450Cr Inventory$6,450A COST PER SKU WOULD HAVE SAID450 x $10.00 = $4,500$1,950 of margin you never hadEvery receipt of stock arrives at a different price, and your store keeps one.Cost of sales plus closing stock has to add back to what came in. A report never has to.
Guide

COGS Journal Entry: How to Prepare One You Can Defend

8 min read