xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Warehouse/Cycle counting
HOW-TO · Last reviewed

Cycle counting

VIDEO
Cycle counting: start, count, release adjustment
A 5-minute walkthrough of this page is coming soon — the written steps below cover the same ground.

A cycle count compares physical reality against book stock for a chosen slice of the warehouse, and turns the differences into a posted adjustment. The count document moves through four stages — Draft, Counting in Progress, Finish Counting, Released for Adjustment — driven by three actions: Start Counting, Finish Counting, and Release For Adjustment. The counting rules live on the document itself: scope filters that decide which items and locations are counted, and a count quantity type that decides which book figure each line is measured against.

Prerequisites

  • The company and branch for the count — fixed at creation and not editable afterwards.
  • A counting scope: at least one of item, item group, ABC class, FSN class or storage location (see item classifications for ABC/FSN).
  • Items to be counted must track inventory — non-tracked items never get count lines.
  • Someone to count: the document carries an assigned-to person, and each line records who counted it and when.

Procedure

All Cycle Counts list in the Warehouse app showing 42 count documents with partner account, branch, executive, count quantity type and status
The Cycle Counts list is the register of counting exercises. The default view shows only counts in progress, so switch to All Cycle Counts to see drafts and released counts; Count Quantity Type tells you which book figure each count was measured against.UI captured
  1. 1

    Cycle Counts is a fixed tab of the Warehouse app.

  2. 2

    Views: the default Cycle Counting In Progress view is empty when nothing is being counted — pick All Cycle Counts (or Pending / Adjusted) from the dropdown.

  3. 3

    Document Number (CYC-…) opens the count with its generated lines.

  4. 4

    Branch is fixed at creation — the counted stock is branch-scoped by construction.

  5. 5

    Count Quantity Type — Quantity Available, Quantity In Hand or Actual Quantity — is the book figure every line's discrepancy is measured against.

  6. 6

    Status: Draft → Counting in Progress → Finish Counting → Released for Adjustment, driven by the three actions.

Cycle counts are a fixed tab of the Warehouse app (Cycle Counts). The default view, Cycle Counting In Progress, only lists counts between Start Counting and Finish Counting, so it is often empty — switch to All Cycle Counts, Pending Cycle Counts or Adjusted Cycle Counts from the view dropdown to find drafts and released counts. Use branch, quantity basis and status to reopen an existing exercise; a second count over the same stock creates confusion even when no adjustment has posted yet.

New Cycle Count form with Partner Account, Branch, Storage Location, Executive, Count Quantity Type and Document Date, and the Count Scope tab with Item, Item Group, Filter ABC, Filter FSN and Maximum Items
The Draft form makes the count reproducible: company and branch fix ownership, Count Quantity Type fixes the book baseline, and the Count Scope filters decide exactly which stock positions become lines when you save.UI captured
  1. 1

    Partner Account and Branch are mandatory and cannot be changed after creation — the counted stock is branch-scoped.

  2. 2

    Storage Location narrows the count to one bin or van; leave it empty to count the branch.

  3. 3

    Count Quantity Type (mandatory): Quantity Available, Quantity In Hand or Actual Quantity — the book figure lines will be measured against.

  4. 4

    Count Scope: Item, Item Group, Filter ABC and Filter FSN intersect; at least one is needed or the save generates no lines.

  5. 5

    Maximum Items caps how many items are taken in; 0 means the built-in cap of 2,000.

  6. 6

    The Actions tab beside Count Scope holds the Perform Start Counting and Lock Inventory switches — leave them off until the lines have been reviewed.

The Draft form is where the count becomes reproducible: organization and branch establish ownership, the quantity type defines the book baseline, and the scope filters decide exactly which stock positions become lines. Review these choices before starting because generated lines can be refreshed only while the document remains Draft; after Start Counting, the scope is intentionally frozen so the observed quantities cannot be compared against a moving population.

The form's second tab, Actions, holds two switches — Perform Start Counting and Lock Inventory. Setting Perform Start Counting and saving runs the Start Counting action; Lock Inventory decides whether that start also locks the counted stock. Leave both off until the generated lines have been reviewed.

Step 1 — Create the count and set its scope

Create the cycle count with the branch and the scope filters: a single item, an item group, an ABC or FSN class, a storage location, or any combination — the filters intersect. Maximum items caps how many items the count takes in (left at zero, the engine caps it at 2,000). Choose the count quantity type: Quantity In Hand (everything the books say is present), Quantity Available (only what is free to promise), or Actual Quantity (what should physically be on the shelf once stock already picked or heading out is removed). On save, count lines are generated automatically from matching stock — one per lot for lot-tracked items, one per stock position otherwise, and a single zero-quantity line for a matching item with no stock, so missing stock is counted too. Each line snapshots the book figure. Changing the filters while the count is still in Draft deletes and regenerates the lines; once counting starts, the scope is locked.

Step 2 — Start counting

Run Start Counting. It requires generated lines and flips the document to Counting in Progress. If Lock Inventory is set on the document, the stock positions and lots covered by the lines are locked against other transactions for the duration — anyone else touching that stock gets Item is locked for transaction! until the count finishes.

Step 3 — Count and record

For each line, record the counted quantity, plus any damaged and expired quantities found, and remarks where the numbers need explaining. The line captures who counted and when. The line's discrepancy is the difference between what was recorded and the snapshotted book figure — that discrepancy, not the raw count, is what the adjustment will post.

Lines tab of a cycle count released for adjustment showing Cycle Count Line rows with item, SKU, item lot, on-hand quantity, recorded quantity and discrepancy quantity
The Lines tab is the physical worksheet. Each generated line snapshots the book figure (On Hand Quantity, per the count quantity type), takes the counted figure (Recorded Quantity) and computes the Discrepancy Quantity — which is what Release For Adjustment turns into adjustment lines.UI captured
  1. 1

    Header strip: Count Quantity Type (Quantity Available here) is the book basis every line was snapshotted against; Storage Location is empty because this count was scoped by item, not by bin.

  2. 2

    Cycle Count Line — one row per lot for lot-tracked items (one per stock position otherwise); 24 lines were generated from the scope.

  3. 3

    Item Lot identifies exactly which lot was counted; the adjustment line inherits it.

  4. 4

    On Hand Quantity is the snapshot taken when the lines were generated — it does not move with later transactions.

  5. 5

    Recorded Quantity is what the counter entered; open a line for damaged/expired quantities, remarks, counted-by and time.

  6. 6

    Discrepancy Quantity = recorded − on hand; only non-zero lines become adjustment lines.

The saved Lines tab is the physical worksheet: item, SKU and lot, On Hand Quantity (the snapshotted book figure), Recorded Quantity and the computed Discrepancy Quantity stay together, and each line record also holds the damaged and expired quantities, remarks, counted-by and counted-time. Complete every expected row and investigate missing stock positions before finishing.

Step 4 — Finish counting

Run Finish Counting. It requires that counting was started and not already finished, approves all the count lines, and releases the inventory lock if one was taken. The document moves to Finish Counting; the numbers are now final.

Details tab of a cycle count showing Count Metrics (partner account, branch, storage location, count quantity type, executive), Count Scope (item, item group, ABC/FSN filters, maximum items) and Count Status flags (Counting Started, Counting Finished, Adjustment Released, Lock Inventory)
Details is where you verify what a count measured and how far it really got. Count Scope shows the filters the lines were generated from; the Count Status flags are set by Start Counting, Finish Counting and Release For Adjustment — trust them over the status label, which can be set independently.UI captured
  1. 1

    Stage bar: Draft → Counting in Progress → Finish Counting → Released for Adjustment.

  2. 2

    Count Quantity Type (mandatory) is the book figure every line snapshotted: Quantity Available, Quantity In Hand or Actual Quantity.

  3. 3

    Count Scope: Item, Item Group, Filter ABC, Filter FSN and Storage Location intersect to pick the stock positions; Maximum Items 0 means the 2,000-item default cap.

  4. 4

    Maximum Items and the filters are locked once counting starts — the lines were generated from them.

  5. 5

    Count Status flags are written by the actions; here they are all off although the label says Released for Adjustment — the label alone does not prove an adjustment exists.

  6. 6

    Lock Inventory: when on, Start Counting locks the counted stock positions and lots until Finish Counting.

The Details tab confirms ownership and quantity type (Count Metrics), the frozen filters (Count Scope) and the Count Status flags — Counting Started, Counting Finished, Adjustment Released, Lock Inventory. The flags are what the three actions set; the status label can be set independently, so when the two disagree the flags are the truth about what has actually run.

Step 5 — Release the adjustment

Run Release For Adjustment. It creates an adjustment document linked to the count — one adjustment line per count line with a non-zero discrepancy, plus separate damaged and expired lines where those were recorded, each carrying the line's storage location, lot and unit cost. The adjustment then posts to the ledger through the normal adjustment flow, and the count shows Released for Adjustment. The action refuses to run twice on the same count.

Related tab of a cycle count released for adjustment, showing the single linked Adjustment document with status Adjusted
Related shows the adjustment that Release For Adjustment created from this count's discrepancies. Stock changes only when that adjustment posts — open it here rather than creating an unlinked correction.UI captured

Use Related to open the adjustment and other linked evidence created from the count. The relationship proves which draft adjustment carries the variance; review and post that record through its own lifecycle rather than creating an unlinked correction.

Expected result

The cycle count retains the branch, chosen quantity basis and immutable scope that produced its lines. Every line records the snapshotted book quantity, physical count, damaged or expired quantities where applicable, counter and timestamp, making each discrepancy explainable without reconstructing warehouse state later. Finish Counting approves the complete set and releases any inventory locks; Release For Adjustment creates one linked adjustment containing only the differences that need financial or stock correction and moves the count to Released for Adjustment. Stock does not change merely because a number was counted—the inventory ledger changes only when that adjustment completes its normal posting flow. Reconcile the created adjustment back to the count before treating the exercise as closed.

Common problems

  • Cyclecount lines are required to start counting. The scope matched nothing — the item doesn't track inventory, the branch or storage location holds no matching stock, or no filter was set at all. Widen the filters and save.
  • **Counting has already started. / Counting must be started before finishing. / Counting has already been finished.** The actions enforce the start → finish order, once each.
  • No Discrepancy found. Cycle Count Lines are required to release adjustment. The count has no lines to release from.
  • Adjustment is already released for this Cycle Count. One count releases one adjustment; a further correction needs a new count or a manual adjustment.
  • The filter fields refuse to change. Item, item group, ABC/FSN class, storage location and maximum items are locked once counting has started — by design, since the lines were generated from them.
  • **Item is locked for transaction! reported by other users.** A count with Lock Inventory is in progress over that stock. Finish the count to release the lock.

Common questions

Which count quantity type should I use?

Actual Quantity for shelf-truth counts: it removes stock that is picked or on its way out, so the book figure matches what the counter should physically find. Quantity In Hand when you want to reconcile everything the books say is present, including held and allocated stock. Quantity Available is the narrowest — only free-to-promise stock — and correspondingly the hardest to count against physically.

What are Cycle Count Rules and the Rule Success Criteria fields?

Reserved fields. The count record carries Rule Success Criteria, Rule Success Custom Logic, the part-cost and part-stock range fields and a Cycle Count Rule child entity, all labelled Future Use — nothing in the current release evaluates them when lines are generated. Scope a count with the item, group, ABC/FSN and storage-location filters only.

Should I lock inventory during a count?

Lock when movements during the count would corrupt it — the lock freezes exactly the stock positions and lots on the count lines, not the whole branch. The cost is that pick, receipt and transfer activity on that stock is refused until you finish. For a small, fast count in a busy warehouse, counting a quiet slice without the lock is often the better trade.

Does finishing the count change my stock?

No — stock changes only when the released adjustment posts. Finish Counting freezes the recorded numbers; Release For Adjustment turns the discrepancies into an adjustment document; and the ledger entries come from that adjustment, reviewable like any other. A finished count with no release changes nothing.