Count stock (initiate, enter counts, re-baseline)
Once a stock take has its warehouse and its list of products, initiating it freezes the system on-hand figure into a snapshot and opens the take for counting. From there you record what you physically find — one line at a time, or by scanning — and the take shows you the variance against the snapshot. This guide covers taking the snapshot, entering counts (blind and informed), scanning to count, capturing lots, and the three ways to re-baseline an open take: re-snapshot, zero out, and revert to draft. It also covers the negative-on-hand block that stops a snapshot when the system already disagrees with itself.
This page picks up after Create a stock take & add items and ends where Finalize & reconcile a stock take begins. For the model behind it all — snapshots, during-count movements, variance — read How stock takes work.
- Snapshot — the system's on-hand quantity per product, frozen at the moment you initiate. Counts are compared against it to produce a variance.
- Variance — counted quantity minus the snapshot. A positive variance is found stock; a negative variance is a shortfall. Nothing moves until you finalize.
- Blind count — a take that hides the snapshot for uncounted lines so the counter records what they find without anchoring to the expected number.
- Full count vs adjustment — a full count records absolute counted quantities and reconciles the difference at finalize; an adjustment records signed deltas directly. This page is mostly about full counts; adjustment-mode differences are called out where they matter.
Before you begin
| Requirement | Why it's needed |
|---|---|
Count inventory permission (inventory.count) | Initiate Count, Re-snapshot, Zero Out, and Revert to Draft all require it. |
| A Draft stock take with at least one item | You initiate a draft; an empty take can't be initiated. See Create a stock take & add items. |
| The take is a full count, not adjustment mode | Adjustment-mode takes skip initiation entirely — you enter signed deltas and finalize directly. Initiating one is rejected with "Adjustment mode stock takes cannot be initiated." |
| System on-hand isn't negative for any counted product | A negative snapshot blocks initiation and re-snapshot — see When negative on-hand blocks the snapshot. |
Initiate the count (take the snapshot)
Initiating captures the snapshot and moves the take from Draft to Open. Until you do this, there is nothing to count against.
- Open the draft stock take from Inventory → Stock Takes.
- Click Initiate Count. The Initiate Count dialog opens.
- Choose the snapshot's effective date:
- Leave Use current date/time selected to snapshot now (the default).
- Clear it to reveal Retroactive Count Date and pick an earlier date — use this when the shelves were physically counted earlier and you want the resulting movements to post as of that day. You can't pick a future date.
- Click Initiate Count.
What you'll see: the take flips to Open, an "Inventory snapshot captured on …" banner appears, and each item gains its On Hand, Available, and unit-cost snapshot. The counting columns unlock.
For every item, initiating records the point-in-time On Hand (system quantity in the take's warehouse), the Available figure, the quantity committed to fulfillment, and the product's unit cost at that moment (its best-available COGS, used to preview the value change). Two clocks are stored: snapshot_at — the real wall-clock instant, used to reconcile any movements made during the count — and the effective count date, which drives the posting date of the movements, FIFO layers, and journal entries at finalize. A retroactive date changes only the second.
If some products on the list shouldn't be counted — for example, they turned up with negative system stock — you can drop them from the initiate step rather than editing the list first. The take must keep at least one item; excluding everything is rejected with "All items were excluded."
An initial (opening-balance) count behaves slightly differently: its date is pinned to the product's inventory start date and its snapshot is zero, because you're establishing the first on-hand figure rather than reconciling against an existing one.
When negative on-hand blocks the snapshot
If any product's system on-hand in the take's warehouse is negative when you initiate — meaning the ledger shows more went out than ever came in — SKU.io refuses to snapshot it. The Initiate Count dialog lists the offending SKUs with their negative quantity and asks how to proceed:
| Choice | What it does |
|---|---|
| Remove & Initiate | Drops the negative-stock products from the take and initiates with the rest. |
| Include & Initiate (Repair) | Marks the take as an integrity fix and snapshots the negative values as-is. At finalize, inventory is corrected from the negative snapshot up to your counted quantity. |
Both re-run the snapshot; the same block applies to re-snapshotting an open take. The repair path is the deliberate way to use a count to clean up a product whose ledger has drifted negative — see How adjustments move stock & cost for what "negative on-hand" means and how it happens.
Enter counted quantities
With the take open, the items table gives every line a Qty Counted field. Type what you physically find; each edit autosaves and the line's Variance chip updates against the snapshot.
For each line you can also set:
| Column | What to enter |
|---|---|
| Qty Counted | The physical count. Variance is computed as counted minus snapshot. |
| Unit Cost | Optional per-item cost override for found stock. Leave it to use the snapshot's captured cost. |
| Location | The bin the count applies to, in warehouses that use bin locations. Variance movements are stamped to it; leave it Default to use the warehouse's default bin. |
| Variance Reason | A root-cause tag (damage, shrinkage, miscount, and more), shown only on lines that actually vary. Useful for cycle-count reporting. |
The read-only snapshot columns sit alongside so you can sanity-check as you count: Available (free-to-sell at snapshot), On Hand (system quantity at snapshot), and two commitment columns — Rsv (Submitted) (units committed to in-progress fulfillments) and Rsv (Pending) (the total active-allocation quantity, pending plus submitted). These reflect what was allocated and committed when you took the snapshot; see Allocations & backorders for what those commitments mean.
On an informed take, the snapshot columns are visible from the moment you initiate — you count with the expected number in view. On a blind take (set when the take is created), the snapshot for any line you haven't counted yet is hidden as --, so you record what's on the shelf without anchoring to the system figure. As soon as you enter a count for that line, its snapshot and variance are revealed for review.
Adding or changing items on an open full-count take re-runs the snapshot for the whole take, so the on-hand figures stay current with any stock that moved since you initiated. If you'd rather deliberately re-baseline everything to now, use Re-snapshot instead.
In adjustment mode, there is no snapshot and no Qty Counted — you enter a signed Adjustment (+/-) per line (for example -3 for shrinkage, +5 for found stock) and finalize directly.
Scan to count
For fast physical counting, use the scanner instead of typing each line.
- On an open take, click Barcode Scan. The Barcode Scan Mode dialog opens with the cursor in the scan field.
- Scan a barcode or type a SKU and press Enter. Each scan resolves to a product and adds +1 to its running count; scanning the same item again increments it. A success beep and green flash confirm a hit; an unrecognized code beeps as an error and is logged in Recent scans.
- The Scanned Items table shows, per product, the quantity Scanned this session, the Existing counted quantity already on the take, and the Total. Adjust any row's scanned quantity by hand if you over- or under-scanned.
- Click the save action to stage the scanned totals back onto the counting table, then close the dialog.
Only standard and kit products that aren't archived resolve; a scanned code that matches nothing is reported as not found, and anything of another type is skipped. Behind the scenes the scanner resolves codes against SKU and barcode, so either works.
Capture lots (lot-tracked products)
For products with lot tracking on, the count carries lot detail so found stock stays traceable and shortfalls draw down the right layers.
- Found stock (positive variance). A lot capture panel opens beneath the line. Enter one row per lot you found — each becomes its own FIFO layer at finalize, carrying its batch number and expiry. The captured lot quantities must sum to the found quantity, or finalize is rejected with a "lot quantities must sum to the found quantity" error.
- Shortfall (negative variance). A lot consumption panel lets you name which layers to draw down instead of letting SKU.io pick automatically. By default a shortfall consumes layers in FEFO order (first-expiry, first-out); the override lets you point at specific active layers of that product and warehouse. The named quantities must reconcile to the shortfall and reference layers with enough stock.
Most takes finalize through a fast bulk path. A negative variance that carries a manual lot allocation can't use it — the bulk writer only knows automatic FEFO — so SKU.io automatically routes that take through the slower per-item finalize so your override is honored. This is transparent; you don't choose it. See FIFO layers & how COGS is realized.
Re-snapshot (re-baseline to now)
If stock moved while you were counting and you want the take's baseline to reflect now rather than when you initiated, re-snapshot it.
- On the open take, click Re-snapshot (in the snapshot banner or the action bar).
- Confirm. SKU.io clears the running value-change preview, re-pins both the snapshot time and the count date to now, and re-captures the on-hand figure for every line.
Any movements that happened before the re-snapshot are now baked into the new baseline, so the "movements since snapshot" counter resets. Re-snapshot is only available on an Open take, and it runs the same negative-on-hand block as initiate — if a product went negative in the meantime, the re-snapshot is refused with the offending SKUs.
Zero out counts
To count a warehouse "by exception" — assume everything is zero and only enter the items you actually find — bulk-set every line's count in one step.
- On the open full-count take, click Zero Out. The Zero Out Quantities dialog opens.
- Choose a mode:
- Set all to zero — sets every Qty Counted to
0. - Keep submitted reserved — sets each line's count to the quantity already committed to in-progress fulfillments at snapshot, so units you've promised aren't counted away.
- Keep all allocated (pending + submitted) — sets each line's count to the full active-allocation quantity captured at snapshot (pending plus submitted), so nothing that's been allocated to an order is counted away.
- Set all to zero — sets every Qty Counted to
- Click Apply. Every line's Qty Counted is set accordingly; you then adjust the handful of lines you physically found.
Zero out is only available on an Open full-count take (adjustment mode is rejected). After applying it, review the variances before you finalize — zeroing out a whole warehouse produces large negative variances.
Keep submitted reserved preserves only the units on in-progress fulfillments (the Rsv (Submitted) figure). Keep all allocated preserves the broader active-allocation total — both pending and submitted (the Rsv (Pending) figure) — so use it when you want every allocated unit to survive the zero-out, not just those already on a picking/packing fulfillment.
Revert an open take to draft
If you initiated too early, or the snapshot no longer reflects reality and you want a clean start, send the take back to draft.
- On the open take, click Revert to Draft.
- Confirm. The take returns to Draft, its value-change preview is cleared, and every line's snapshot fields are wiped, so the next Initiate Count captures a completely fresh baseline.
Revert to draft is only available on an Open take. It's the reset button: unlike re-snapshot (which re-baselines and keeps the take open for counting), reverting discards the snapshot entirely and reopens the list for editing — add or remove items, then initiate again.
Next steps
- Finalize & reconcile a stock take — turn the counted variances into adjustments and movements.
- Amend, re-date, reverse & delete a stock take — fix a take after the fact.
- How stock takes work — the snapshot, during-count movements, and variance model.
- Stock take statuses, fields & list — every field and status in one place.
- Stock states: on-hand, available, allocated, on-hold, non-sellable, incoming & in-transit — what the snapshot columns mean.