Audits
Audits Overview
Audits represent inventory counting workflows used to verify and reconcile the on-hand quantities of items at a location. An audit groups together one or more counting tasks (audit_task), each of which targets a specific item at a specific layout (bin). When an audit is approved, any discrepancies between the system quantity and the counted quantity can optionally be applied to inventory levels.
How Audits Work
When an audit is created, the system inspects the inventory levels at the specified location (optionally filtered by item_ids and/or layout_ids) and automatically generates one audit_task per item/layout combination that has a non-zero quantity. The auditor then counts each task, optionally provides a reason code for any discrepancies, and submits the audit for review and approval.
Audit Statuses
An audit moves through a fixed set of statuses during its lifecycle.
Audit Priority
An audit can be assigned a priority to indicate urgency.
Discrepancies & Reason Codes
Each audit_task tracks three quantities: total_qty (the system quantity at the time the audit moved out of counting), counted_qty (the quantity the auditor counted), and discrepancy (the absolute difference). If the discrepancy exceeds the organization-level audit approval threshold, a reason code must be supplied on the task before the audit can be moved to approved.
Inventory Reconciliation
By default, audits will adjust inventory levels when they are approved. The difference between counted_qty and total_qty is applied to the available_qty on the corresponding level. This behavior can be disabled by setting update_inventory to false on the audit, in which case the audit is recorded for historical purposes but does not modify inventory.
Overdue Audits
An audit can have a complete_at deadline. If the audit has not reached approved by that time, the system will mark it overdue: true and emit an audit.updated event.
Object IDs
- Audit IDs are prefixed with
audit_ - Audit task IDs are prefixed with
audit_task_