1. Audits
  2. Audits Overview

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.

Status Description
created The audit has been created and tasks have been generated. No counting has started yet.
processing The audit is actively being counted. Counted quantities may be partial.
in_review All tasks have been counted and the audit is awaiting approval. Reason codes are required for any task whose discrepancy exceeds the org-level approval threshold.
recount The reviewer has requested a recount for tasks with discrepancies. The audit returns to counting.
approved The audit has been approved. If update_inventory is true, inventory levels are reconciled with the counted quantities.
canceled The audit was canceled and will not be acted upon.

Audit Priority

An audit can be assigned a priority to indicate urgency.

Priority Description
low Low priority audit.
medium Default priority.
high High priority audit.

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_