# Run stocktakes and cycle counts
URL: https://support.starshipit.com/articles/14700000000015-run-stocktakes-and-cycle-counts
Canonical: https://support.starshipit.com/articles/14700000000015-run-stocktakes-and-cycle-counts
Markdown: https://support.starshipit.com/articles/14700000000015-run-stocktakes-and-cycle-counts.md
Updated: 2026-08-14

> For the complete documentation index, see [llms.txt](https://support.starshipit.com/llms.txt).

> Run full or partial stocktakes, create a cycle count for one product at one location in WMS web, and complete existing cycle count jobs on mobile.

Inventory counts keep WMS accurate over time. No matter how tightly you control processes, small variances accumulate — mis-picks, damage, supplier short-ships, and process gaps all affect stock levels. Regular counting catches and corrects these variances before they cause fulfilment problems.

WMS supports these counting workflows:

* **Stocktakes** — count a defined set of SKUs or locations, then post corrections.
* **Cycle counts** — ongoing counts for one product at one location, managed as individual jobs.
* **Count as you go** — count products as part of normal warehouse work when you need quick confirmation without starting a full stocktake.

Manual cycle count creation is available from the WMS web dashboard. Workers can open and complete an existing cycle count job in WMS Mobile, but cannot manually create one there.

If you need to prevent allocation while counts are being investigated, use inventory freeze controls for the affected products or locations. Frozen inventory cannot be allocated until the freeze is cleared.

## Stocktakes

### Counting modes

Stocktakes support two modes, available as separate tabs:

| Mode | When to use |
|---|---|
| **By Product** | Select one or more SKUs to count across all their locations. Useful for investigating a specific product that is frequently short. |
| **By Location** | Select a warehouse location and count every product stored there. Best for zone-based or location sweep counts. |

When **By Location** mode is selected, the By Product tab is hidden to keep things unambiguous.

### Starting a stocktake

1. Go to the **Stocktake** section in WMS.
2. Select the counting mode (**By Product** or **By Location**).
3. Define the scope:
   * For **By Product**: choose the SKUs to count.
   * For **By Location**: select the location. The dropdown defaults to your configured default stocktake location.
4. WMS generates the stocktake list with expected quantities.

Drafts are preserved per location — if you switch between locations, your unsaved counts are not lost.

### Counting inventory

For each item in the stocktake list:

* **Standard products**: enter the counted quantity.
* **Batch-tracked products**: verify each batch, enter the counted quantity per batch, and optionally confirm expiry dates.
* **Serial-tracked products**: confirm individual serial numbers (or import them via file where supported).

You can scan product barcodes to increment counts instead of typing quantities manually. If you find products at a location that were not previously recorded there, you can add lines to the count.

You can also change a product to a different location during a stocktake — WMS records a stock movement to transfer inventory to the new location for an accurate audit trail.

Large location counts are paginated, and empty or zero-result locations load quickly. This keeps location-based stocktakes usable in larger warehouses.

### Reviewing variances and posting

Once counting is complete:

1. WMS calculates variances by comparing expected to counted quantities.
2. Review the differences — investigate any large or unexpected variances before posting.
3. When satisfied, **post** the stocktake.

Posting generates **inventory adjustments** with reason "Stocktake variance" for every discrepancy. These immediately update on-hand quantities and are logged in stock movements.

Stocktakes are **non-destructive until posted**. You can re-count or correct entries without any consequence until you post.

## Cycle counts

**Cycle counts** are smaller, more frequent jobs that verify a product's physical quantity at a specific location. Rather than counting your entire warehouse periodically, cycle counts let you continuously check high-risk or high-value inventory records.

### Cycle count dashboard

The **Cycle Count** section in WMS has its own dashboard showing all cycle count jobs with their status, assigned user, location, product, and priority.

From the dashboard you can:

* Create one cycle count job for one product at one eligible location
* Assign jobs to specific team members
* Adjust job priority to surface urgent counts first

WMS can also create a cycle count job when a worker reports a discrepancy during warehouse work. This existing discrepancy-driven workflow remains available.

### Before you create a cycle count

You need the WMS cycle-count workflow permission (`cycle-count.*`) to see and use **Create Cycle Count**. A generic job create or manage permission does not reveal this control.

Manual creation supports one product at one location only. The location must already have an inventory record for the selected product. Tote and equipment locations are not eligible.

### Create a cycle count from the dashboard

1. Go to the **Cycle Count** dashboard in WMS web.
2. Select **Create Cycle Count**.
3. Select exactly one product.
4. Select exactly one eligible location from the locations where that product has an inventory record.
5. Confirm the job.

WMS saves the system quantity at creation as the expected baseline. The physical or reported count stays blank until a worker performs the count. Creating the job does not confirm or pre-fill the system quantity as the physical count.

Only one active cycle count can exist for a location. If an active job already uses the selected location, WMS tells you that a job already exists for that location.

To resolve the conflict:

1. Return to the **Cycle Count** dashboard.
2. Find the active job for the location in the **Location** column.
3. Open and complete the existing job, or assign it to a worker who can perform the count.
4. After that job is complete, create another only if the location still needs a new count.

After creation, use the existing supported surfaces and permissions to assign, prioritise, run, and complete the job.

When you open a cycle count, the job shows the expected quantity, reported quantity, variance, location confirmation, and tracking details before the count is posted.

![A cycle count job showing expected stock, counted quantities, variance and batch details](/uploads/articles/starshipit-wms/web/inventory-management/cycle-count-job.png)

### Running a cycle count on mobile

WMS Mobile can work an existing cycle count job. It does not include the manual **Create Cycle Count** action.

1. Open the cycle count job on the WMS mobile app.
2. Scan the location barcode to confirm you are in the right place.
3. Scan products and enter counted quantities.
4. Submit the count — WMS calculates variance and creates adjustment movements if needed.

You can also submit quick adjustments directly from mobile without a formal cycle count job — useful for immediate corrections spotted during other tasks.

### When cycle counts post

When a cycle count is posted, WMS creates stock movement adjustments (positive or negative) that can be reviewed in movement logs. These are identical in effect to stocktake variances and contribute to your audit trail.

## Best practices

* **Run full stocktakes periodically.** Quarterly or annual full counts keep your overall inventory accuracy benchmark fresh.
* **Use cycle counts frequently for high-risk areas.** Count fast-moving, high-value, or frequently mis-picked SKUs more often — weekly or fortnightly for problem-prone products.
* **Pause movements during counts where possible.** If orders continue to move through the counted area while counting is in progress, your counts may not match reality. Count areas during low-activity windows where practical.
* **Investigate large variances before posting.** A large unexpected variance may indicate a process error, data entry mistake, or theft. Investigate before committing.
* **Use reason codes on adjustments.** When corrections are applied, use consistent reason codes (Damage, Found, Lost, Stocktake variance) so you can report on patterns over time.

## FAQ

<!-- faq:start -->

<!-- faq:question -->Do I need to stop operations during a stocktake?<!-- /faq:question -->

For the most accurate results, it is best to pause movements for the items or locations being counted. If operations continue, stock movements happening in real time may cause discrepancies between your count and the system's expected figure.

<!-- faq:question -->Can I undo a posted stocktake?<!-- /faq:question -->

You cannot reverse a stocktake directly. However, you can create a manual adjustment with the opposite quantity to correct any posted values. Both entries will appear in movement logs for traceability.

<!-- faq:question -->What is the difference between a stocktake and a cycle count?<!-- /faq:question -->

Both correct inventory through counting. A stocktake is a broader one-off count across a defined scope, such as multiple SKUs or every product at a location. A cycle count is a job-based approach for counting one product at one location. In practice, the outcome is the same — variance adjustments are posted and movement logs updated.

<!-- faq:question -->Can I create a cycle count for a whole location or multiple products?<!-- /faq:question -->

No. Manual cycle count creation supports one product at one eligible location per job. It does not support a location-only count, one product across all locations, an arbitrary set, or bulk creation. Use a **By Product** or **By Location** stocktake when you need a broader counting scope.

<!-- faq:question -->Can I create a cycle count in WMS Mobile?<!-- /faq:question -->

No. Create a manual cycle count from the **Cycle Count** dashboard in WMS web. WMS Mobile can open and complete an existing cycle count job, and reporting a discrepancy during warehouse work can still create a follow-up job automatically.

<!-- faq:end -->
