ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides9 min read

The count sheet that survives a real stock take (built from your Shopify CSV)

An inventory count sheet template built from your Shopify CSV export: blind-count columns, variance reason codes, and the same-day posting rule.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

The generic count sheet fails in a specific, predictable way. A sock retailer prints a template from a search result on Thursday — alphabetized, no bin column, no timestamp. Saturday morning, three staff spread across the stockroom with that sheet. Two things have already broken it: a 60-unit PO received Friday afternoon that appears nowhere on the page, and a Shopify store that kept selling online while the counters worked. Every variance they record is now a blend of real shrinkage and stale data, and nobody can separate the two afterward.

A count sheet works when it's generated from live data the morning of the count, sorted by physical location, and posted back into Shopify the same day. Get those three things right and the template itself barely matters. Below is the version that holds up — the columns, a filled example, the build process from your own inventory CSV, and the posting rule that keeps it honest.

The template

One row per SKU-variant-location. Twelve columns, no more:

Zone / bin SKU Product & variant Expected (frozen) Counted Counter Match Variance Reason code Recount Posted Posted by
B2-3 HSO-MRN-CHR-M Merino crew — charcoal, M 42 39 JT No −3 UNK Yes Y 11/2 RK
B2-4 HSO-MRN-CHR-L Merino crew — charcoal, L 58 58 JT Yes 0 — — — —
C1-1 PHN-STND-BLK Phone stand — black 116 121 AR No +5 REC No Y 11/2 RK
C1-2 HSO-WOOL-GRY Wool boot — gray 24 21 AR No −3 DMG No Y 11/2 RK
D4-2 STN-NB-3PK-NVY Notebook 3-pack — navy 75 75 JT Yes 0 — — — —

What each column is for, and why the template-farm versions get it wrong:

  • Zone / bin first, not SKU first. Counters walk the floor; the sheet should too. Alphabetical order makes people crisscross the stockroom and skip rows. If your bins aren't coded yet, a two-character zone scheme is an afternoon of label printing — the bin location labeling guide has the code system.
  • Expected (frozen). The quantity from the morning export, never updated mid-count. The freeze timestamp in the sheet header is what makes variances interpretable later.
  • Counter initials. When one zone keeps missing, you'll want to know whose counting style it is — this column is how count programs catch training gaps instead of blaming ghosts.
  • Reason code. A variance with no cause is a discrepancy you've scheduled to repeat. Codes are faster than prose on the floor.
  • Recount. Flag, don't fix, anything that looks like a miscount (transposed digits, whole-case differences). The reconciler recounts flagged rows before anything posts.
  • Posted / Posted by. The audit column. A count that was never posted back didn't happen.

Print two versions. Counters get a blind sheet — same rows, Expected column removed — so nobody anchors on the number they're supposed to find. The reconciler keeps the full version for comparison.

Build it from your Shopify CSV in five steps

The sheet is only as good as its expected quantities, so generate it fresh:

  1. Export the morning of the count. In the admin, export your inventory as a CSV for the location you're counting — this is the same export the Shopify inventory CSV guide maps column by column. Keep Handle, SKU, option values, and the per-location quantity columns; delete the rest. A Friday export used on Saturday is how the received-PO problem from the opening gets baked into your variances.
  2. Timestamp and freeze. Put the export time in the sheet header ("Expected frozen 2026-11-02 08:40"). Everything sold or received after that moment belongs to the reconciliation step, not the count.
  3. Add your zone column and sort by it. Pull bin codes from product metafields if you store them there, or just paste zones in by hand for a first count. Sort ascending — the sheet now mirrors the walk.
  4. Duplicate the sheet and delete Expected from the counter copy. You now have a blind sheet and a reconciler sheet, same row order.
  5. Print, or share read-only. For a spreadsheet-first team, the reconciler copy doubles as the posting worksheet — variance math happens right next to the frozen expected.

One boundary worth a sentence: this is the counting artifact — a disposable worksheet whose job ends when variances post. The static stock record you keep for insurance schedules or tax files is a different document with a longer life, and the inventory list template guide owns that one. Don't merge them; the count sheet is supposed to die after the count.

Posting results back the same day

A count sheet that sits in a binder until Monday is a liability — the store keeps selling, and your variances rot. Two posting routes, both native:

The Shopify count tool as system of record. Shopify's native stock counts let you pick a location and scope, have staff record quantities by barcode scanner or keyed entry, and require a manager review before inventory levels change — approving applies the counted-versus-expected differences and logs each change in the adjustment history (Shopify Help Center, "Stock counts," accessed November 2026). If your team counts on tablets or phones, skip the paper entirely and run the count in there.

The paper sheet as the floor layer. If your team counts better with pen and clipboard — many retail crews do, especially during a full stock take — the paper sheet feeds a manual posting: set each mismatched variant to the counted quantity using the Set to adjustment with the reason Count, which Shopify's Help Center documents as the reason for exactly this case: a discrepancy found by counting physical stock (Shopify Help Center, "Adjusting inventory quantities," accessed November 2026). The adjustment history then shows each correction as "Inventory manually counted," with the date and who made it.

Either way, the same-day rule closes the loop on the opening trap: before posting, check what changed since your freeze timestamp. Orders that sold online during the count, the Friday PO that received late, transfers marked in — the native tool's review stage surfaces the counted-versus-expected comparison for you, and the paper flow needs the equivalent glance at the order log. Post the sheet against the world as it is now, not as it was at 8:40 am.

The reason codes that make the sheet worth keeping

A count produces variances; reason codes produce causes. Keep the code list short and map each one to the Shopify adjustment reason at posting time:

Sheet code Meaning Shopify reason at posting
REC Receiving error — shipment posted wrong or not posted Correction, after the receipt is fixed
DMG Damaged or unsellable on the shelf Damaged
POS Sold in-store but not synced / keyed late Correction
UOM Case-vs-each error Correction
UNK Unexplained Theft or loss

The mapping matters beyond tidiness. "UNK is unexplained" is honest; booking unexplained losses as "Correction" is how a real theft pattern hides inside generic cleanup for a year. If the UNK column grows across counts, that's a shrinkage investigation, and the prevention stack is a separate discipline from counting.

For the sock retailer's Saturday: 96 SKUs counted, 9 mismatches. The sheet above shows three of them — net across all nine, −11 units, and valued at cost about −$84.30 at a blended sock cost around $5–7 (illustrative). Five of the nine traced to one cause: a receiving error on the Tuesday carton. That single finding was worth more than the other eight combined — it corrected next week's reorder, not just last week's record. And when this was the year-end take, the same sheets went in the annual file as support for the valuation, which the year-end inventory count guide treats as an accounting event rather than just an ops chore.

Common questions

What columns should an inventory count sheet have? At minimum: zone or bin location, SKU, product and variant description, expected quantity frozen at export, counted quantity, counter initials, variance, reason code, and a posted confirmation. Add a recount flag for suspicious variances. Anything beyond those ten or so columns slows the floor down without improving the data.

Should a count sheet show expected quantities? Not to the person counting. Show expected quantities only to the reconciler: counters who see the expected number tend to confirm it, which turns the count into a self-fulfilling document. Print a blind version without the expected column for counters, and keep the expected-quantity version at the desk for comparison and posting.

How do I make a count sheet from Shopify? Export your inventory as a CSV the morning of the count, keep the SKU, variant, and quantity columns, add a zone/bin column, sort by it, and delete the expected-quantity column from the counter's copy. Freeze and timestamp the expected quantities at export so every variance traces back to a known moment in your sales day.

What's the difference between a count sheet and an inventory list? A count sheet is a disposable worksheet for one count session: expected versus counted, variances, reasons, and it dies once posted. An inventory list is a living record of what you own — used for insurance schedules, valuations, and tax support — maintained continuously. Count sheets feed the list; they don't replace it.

How do I post count sheet results into Shopify? For each mismatched variant, set the inventory quantity to the counted value using the Set to adjustment with the reason Count — or run the whole count through Shopify's native stock counts tool and approve it. Both routes log the correction in the adjustment history with date, quantity, and who posted it, which is your audit trail for the count.

Next step

Export your inventory CSV today and build the sheet for just one zone — your highest-velocity shelf — then count it at close of day and post it before you leave. One zone, one evening, end to end. If the variances that surface need a process fix rather than a quantity fix, the counting cadence and workflow behind them live in the full Shopify counts guide.