How-toSage X3 (Sage Enterprise Management)Inventory / Stock Count

How to Run a Physical Inventory Count in Sage X3

Question
How to run a physical inventory count in Sage X3

Also searched as

  • Sage X3 stock count process
  • Sage X3 count sheet entry
  • Sage X3 inventory count variance
  • Sage X3 cycle count vs full count

Short answer

Sage X3 physical counts run through Stock > Counts: create a count session scoped to a site, category, or zone, generate the count sheet to freeze theoretical quantities, enter counted quantities, review the variance report, then validate to post stock and valuation adjustments. Blocking movements against the counted locations during the window keeps the variance meaningful.

Applies to: Sage X3 v12 and later

Perform a physical inventory count in Sage X3

  1. 1Go to Stock > Counts > Count sessions and create a new session scoped to a site, product category, or storage zone.
  2. 2Choose the count type: full count, cycle count, or count by specific location range.
  3. 3Generate the count sheet through Count > Count sheet edition to freeze theoretical quantities at that moment.
  4. 4Distribute count sheets to warehouse staff, or use the mobile Sage X3 stock count entry if licensed.
  5. 5Enter counted quantities under Count > Count entry, one line per location, lot, or serial as applicable.
  6. 6Review the variance report comparing counted quantity against theoretical quantity before validating anything.
  7. 7Investigate any line with a large variance (wrong location, missed lot, uncounted bin) before posting.
  8. 8Validate the count to post stock adjustment movements, which also feed the stock valuation journal.
  9. 9Reconcile the posted adjustments against the general ledger stock accounts at period close.

Choosing full count vs cycle count

A full count freezes and recounts an entire site, which is thorough but disruptive, so most operations reserve it for year-end or annual audit requirements. Cycle counts scope a session to a category, ABC class, or a subset of locations on a rolling schedule, which spreads the counting workload across the year and keeps accuracy high on fast-moving or high-value items without shutting down the whole warehouse.

The count session parameters decide this scope up front, and mixing scopes carelessly, such as running overlapping cycle counts on the same zone from two different sessions, is a common source of confusing double-counted variance later.

Why freezing quantities and timing matters

Generating the count sheet is the moment Sage X3 records the theoretical quantity that counted figures will be compared against. Any receipt, issue, or transfer that touches a frozen location after the sheet is generated but before the count is entered will distort the variance, showing a mismatch that has nothing to do with an actual counting error.

For this reason, most sites block transactional movement against the locations in scope for the duration of the count window, or at minimum require staff to log any exception movement so it can be reconciled manually before validation.

Handling lot, serial, and multi-location discrepancies

Lot- and serial-tracked items add a layer of precision to the count: a quantity match at the item level can still hide a lot-level mismatch if the wrong lot was recorded against a location. Count entry screens support entering by lot or serial directly, and the variance report should be reviewed at that granularity, not just the item total, before trusting the numbers.

Variance posting and GL impact

Validating the count posts stock adjustment movements that update on-hand quantity and, depending on the site's valuation method, the stock valuation journal used by accounting. Large unexplained variances that get validated without review flow straight into that journal, which is why reviewing the variance report before validation, not after, is the step operations teams most often skip under time pressure.

Common pitfalls

  • !Not blocking transactions against counted locations during the count window, letting real movement distort the frozen theoretical quantity.
  • !Counting by product category while missing items that recently changed category and fall outside the session scope.
  • !Skipping zero-quantity theoretical locations that may actually contain miscounted or misplaced stock.
  • !Entering serial-tracked items without exact serial matches, which creates phantom adjustments that look like real variance.
  • !Validating a count session before reviewing the variance report, which locks in any counting or timing errors permanently.
  • !Running overlapping cycle count sessions on the same zone, producing conflicting frozen quantities and confusing variance.

How an ERP-grounded AI assistant handles this

ERPray for Sage X3, grounded on the site's stock and count tables, can answer questions like 'which locations in this session have a variance over a given threshold' or 'what movements hit this location after the count sheet was frozen' directly from the data, which normally means cross-referencing the count entry screen against the stock journal by hand. Validating the count and posting adjustments remains a deliberate step taken by the person responsible for the count, since it changes on-hand quantity and the GL.

Frequently asked questions

Can I do a cycle count without freezing the whole site?

Yes, scope the count session narrowly to a category, ABC class, or a specific set of locations. Only the locations included in that session get their theoretical quantity frozen when the count sheet is generated.

What happens to the variance in the general ledger?

Validating the count posts stock adjustment movements that flow into the stock valuation journal based on the site's configured valuation method, updating both on-hand quantity and the corresponding GL stock and variance accounts.

Can count sheets be exported to Excel and re-imported?

Yes, standard import and export templates exist for count entry, which is common when large teams count on paper or in a spreadsheet and then bulk-load the results rather than typing each line directly into the entry screen.

How do I count lot- or serial-tracked items accurately?

Enter counted quantities at the lot or serial level in Count entry rather than just the item total, and review the variance report at that same granularity, since an item-level match can still hide a lot-level mismatch underneath it.

Related

How-to

How to Run a Cycle Count in SyteLine

Cycle counting in SyteLine runs through Inventory > Cycle Count: generate a count list by ABC class or location, print or enter tags, key the counted quantities into Cycle Count Entry, then review the variance report before posting the count to update on-hand quantity.

How-to

How to Run Requirements Planning (MRP) in SYSPRO

SYSPRO's MRP engine lives under Planning and Scheduling > Requirements Planning. Set planning parameters per warehouse, run the Requirements Calculation to net demand against supply, then review and release the resulting suggestions as purchase requisitions or work orders. A full regenerative run typically runs on a schedule, with net change runs in between to pick up new activity.

Error fix

Odoo Scheduled Actions (Cron) Not Running: How to Fix

Odoo scheduled actions usually stop firing because no cron worker is available (workers or max-cron-threads misconfigured), the action is set inactive, or an earlier job crashed and left an ir.cron row stuck in the running state, which blocks the queue. Check Settings > Technical > Automation > Scheduled Actions first, then the server config and the ir.cron table.

How-to

How to Set Up Business Events and Actions in IFS

IFS Business Events fire when a defined condition on a Logical Unit is met, such as a new record, an update, or a specific attribute changing, and Actions subscribe to those events to send email, invoke a workflow, or call an external service. Both are configured in Solution Manager (or the Events and Actions work area in IFS Cloud) without requiring custom PL/SQL for most standard cases.

How-to

How to Create a Generic Inquiry in Acumatica

Generic Inquiries (GI) are Acumatica's no-code query builder for joining tables, adding filters, and exposing the result as an inquiry screen, dashboard data source, or API endpoint. Open System > Customization > Generic Inquiry, add your base table, define joins and conditions, then run and save. No SQL or customization project is required.

Error fix

Fix Odoo AccessError: You Are Not Allowed to Access Records

Odoo raises AccessError when a user's security groups do not grant a CRUD right on a model through ir.model.access.csv, or when an ir.rule record rule filters the specific record out for that user or company. Fix it by adding the user to the group named in the error, editing the model's access rights, or reviewing the record rule's domain under Settings > Technical > Security.

AI for ERP

AI for Sage X3, Grounded in Your Own Ledgers and Stock Data

Add AI to Sage X3 finance and stock data without exporting it to a public model. On-prem and private-cloud LLMs for Sage X3 in the UK and France.

Stuck on Sage X3 (Sage Enterprise Management)?

Talk to engineers who work inside Sage X3 (Sage Enterprise Management) every week, and who build private AI that answers these questions from your own ERP data.