ABC/XYZ Inventory Classification
ABC/XYZ product classification by value and demand variability, with auto-recompute and stock-policy suggestions
ABC/XYZ Inventory Classification ranks every product on two independent axes and combines them into the classic 9-cell matrix: a configurable Pareto (80/15/5) split on value or quantity, crossed with a coefficient-of-variation split on periodic demand. Every classification run is kept as an auditable snapshot, and the resulting class, matrix cell, count-frequency and safety-stock suggestion are written straight onto the product as searchable, groupable fields.
Key Features
Configurable classification policies
Define one or more abc.xyz.config records that pick the value metric (revenue or quantity), the demand source (stock moves or sales order lines), the period length/count and the Pareto and CV cutoff thresholds.
One click or scheduled recompute
Trigger a classification run manually with Run Now, or let the monthly ir.cron job (cron_recompute_all) reclassify every configuration flagged for auto-recompute.
Auditable run history
Each run (abc.xyz.run) is a timestamped snapshot with its own state (Running/Done/Failed), error message on failure, and per-product result lines (abc.xyz.run.line) that can never be edited after the fact.
9-cell ABC/XYZ matrix engine
A pure-python engine computes Pareto value shares and demand coefficient of variation, combining them into matrix codes like AX or CZ, each mapped to a concrete cycle-count and safety-stock suggestion.
Classification fields on the product
ABC class, XYZ class, matrix cell, coefficient of variation, value share, suggested count frequency and stock policy suggestion are computed and stored directly on product.product and product.template for searching, filtering and grouping.
Full classification history per product
Every product shows its own history of past classification runs (abc_xyz_history_count with a one-click drill down to abc.xyz.run.line), so trend and reclassification drift can be reviewed over time.
Demand sourced from stock moves or sales lines
Build the periodic demand series from completed outgoing stock moves (using list price as the revenue estimate) or, when Sales is installed, from confirmed sales order lines for exact historical revenue.
Warehouse and product-domain scoping
Restrict a configuration to specific warehouses and to a custom product domain (default: sale_ok products) so different catalogs or locations can run independent classification policies.
Use Cases
Screenshots
01 Matrix Dashboard Pivot
02 Classification History Li
03 Run Form
04 Config Form
Why Choose This Module
Instead of a one-off spreadsheet exercise, this module turns ABC/XYZ analysis into a living, auditable process inside Odoo: every recompute is versioned, every product carries its current classification as a plain searchable field, and the underlying Pareto/CV maths lives in an independently unit-tested engine so the numbers can be trusted.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: 35+
- Author: Pokutsoft
- Dependencies: stock, product
- Support: odoo@gencbaris.com
- Update date: 2026-07-13
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Lines of code | 1177 |
| Technical Name |
abc_xyz_inventory_classification |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module