Blog
Why your Shopify stock count drifts, and six ways to stop it
The six places Shopify inventory goes wrong in a real store, how to work out which one is costing you, and the fixes that hold without adding a daily count.
4 min read
Every store we work with says a version of the same thing: “the numbers are about right, but we do not trust them.” Usually they are right not to.
Stock drift is not one mistake. It is six small ones, none of which look serious on the day. Over a quarter they add up, until the number on screen and the number on the shelf have nothing to do with each other.
Here is where it comes from, in the order it usually costs the most.
1. Receiving
The biggest single source, and the easiest to fix.
Stock booked in from a delivery note instead of a count. Stock booked in two days late. Part deliveries closed early. Every one of these puts a number into Shopify that was never actually verified against the boxes.
The fix. Count into the purchase order while unpacking, book in the same day, and record every short or over line. We wrote up the full method in how to receive a purchase order in Shopify.
2. Returns that never come back
A customer returns a jacket. The refund goes through, so the money is right. The jacket sits in a pile behind the counter for two weeks before anyone puts it back on the shelf, or nobody ever does.
Shopify has an option to restock on return, and it is easy to tick when the item is not actually back in sellable condition.
The fix. Two piles, and one rule: nothing goes back into stock until someone has looked at it. Restock at the moment it goes back on the shelf, not at the moment the refund is issued.
3. Damage nobody wrote down
A box gets dropped. Two items are unsellable. They go in the bin, and Shopify still thinks you have them.
This one is quiet because there is no transaction attached to it. Nothing prompts anyone to record it.
The fix. Make a damage adjustment as easy as throwing the item away. If recording it takes longer than binning it, it will not get recorded.
4. Multi-location confusion
Stock received into the warehouse when it went to the shop. Stock transferred in Shopify but not physically moved, or moved but not transferred.
The symptom is distinctive: the total across locations is right, but each individual location is wrong. If your totals look fine and your shop floor keeps running out, this is your problem.
The fix. Receive into the location the boxes are physically standing in, and make transfers a two-step confirmation: sent, then received.
5. Theft and loss
Real, and usually smaller than people expect in a store that has the other five under control. Around one to two percent of stock in a typical small retailer, depending on what you sell.
It matters that this is last on the list, not first. Blaming shrinkage is comfortable because it is nobody’s process. Most of the time the process is where the stock went.
The fix. Get the other five right first. Whatever is left after that is your real shrinkage figure, and now you can act on it.
6. The annual stocktake
Counting everything once a year, badly, in one long day, is worse than not counting at all. You correct twelve months of drift in a single adjustment, learn nothing about what caused it, and start the same drift again the next morning.
The fix. Cycle counting. Count a small number of lines often instead of everything rarely.
What cycle counting looks like in a small store
You do not need software or a shutdown.
- Pull your twenty fastest-selling variants.
- Count those twenty every Monday morning, before opening. It takes about fifteen minutes.
- Write down the difference, not just the correction.
- Once a month, look at the differences together.
That last step is the one that pays. A single line being out by three is noise. The same line being out by three every week is a process telling you something: a mis-picked variant, a barcode on the wrong shelf, a supplier sending inners as outers.
Fix the cause before the number
The tempting move when you find a discrepancy is to correct Shopify and move on. Do that and you will be back next month.
For every correction, write one line saying what you think caused it. Receiving, return, damage, transfer, unknown. After a month you will have a tally, and it will point straight at the process to change. In almost every store we have done this with, the top row is receiving.
If most of your corrections trace back to goods-in, scanning deliveries against the order will move your accuracy further than any other single change. PLACEHOLDER does exactly that job, and there is a free plan if you want to test the idea on one location before rolling it out.
And if the reason you are not scanning yet is that half your products have no barcode, start with barcode types every Shopify store should know.
Product
Decides what we build next by watching people receive stock, not by reading feature requests. Says no to about nine ideas in ten, which is the job.
Related reading
How to receive a purchase order in Shopify
A step by step method for booking in a delivery against a purchase order in Shopify, why counts drift, and how to handle short and over deliveries.
Priya Raghunathan
5 min read
Barcode types every Shopify store should know
EAN, UPC, Code 128 and QR explained in plain English, which one belongs in Shopify's barcode field, and what to do when a product has none.
Tom Beckwith
4 min read