> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stockful.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Stock counts

> Run a stocktake or a cycle count: count what is on the shelf and let Stockful work out the difference. Blind counting, count sheets, found items, and applying variances to Shopify.

A **stock count** records what you actually found on the shelf. You type the quantity you counted; Stockful works out the variance against what it expected and writes only the difference to Shopify.

Use it for a full stocktake, a cycle count of one vendor or product type, or a quick spot check of a single shelf. They are the same document; the difference is how far you narrow the scope.

That distinction matters more than it sounds. Typing the quantity means a count that takes all afternoon is still correct at the end of it: if something sold at 2pm, the variance you found at 10am is still the variance, and Stockful applies it to whatever the quantity is when you apply rather than overwriting the shelf with a number that went stale hours ago.

## Starting a count

From **Counts & adjustments**, click **Start count**.

A count covers **one location**, optionally narrowed by **vendor**, **product type**, or **tag**. Those filters combine, so vendor "AudioGear" plus type "Headphones" counts only items that are both. As you change them, Stockful tells you how many SKUs the count will cover, so you find out it is seven thousand lines before you start rather than after.

The scope is fixed once the count is created. It decides which lines exist, so changing it later would make it a different count. It stays visible on the sheet so a finished count can always say what it covered.

<Note>
  If other counts are already open at the same location, Stockful lists them before you start. Two counts at one warehouse is perfectly normal - different people, different shelves - but starting a second one by accident is easy when the first is on another screen.
</Note>

### Blind counting

**Blind counting** is on by default, and hides the expected quantity until you have entered your own. Once you enter a number, the expected quantity and the variance appear.

This is not busywork. Shown "50", a counter who counts 48 tends to write 50 - the number on the screen quietly becomes the answer. Withholding it until you have committed is the accepted way to get an accurate count, and it is the whole reason a count is worth doing rather than eyeballing.

Untick it if you would rather see expected quantities from the start, for example when recounting a short list you already know is wrong.

## The count sheet

The sheet lists every SKU in scope with a **Counted** field. Fill them in as you work; the sidebar tracks how far through you are.

* **Expected** - what Stockful believes is there. Hidden on a blind count until the line is counted.
* **Counted** - what you found. Leave it empty for anything you have not reached.
* **Variance** - counted minus expected, filled in once you have counted.
* **Value** - what the variance is worth, using the item's cost.

An **empty** Counted field and a counted **zero** are different things, and Stockful keeps them apart. Empty means nobody has looked at that SKU yet, and applying leaves it alone. Zero means you looked and the shelf was empty, which is a real finding worth recording.

**Save** as often as you like. A count is a session, not a form, and saving keeps it as an open draft.

### Count sheets by CSV

Click the import button to download a **count sheet template** - one row per SKU in the count, with a blank quantity column - or to upload a filled-in one.

Take it away as a spreadsheet or a printout, fill in what you counted, upload it, and Stockful maps the rows back onto the sheet. Column headings are detected automatically, so most formats work as they are.

Rows that cannot be filled in are flagged and skipped rather than silently dropped:

* **No matching item** - the SKU or barcode is not in your catalogue.
* **Not on this count** - the item exists but the count's scope does not cover it. If you found stock of it, add it as a [found item](#found-items) instead.

<Note>
  Stockful does not have barcode scanning on the count sheet yet. A scanner that plugs in and types like a keyboard will enter a barcode into any field you have focused, including the found item search, but there is nothing yet that jumps to the scanned row so you can type a quantity and scan the next one.
</Note>

## Found items

Sometimes you find stock on the shelf that the count does not cover: the filters excluded it, or Shopify does not hold that SKU at this location at all.

Click **Add found item** on the sheet and search your whole catalogue by product, SKU, or barcode. The picker tells you whether the location already stocks each item, and anything already on the count is left out so you cannot add it twice.

Found items are added uncounted, and you type the quantity into the Counted column with everything else. They sit below the scoped lines with a **Found** badge, and their Expected reads as a dash, because nothing was expected there at all. Unlike scoped lines, a found item can be removed from the sheet - it is one you added, and picking the wrong variant is easy.

<Warning>
  Adding a found item that the location does not stock does more than change a number. When you apply, Shopify starts stocking that SKU at that location, which means it can allocate and fulfil orders for it from there. Stockful spells this out on the confirmation before you apply.
</Warning>

A few items cannot be added, because Shopify will not let anything adjust their quantity: variants with no SKU, bundles, and items managed by a third-party fulfilment service.

## Applying a count

**Apply count** writes the variances to Shopify. You get a confirmation summary first, and if you have unsaved counts they are saved as part of applying.

What gets written, and what does not:

* **Only the variances.** A line counted at exactly the expected quantity is a real, useful result, and it is recorded on the count - but there is nothing to move, so nothing is sent to Shopify.
* **Uncounted lines are left alone.** They are never treated as zero. Stock nobody looked at is not stock that has gone missing.
* **Found items are applied last**, after everything the count set out to cover.

A large count is applied in the background. Shopify accepts 250 changes per call, so counting a whole warehouse takes dozens of them, and the page follows the progress rather than making you wait on a spinner. You can leave the page and come back; refreshing picks the progress back up.

### When Shopify refuses a line

If an item's quantity changed between counting it and applying - a sale came in, or someone edited it in Shopify admin - Stockful does not apply that line blindly. The line is flagged, its expected quantity is refreshed, and the count stays open so you can look at it and apply again.

This is deliberate. A sale between counting and applying preserves your variance, but a delivery does not, and nothing in the rejection can tell those two apart. The judgement is yours.

Anything that did apply stays applied, so applying again only re-sends what has not landed yet.

## After applying

An applied count is read-only: a permanent record of what was counted, what was expected, and what changed. Each line links through to that item's inventory history in Shopify admin, where the change appears as a stock count with a reference back to the Stockful document.

Completed counts can be **archived** to keep the list tidy, and unarchived at any time. You can also **export a count as CSV** for a spreadsheet.
