---
title: Run a stock count
summary: >
  A stock count compares the shelf with the app. You open a count
  session, walk the products, and type the number you actually see.
  Blank means not counted; zero means none there. Submitting locks the
  count, and posting it writes the difference as an adjustment rather
  than overwriting the old figure, so every change stays traceable.
type: task
group: store
step: 3
permission: counts.execute
prerequisites: []
related:
  - /help/store/count-doesnt-match-the-shelf
  - /help/store/the-stock-ledger
  - /help/store/confirm-a-transfer-in
last_updated: 2026-08-07
---

**A stock count is not typing in a new number. It is writing down what you saw.**

The app carries a figure for every product at every location. A count puts a
person in front of the shelf and asks what is really there. Where the two
disagree, the shelf wins — and the difference is recorded as its own event, so
the old figure is never quietly replaced.

This page covers:

- [Before you start](#before-you-start)
- [Start a count session](#start-a-count-session)
- [Count the shelves](#count-the-shelves)
- [Submit when you are done](#submit-when-you-are-done)
- [What posting the count does](#what-posting-the-count-does)

## Before you start

A count session is a snapshot, taken the moment you create it.

When the session opens, the app records what it currently holds for every
product in scope. That recorded figure is what your count gets compared
against. So create the session shortly before you count, not days earlier.
Anything that arrives or ships in between will show up as a variance nobody
can explain.

Three things to settle first:

- **Where.** One session covers one location. Count the site you are standing in.
- **How you will walk it.** **By bin** gives you one bin at a time, in bin order. **By SKU** gives you one flat list. Pick whichever matches how you will actually move.
- **How much.** A full count covers every product holding stock at that location. You can narrow it to physical products only, or to a chosen set of bins.

## Start a count session

On a phone:

1. Open **Count** and tap **New count**.
2. Leave the reference as the date, or type something clearer like "Rack 2 recount".
3. Choose **By bin** or **By SKU**.
4. Choose the scope — **All products** or **Physical only**.
5. Check the effective date, then tap **Start count**.

A count started on a phone belongs to your main warehouse. To count anywhere
else, create the session at a desk under **Inventory → Stock counts → New
count**, which adds a **Location** picker and lets you count named bins only.

### If the counting already happened on paper

**Import CSV count** takes a spreadsheet and builds the session for you. Each
row is `sku, location, counted_qty`, with `bin` and `notes` optional. One file
can cover several locations at once, because every row names its own.

Rows with an unknown product code, a blank location, or a location name that
does not match exactly are handed back to you to fix. They are never guessed
at and never silently dropped.

## Count the shelves

Type what you see. Nothing else.

1. Open the session. In by-bin mode, tap a bin to get the products in it.
2. For each product, enter the number of units in front of you.
3. Enter `0` when there are none. Leave the box **blank** only if you did not check that product.
4. Entries save on their own a moment after you stop typing. There is no save button.

Blank and zero are not the same thing, and the difference decides what happens
later. Blank means "not counted" and gets left alone. Zero means "counted, none
here" and will take the figure down to nothing.

Each line is marked as you go:

| Line reads | It means |
| --- | --- |
| Pending | No number entered yet |
| Matched | Your number equals what the app held |
| Variance | Your number differs, by any amount |

A variance is information, not a mistake. It is the reason the count exists.

Two things people get wrong on the floor:

- **Count units that are sold but still in the building.** Stock only leaves at
  the moment it is shipped. A packed order sitting by the door is still on your
  shelf, and the app already knows those units are spoken for. Leaving them out
  will look like a loss.
- **Count damaged units too**, unless they have already been written off.
  Leaving them out writes the loss off for you, with no record of why.

## Submit when you are done

Tap **Submit**. You are shown how many lines you counted, how many differ, and
how many you skipped, and then asked to confirm.

Submitting locks the session. Lines can no longer be edited — the app refuses
the change rather than quietly accepting it. There is no un-submit. If you find
a mistake afterwards, the fix is a fresh count over the affected products, not
an edit to this one.

You can submit with lines still blank. That is normal for a partial count, and
those lines simply take no part in what follows.

## What posting the count does

Counting changes nothing. Posting is the step that moves stock.

On a phone the button is **Approve & finish**. At a desk it is **Post to
stock**, on the count's own page, next to the totals and a filterable list of
every variance.

For each product you counted, at each location:

- The difference between your number and the app's number is written to the stock ledger as an adjustment — one entry, one product, one location, stamped with who posted it.
- The stock figure then moves by that difference. It is never set directly; it follows the ledger.
- If your number matched exactly, the difference is zero and no entry is written. Nothing needed correcting.
- Lines you left blank are skipped completely. They keep the figure they already had.

Nothing is deleted and nothing is overwritten. The old figure, the adjustment
and the new figure all remain, which is what lets anyone explain the number
weeks later.

### Counting bins and loose stock together

There is one case where a count does more than nudge a number. If a count
covers a product's **bins and also states the loose stock** that is not in any
bin, it is a complete statement of that location — so it *sets* the location
outright instead of applying differences.

That has one consequence worth knowing before you submit:

- Bins you listed take the number you counted.
- **Bins you did not list are treated as empty.** Leaving a bin out is how you
  say "there is nothing in it any more", which is what lets a dismantled bin
  finally be cleared.
- The location total becomes the sum of what you counted, and the app's
  previous figure is not consulted at all.

Counting bins *without* stating the loose stock, or counting by product on a
phone, works the ordinary way described above — those never claim to describe
the whole location, so they only move what you counted.

## Explore

**The count keeps drifting from the shelf.** A number that goes wrong again a
week after a clean count usually has a cause upstream of the count.
[Learn more →](/help/store/count-doesnt-match-the-shelf)

**The ledger behind every number.** Why an adjustment is recorded as an event
rather than typed over the old figure.
[Learn more →](/help/store/the-stock-ledger)

**Confirming a shipment from another site.** The other routine way stock
arrives at a location you are standing in.
[Learn more →](/help/store/confirm-a-transfer-in)
