OdooWiki OCA HUB
Warehouse Management License: AGPL-3

This module provides the capability to execute a cycle count strategy in a warehouse through different rules defined by the user. Cycle count is an alternative to full wall-to-wall physical inventories in which little portions (stock locations) of the stock are selected to count on a regular basis.

The system propose locations in which to perform a inventory adjustment every day based on a set of rules defined for the warehouse. In addition the system can propose Zero-Confirmations which are simple and opportunistic counts to check whether a locations has actually became empty or not.

With this strategy it is possible to:

  • Remove the need to perform full physical inventories and to stop the production in the warehouse.
  • Measure the accuracy of the inventory records and improve it.
  • Correct inventory errors earlier and prevent them to become bigger.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Plan and run cycle counts (partial stock counts) in your warehouse based on rules, instead of doing full physical inventories. Odoo proposes which locations to count, creates the inventory adjustments, and tracks counting accuracy.

This module lets you set up cycle count rules and have Odoo automatically propose which stock locations should be counted, so you can count small portions of the warehouse regularly instead of stopping everything for a full inventory.

  • Configure rules under Inventory > Configuration > Cycle Count Rules. Four rule types are available: Periodic (a minimum number of counts per period), Value Turnover (count when the value moving in/out of a location exceeds a threshold), Minimum Accuracy (count when a location's accuracy falls below a threshold) and Zero Confirmation (check that a location is really empty).
  • Rules can apply to whole warehouses or to specific location zones, and individual locations can be excluded from cycle counting.
  • A scheduled job (Cycle Count Planner Computation) runs daily and creates planned cycle counts for the locations that match the rules, within the warehouse's planning horizon.
  • Planned counts appear under Inventory > Operations > Cycle Counts. From a count you can confirm it, which creates a linked Inventory Adjustment, and optionally start it automatically depending on company settings.
  • When an inventory adjustment is validated, the linked cycle count is marked as done, and the accuracy of the count is computed and stored on the location and on the adjustment.
  • A Location Accuracy report and an Accuracy Stats action let you review how accurate your inventory records are per location.
  • Zero confirmations can be triggered automatically when a stock move empties a location, creating a count to confirm the location is truly empty.

Menus it adds

Cycle Count RulesCycle CountsCycle Count Accuracy
Models and fields (10)
  • stock.move · extends an existing model
  • res.company · extends an existing modelauto_start_inventory_from_cycle_count (Auto Start Inventory Adjustment from Cycle Count), inventory_adjustment_counted_quantities (Inventory Adjustment Counted quantities from Cycle Count)
  • stock.location · extends an existing modelloc_accuracy (Inventory Accuracy), cycle_count_disabled (Exclude from Cycle Count), zero_confirmation_disabled (Disable Zero Confirmations), qty_variance_inventory_threshold (Acceptable Inventory Quantity Variance Threshold)
  • stock.inventory · extends an existing modelcycle_count_id (Stock Cycle Count), responsible_id, inventory_accuracy (Accuracy), prefill_counted_quantity (Counted Quantities)
  • stock.move.line · extends an existing modelcounted_qty (Counted Quantity), line_accuracy (Accuracy), theoretical_qty (Theoretical Quantity)
  • stock.warehouse · extends an existing modelcycle_count_rule_ids (Cycle Count Rules), counts_for_accuracy_qty (Inventories for location accuracy calculation), cycle_count_planning_horizon (Cycle Count Planning Horizon (in days))
  • stock.cycle.count · new modelname, state, company_id (Company), location_id (Location), date_deadline (Required Date), responsible_id (Assigned to), cycle_count_rule_id (Cycle count rule), inventory_adj_count, manual_deadline_date (Manual Required Date), stock_adjustment_ids (Inventory Adjustment), automatic_deadline_date (Automatic Required Date)
  • res.config.settings · extends an existing modelauto_start_inventory_from_cycle_count (Auto Start Inventory Adjustment from Cycle Count), inventory_adjustment_counted_quantities (Inventory Adjustment Counted quantities from Cycle Count)
  • stock.cycle.count.rule · new modelname, active, apply_in (Apply this rule in:), rule_type (Type of rule), currency_id (Currency), location_ids (Zones where applied), warehouse_ids (Warehouses where applied), rule_description, accuracy_threshold (Minimum Accuracy Threshold), periodic_count_period (Period in days), periodic_qty_per_period (Counts per period), turnover_inventory_value_threshold
  • report.stock_cycle_count.stock_location_accuracy · new model

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/stock-logistics-warehouse.

terminal Installation and usage

OCA documentation · Odoo 18.0

To install this module, you need to:

  • Download this module to your addons path.
  • Install the module in your database.

Recommendations

It is highly recommended to use this module in conjunction with:

  • stock_inventory_verification_request: Adds the capability to request Slot Verifications.
  • stock_inventory_lockdown: Lock down locations during inventories.

You can configure the rules to compute the cycle count, acting as follow:

  • Go to Inventory \> Configuration \> Cycle Count Rules.
  • Create as much cycle count rules as you want.
  • Assign the rules to the Warehouse or zones where you want to apply the rules in.
  • Go to Inventory \> Configuration \> Warehouse Management \> Warehouses and set a Cycle Count Planning Horizon for each warehouse.

Once you have some rules configured for your warehouses, you can proceed as is described below.

  • Go to Inventory \> Configuration \> Warehouse Management \> Warehouses.
  • Select all the warehouses you want to compute the rules in.
  • Click on "Action" and then in "Compute Cycle Count Rules". (note: A cron job will do this for every warehouse daily.)
  • Go to Operations \> Cycle Counts.
  • Select a planned Cycle Count and confirm it, this will create a draft Inventory Adjustment.
  • In the right top corner of the form view you can access to the generated Inventory Adjustment.
  • Proceed with the Inventory Adjustment as usual.
info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.