Scan barcodes with a phone app instead of writing tallies, count by zone in pairs who cannot see the system quantity, and stop deliveries and order picking at a fixed cut-off. Then have AI compare the count with your system, group variances by likely cause and list what to recount. Scanning removes the typing; the AI check cuts the investigating.
The hours in a slow stocktake are rarely spent counting. They go on writing numbers down, typing them in, and then chasing variances that turn out to be a case counted as a bottle, two vintages sharing a barcode, or a delivery nobody booked in. A phone scanner fixes the first two jobs. The AI step is useful for the third, because miscounts leave recognisable patterns: variances that are exact multiples of six, equal and opposite variances on sibling products, or a shortfall that matches an open order. Spotting those before you adjust stock is what makes the count trustworthy.
The week before: prep that saves the most time on the day
An hour or two of preparation removes most count-day stalls. Work through this list in the week before.
- Find items without barcodes. Export your product list and filter for a blank barcode field. Print labels for them, or assign internal codes. Every unscannable item becomes a manual search on count day.
- Split shared barcodes. Wine producers often keep the same barcode from one vintage to the next. If your system has separate products for the 2021 and 2022 vintage, scanning will land on whichever it finds first. Give each vintage its own shelf label with an internal code, or set the app to ask which variant when a barcode matches more than one product.
- Decide the counting unit. If a product is sold by the bottle but stored in cases of six or twelve, decide whether counters enter bottles or cases, and write it on the zone sheet. This single rule prevents the largest variances you will see.
- Map zones. Draw the shop, back store and cellar as zones by physical layout (shelves, racks, bays), not alphabetically. Label each zone. Assign each to a counting pair.
- Clear the paperwork. Book in every delivery that has arrived, process pending returns, and get online orders to a clear status (either fully picked and shipped, or not started).
- Check the kit. Charge phones, bring power banks, and test the app in the cellar: basements and cold rooms often have no signal, so check whether your app works offline.
Choosing the scanning app
The right app is usually the one attached to the system that already holds your stock figures, because it avoids an import step. Options for a small shop:
| Option | How counting works | Useful limits and details | Suits |
|---|---|---|---|
| Shopify app inventory scanner | Phone camera scans a barcode; you adjust or set the on-hand quantity for the chosen location | iOS and Android; warns when a barcode matches several products or none | Shopify shops counting directly into live stock |
| Shopify POS Quick Count | Scan or search on a POS device and enter on-hand quantities per session | Up to 1,000 variants per session; submit before starting the next zone | Shops using Shopify POS; zone-by-zone counts |
| Sortly | Stand-alone inventory app with in-app barcode and QR scanning | Item and user limits by plan (Free 100 items and 1 user; Ultra 2,000 items and 5 users); offline mobile access on paid plans | Businesses without a stock system, or with stock in several places |
| Any scanner app that exports CSV | Scan and type counts; export a file of barcode and quantity | You import or compare the file yourself | Businesses whose stock system has no mobile app |
| A Bluetooth barcode scanner | Pairs with the phone or POS device and scans faster than a camera | Worth it once you count more than a few hundred items | Large catalogues and regular counts |
If you used Shopify's Stocky app for stocktakes, note that it stopped working on 31 August 2026; counting now happens in Shopify admin and POS, and Shopify points merchants to Sidekick, its AI assistant, for reorder suggestions. Shopify's own planning guidance is a useful yardstick for time: it suggests a catalogue under 500 variants takes one person about two to four hours, while one over 5,000 variants needs several days counted by zone and three or more people.
Photo-counting apps such as CountThings count uniform items from a picture (manual counting is free; automatic counting is a paid subscription). They work on things like boxes of identical cans on a pallet seen from above. They are not reliable for bottles on a wine rack, where necks overlap and labels face different ways, so test on your own stock before relying on one.
Count day, zone by zone
- Cut-off. Pick a time (after closing is easiest) and stop receiving deliveries and picking online orders. Anything that arrives after the cut-off stays in a marked "after count" area.
- Pairs, blind. One person scans and enters, the other counts aloud. Neither sees the system quantity. Counters who can see "expected: 36" tend to find 36.
- Count every location an item lives in. A popular red may be on the shop floor, in the back store and in an event box. Scanning adds to the running total for that location, so count each location separately rather than trying to add up in your head.
- Open, damaged and samples separately. Open tasting bottles and damaged stock go in their own tally so they do not hide inside good stock.
- Submit the zone before moving on. Finish, submit or save, and mark the zone done on the map. Half-counted zones are where double-counting happens.
- Keep a notes channel. A shared chat or sheet for "barcode not found", "two vintages mixed on shelf 4" and "found 6 bottles of the sparkling in the cellar, not on the system". These notes save an hour of investigation.
A zone sheet, filled in
One sheet per zone, pinned to the shelf end, stops most count-day confusion. The wine merchant's sheet for its back store looked like this halfway through the evening:
| Zone | Covers | Pair | Unit rule | Status | Notes |
|---|---|---|---|---|---|
| B1 | Racks 1-4, reds A-M | Pair 1 | Bottles; full cases = 6 bottles each | Submitted 19:40 | Two vintages mixed on rack 3, split before scanning |
| B2 | Racks 5-8, reds N-Z and rosé | Pair 1 | Bottles | Counting | |
| B3 | Pallet bay: sparkling and gift boxes | Pair 2 | Sparkling in cases of 6; gift boxes each | Submitted 20:05 | Counted in cases: tell whoever checks variances |
| B4 | Spirits cage | Owner | Bottles | Not started | Key with owner |
The note on B3 is the one that mattered: it is exactly the variance the AI check flagged as a likely case-versus-bottle mix-up. When a note like that exists, feed it to the assistant with the files and it will usually connect the two for you.
After the count: an AI variance check before you adjust anything
Export two files: the system stock before the count (product, SKU, barcode, quantity, unit cost) and the counted quantities. Upload both to an assistant that can run calculations on files, such as ChatGPT's data analysis or Claude's analysis tool. Stock files do not usually contain personal data, but they do reveal your costs, so use a plan that does not train on your content.
Attached: system_stock.csv (SKU, Product, Barcode, CaseSize, SystemQty, UnitCost)
and count.csv (SKU, CountedQty, Zone). Quantities are in bottles.
1. Join them on SKU. Calculate variance (counted minus system) in bottles and at cost.
2. Flag any line with a variance over 5% of system quantity OR over $50 at cost.
3. For flagged lines, suggest the most likely cause from this list, with a reason:
- UNIT: variance is an exact multiple of CaseSize
- VINTAGE: an equal and opposite variance on a product with the same name,
different vintage
- TIMING: I'll attach open_orders.csv and unbooked_deliveries.csv; check them
- UNKNOWN: none of the above
4. Output a recount list sorted by value at cost, largest first.
5. Show the total variance at cost for all lines and for flagged lines only.
An illustrative extract of what comes back:
Total variance at cost: -2,430.60 across 1,240 SKUs (flagged lines: -2,291.40)
1. Sparkling brut NV System 48 Counted 8 -40 -1,040.00 UNIT: counted
in cases? 8 x 6 = 48 would match system
2. Reserva red 2019 System 12 Counted 36 +24 +384.00 VINTAGE: 2020
Reserva red 2020 System 36 Counted 12 -24 -408.00 same name
3. Pinot Noir 2022 System 30 Counted 12 -18 -306.00 TIMING: 18 bottles
on 4 open online orders packed before cut-off
4. Dry gin 70cl System 6 Counted 18 +12 +198.00 TIMING: delivery
note dated yesterday, not booked in
5. Malbec 2021 System 24 Counted 18 -6 -57.00 UNKNOWN
6. Single malt 12 year System 9 Counted 6 -3 -135.00 UNKNOWN
The first four explain most of the headline variance without anything having been lost. Recount number 1 in cases. Correct the vintage labels on the shelf for number 2 and move the stock back to the right SKU. Number 3 is sold stock waiting for collection by the courier. Number 4 needs its delivery booked in. What is left is small and real: six bottles of Malbec (the breakage book showed a dropped case end, never entered on the system) and three bottles of single malt nobody can account for, which is worth a closer look at who has access to that shelf.
One thing to check in the AI's work: in this illustration it also suggested UNIT for a −12 variance on a white wine that is only ever counted by the bottle, because 12 happens to be a case size. The recount showed 12 bottles really were missing (a trade order sent without paperwork). Treat every suggested cause as a reason to recount or look, not as a correction to apply.
A wine merchant's count, in numbers
An illustrative independent wine merchant carries about 1,240 SKUs (most wines split by vintage) across a shop floor, a back store and a small cellar, roughly 14,800 bottles in all. Its old stocktake used printed lists and clipboards.
| Stage | Before: paper lists | After: phone scanning and AI check |
|---|---|---|
| Preparation | 1 hour printing lists | 2 hours labelling unbarcoded items and splitting vintages (first time only) |
| Counting | 3 people for 8 hours = 24 person-hours | 2 pairs for 4.5 hours = 18 person-hours; about 14 with a Bluetooth scanner the next year |
| Typing counts into the system | 6 hours | None |
| Finding the cause of variances | About 3 hours, often left unfinished | 20 minutes for the AI check, 90 minutes of targeted recounts |
| Total | About 34 person-hours | About 22 person-hours in year one |
The time saving is real, but the bigger change was accuracy. The paper count had typically been posted with the variances unexplained, which meant the system drifted further from reality every year. After the AI check, unexplained variance at cost fell to $192 (the Malbec and the whisky), against a headline figure of about $2,430 before investigation. Posting the raw count would have wrongly written off stock worth over $2,000 and left the sparkling wine showing 8 bottles instead of 48, which would then have triggered a panic reorder.
Variances that are not shrinkage
These patterns recur in almost every stocktake. Give the list to the assistant as part of the prompt, and to the recount team as a checklist.
- Unit of measure. Cases counted as units or units as cases. The variance is an exact multiple of the pack size.
- Variant swaps. Vintages, sizes or colours sharing a barcode or a shelf. Equal and opposite variances on sibling products.
- Sold but not shipped. Orders picked before the cut-off but still showing as stock. Match against open orders.
- Received but not booked. Deliveries on the premises but not on the system. Match against delivery notes dated before the count.
- Breakages and samples. Recorded in a book or a message but never entered on the system.
- Counted twice. The same shelf counted by two pairs, or a zone re-scanned without clearing the first attempt. Variances that are exactly double the system quantity are the giveaway.
Receiving is the source of most timing variances, so it pays to make it automatic: whether AI can read delivery notes and update stock covers that. If you still count on paper in part of the building, turning handwritten forms into spreadsheet data with AI shows how to photograph tally sheets and get a clean table out of them, with the checks that catch misread numbers.
Recount rules and sign-off
Write the rules down before count day so nobody argues about them at 10 p.m.
- Recount any line flagged by the variance check (over 5 per cent or over $50 at cost, in this example; set your own thresholds).
- The recount is done by a different person from the original count, also blind.
- If the recount agrees with the first count, accept it. If it agrees with the system, use the system figure and note the miscount. If it gives a third number, count a third time with the owner present.
- Resolve timing items (open orders, unbooked deliveries) by processing them, not by adjusting stock.
- The owner signs off the final adjustment, with the unexplained variance at cost written on the sign-off sheet.
- Only then post the adjustments. In Shopify, the Inventory adjustment changes report lets you review what changed afterwards.
The stock value you sign off feeds your accounts, so time the count to fit the month-end calendar; speeding up month-end close shows where it sits.
Cycle counting so the big count gets smaller
Once the full count is clean, counting a little often keeps it clean with far less effort. A simple scheme for a small shop:
| Group | Which items | Count how often | Wine merchant example |
|---|---|---|---|
| A | The 20% or so of items that make up most of your stock value, plus anything easy to steal | Monthly | Premium sparkling, top reds, single malts: about 180 SKUs, 45 minutes |
| B | Steady sellers of middling value | Quarterly | Everyday reds and whites: about 450 SKUs |
| C | Slow, cheap or bulky items | Twice a year | Mixers, glassware, gift boxes, older vintages |
Shopify's guidance suggests another version: count a different zone each week so the whole catalogue is covered over a cycle. Either way, run the same AI variance check on each small count. Recurring causes (the same supplier's deliveries arriving without paperwork, the same shelf mixing vintages) show up within two or three cycles, and fixing them does more for accuracy than any amount of counting.
Clean counts make other jobs possible. Finding dead stock and slow movers with AI depends on accurate quantities, and so does setting reorder points that prevent stockouts. If you are still choosing a stock system, AI inventory tools for small retailers compared covers the options with scanning built in.
Further reads
- How to Sync Stock Across Shopify, Amazon and eBay Automatically — Keep the counted figures right across every channel you sell on.
- AI Inventory Forecasting for Small Businesses: How It Works — Accurate counts make stock forecasts worth trusting.
- How Small Shops Can Use AI to Forecast Stock and Reorder — Turn clean stock levels into better reorders.
- How to Use Shopify Sidekick to Run Your Store Faster — Shopify's assistant can help with stock admin after the count.
- AI Supplier Management: Track Prices, Lead Times, and Risk — Track suppliers whose deliveries keep causing variances.
- How Pubs and Bars Can Use AI for Events, Rotas and Stock — Stock counting for bars and taprooms, where measures complicate it.
- Does AI Stock Ordering Pay Off for an Independent Pharmacy? — The payback sum for AI stock ordering in a single-site pharmacy, the traps that inflate vendor claims, and a 30-day shadow test.
- Why AI Stock Forecasts Go Wrong: 8 Mistakes Small Businesses Make — The eight ways small businesses feed AI stock forecasts bad history or misread the output, each with a worked example and a fix you can apply this week.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Shopify Help Center pages on the Shopify app inventory scanner and on planning an inventory count with Shopify POS (Quick Count, session limits, recount guidance); Sortly pricing page (item and user limits, offline access); CountThings product pages.