In this article
Download the sheet and the checklist, copy your on hand quantities from Shopify into the Expected column, hide that column, count into Counted, then read Difference. Red lines are short and amber lines are over. Recount the big gaps before you change anything in Shopify. Both files are free, with no sign-up.
What is in the sheet#
A stocktake (some people say stock take) is a count of what is on your shelves, compared with what your records say. The file has three tabs. Instructions explains the steps in plain English. Count is where you work, one row per variant. Summary reads the Count tab and shows the totals. Here is every column on the Count tab.
| Column | What goes in it | Why it is there |
|---|---|---|
| Location, Shelf or bin | Where the stock sits | So two people never count the same shelf |
| SKU, Product, Variant | Copied from Shopify | So a person can find the line |
| Expected | Shopify's on hand number when you copied it | The number your count is compared with |
| Counted | What you found | Type 0 for an empty shelf, leave blank if not reached |
| Difference | Counted minus Expected | A formula. Red short, amber over |
| Unit cost, Value difference | Your cost, and Difference times cost | Shows what a gap is worth |
| Counted by, Notes | Initials, damaged or open units | So a recount can start from the notes |
Three things are built in. Counted accepts only whole numbers of 0 or more. A totals row stays on screen under the header. The tab prints sideways, one page wide, with the header repeated on every page. There are no macros, because a file we send you should never run code on your computer.
The sheet holds 200 lines. It is made for a section of your stock, not for a whole catalog in one go.
Fill it in: a blind count in five steps#
- Copy Expected from Shopify. Go to Products, then Inventory, then Export, and choose All states for one location. Copy SKU, product, variant, bin name and On hand (current) into the sheet. Write down the date and time.
- Clear the 8 example rows. Select the cells and press Delete. Leave the grey Difference and Value difference columns alone, because they hold the formulas.
- Hide the Expected column. Right click the column and choose Hide.
- Count. One person per shelf. Type what you find into Counted. Type 0 for an empty shelf.
- Unhide Expected and read the result.
A blind count means the people counting cannot see the answer they are expected to find. We recommend it for a plain reason. Someone who expects 24 and finds 23 will often count again until it says 24. Hiding the column removes that pull.
Shopify's export gives you a Bin name column, so shelf labels can come straight from your own catalog if you use bins. If you do not, type your own shelf names.
Worked example: the eight rows in the sheet#
The example rows are made up and marked EXAMPLE. Seven are counted and one is not.
| SKU | Expected | Counted | Difference | Unit cost | Value difference |
|---|---|---|---|---|---|
| EX-MUG-BLU | 24 | 24 | 0 | 4.10 | 0.00 |
| EX-MUG-GRN | 18 | 16 | -2 | 4.10 | -8.20 |
| EX-TEE-S | 40 | 41 | 1 | 7.50 | 7.50 |
| EX-TEE-M | 55 | 52 | -3 | 7.50 | -22.50 |
| EX-CAN-CDR | 12 | 12 | 0 | 6.25 | 0.00 |
| EX-TOTE-NAT | 30 | 33 | 3 | 3.80 | 11.40 |
| EX-PLT-WHT | 21 | 18 | -3 | 6.30 | -18.90 |
| EX-NTB-A5 | 60 | blank | blank | 2.90 | blank |
The Summary tab adds it up for you. You can redo it by hand.
Lines counted: 7
Lines with a gap: 5 (the mug in green, tee small, tee medium, tote, plate)
Units over: 1 + 3 = 4
Units short: 2 + 3 + 3 = 8
Net units: 4 - 8 = -4
Value of overages: 7.50 + 11.40 = 18.90
Value of shortages: -8.20 - 22.50 - 18.90 = -49.60
Net value difference: 18.90 - 49.60 = -30.70
The sheet shows a net of minus 30.70 in your currency (the examples use dollars). The net hides what happened. Two lines are over and three are short, and the shorts cost more than twice what the overs gained back. Read the lines, not the total alone.
The recount rule#
Before you change Shopify, recount the lines that moved most. We use a rule with two parts: recount any line off by 2 units or more, or by $50 or more in value. It is our rule of thumb, not a standard, so set your own and keep it the same on every count.
On the example, that sends you back to four lines: the green mug (2 units), tee medium (3 units), the tote (3 units) and the plate (3 units). Tee small is off by 1 unit worth $7.50, so it passes.
A percentage rule gets small shelves wrong. One unit short on a shelf of 6 is 16.7%, but it is one unit. Twenty short on a shelf of 400 is 5%, and it is a lot of stock. Units and value together catch both.
One mistake to avoid: typing 0 on every line you have not reached, to make the sheet look finished. A 0 is a count. It says "I looked and there was none", and if it gets applied it sets the stock to nothing. Leave unreached lines blank.
Getting the numbers back into Shopify without wrecking them#
The sheet never writes to Shopify. You have two routes.
By hand, enter the corrected quantity for each line that moved. That is fine for a dozen lines.
By CSV, use Shopify's inventory file. Its export has an On hand (current) column and an On hand (new) column. Put your counted numbers in On hand (new) and import the file from Products, then Inventory, then Import. Shopify's help center says that when both columns are in the file, it compares your expected numbers with the live ones, and rows that changed after your export are skipped, with an email listing them (Shopify help: inventory CSV, checked 15 Oct 2026). Matching rows is on you, because the sheet and the Shopify file use different columns.
Here is why that check matters. Say Shopify showed 12 when you copied it, you counted 10, and then two sold.
Expected 12, counted 10, difference -2
Shopify now holds 10 (12 - 2 sold)
Shelf holds 8 (10 counted - 2 sold)
Write the counted total 10: Shopify says 10, shelf says 8. Two too high.
Write the difference -2: 10 - 2 = 8. Correct.
Shopify skips that row on import, because the live 10 no longer matches the 12 in your file. Export again, or enter minus 2 by hand. Shopify says clearing On hand (current) turns the protection off, so leave it in.
This is also why a count is safest in a small section, finished in one sitting. Our article on counting while the store keeps selling goes through the arithmetic in more detail, and our full stocktake guide covers the rest of the method.
When a spreadsheet stops being enough#
A sheet is a good first count. It stops being enough when:
- Copying quantities in and typing them back costs more time than the count. At 2,000 variants, that is 2,000 numbers copied out and 2,000 typed back, plus a paper step if you count on clipboards.
- Orders keep landing during the count. The sheet does not know about them.
- You count often. Weekly counts of a few hundred lines mean rebuilding the sheet every time.
- A typo gets through. The sheet rejects text and negatives, but it cannot tell that 100 was meant to be 10.
A USB scanner can type a code into a cell, but the sheet will not add one to Counted for each scan. If you are weighing other free options, our page on free stocktake software lists what to check.
Pick one shelf tomorrow. Count it blind, write down the gap, then count the same shelf again next week.
Frequently asked questions#
Is the stocktake sheet free, and do I need to sign up?
It is free and there is nothing to sign up for. Download the .xlsx and the PDF checklist and use them as many times as you like. The sheet has no macros and makes no connection to Shopify or to us.
How do I get my counts back into Shopify?
Export your inventory from Products, then Inventory, copy the On hand (current) numbers into the sheet's Expected column, and count. When you are done, type the new numbers into the On hand (new) column of a Shopify inventory CSV and import it, or enter the changes by hand. Shopify skips any row that changed after your export.
Should the people counting see the Expected number?
No, if you can avoid it. Hide the Expected column while people count and unhide it when the counting is done. Someone who knows the answer should be 24 will often count again until it says 24.
Does the sheet work in Google Sheets?
It is a standard .xlsx file, and Google Sheets can open those. We checked the formulas in LibreOffice and have not tested Google Sheets, so after you upload it, check that the Difference column and the colors still work.
What should I do with the differences?
Recount the largest ones first, with a second person if you can. Then look for a cause: a delivery never received, a return never restocked, damaged stock never written off or a typo. Change Shopify only after the recount.



