Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Inventory
  3. BambooForge ABC-XYZ: Inventory Classification & Analysis v 19.0
  4. Sales Conditions FAQ

BambooForge ABC-XYZ: Inventory Classification & Analysis

by BambooForge Labs
Odoo

$ 113.01

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Inventory (stock)
• Discuss (mail)
Lines of code 1035
Technical Name bambooforge_abc_analysis
LicenseOPL-1
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • Documentation
  • License
BambooForge ABC-XYZ
BambooForge ABC-XYZ by BambooForge Labs · Inventory Classification & Analysis
Odoo 19.0 License OPL-1 No Enterprise required
ABC-XYZ Inventory Classification for Odoo 19
ABC (Pareto value) XYZ (demand variability) 9-cell ABC-XYZ matrix Per-cell stocking policy Auto-generate reorder rules Write-back to products Multi-company
60-second tour

See it in action

From a blank analysis to a full ABC-XYZ matrix and product-level classes — the whole workflow, end to end.

3×3ABC-XYZ matrix, value in every cell
3value bases: consumption or stock
9built-in stocking recommendations
0Enterprise modules needed
Smarter stocking

Not every product deserves the same attention

ABC ranks products by the value they drive; XYZ ranks them by how predictable their demand is. Together they tell you exactly where to tighten control and where to stop wasting effort — and now each class cell can drive its own Min/Max reorder rule automatically, opt-in, without ever touching the rules you built by hand.

X · stable
Y · variable
Z · erratic
A
AXAutomate, low safety stock
AYMonitor, moderate buffer
AZMake-to-order, forecast hard
B
BXAuto reorder
BYPeriodic review
BZOrder on demand
C
CXSimple rules, bulk ok
CYGenerous cheap buffer
CZPhase out / MTO

Everything you need to classify and act

ABC-XYZ matrix

The combined matrix as a pivot — value by class and variability — with a recommended policy on every result line.

$

Three value bases

Rank by consumption value, consumption quantity or on-hand stock value, whichever fits your decision.

~

Demand variability

XYZ measures the coefficient of variation of demand across configurable buckets, so forecastable items stand out.

Configurable thresholds

Move the Pareto cut-offs and the variability bands to match your business; re-run and results update instantly.

Write-back to products

ABC, XYZ and the combined cell are stored on each product, ready to filter, group and act on across Inventory.

Snapshots over time

Every analysis keeps its own results, so you can compare how your catalogue shifts quarter to quarter.

Pivot, graph & list

See value by cell, drill into any class, and read the full ranked product list with cumulative shares.

Optional auto-refresh

A built-in (disabled by default) weekly scheduled action keeps the latest analysis current automatically.

Multi-company

Per-company analyses and record rules keep results separated across companies.

Auto-generate reorder rules

Define a reorder policy per ABC(-XYZ) class cell and let it create or update stock.warehouse.orderpoint Min/Max rules for matching products — by hand or on a cron.

%

Service level & safety-stock Min/Max

Each policy sets a target service level and safety-stock days; the module turns those into a safety factor and computes Min/Max from your demand and lead time.

Never clobbers manual rules

Opt-in per policy and completely safe: only reorder rules the app created are ever touched. Hand-built rules stay untouched, and every sync reports how many were left alone.

Up and running in four steps

1

Create an analysis

Pick a period and a value basis.

2

Compute

Products are classified ABC and XYZ instantly.

3

Read the matrix

See where value sits and how predictable it is.

4

Act

Group products by class and set the right policy.

Guided tour

Real screens, real data

Every screenshot below is the actual app running on Odoo 19 — no mockups.

ABC-XYZ analysis form with results
Step 1

Configure & compute

Set the period, value basis and thresholds, then Compute. Products are ranked with cumulative shares and classes, with an audit trail in the chatter.

ABC-XYZ matrix pivot
Step 2

Read the ABC-XYZ matrix

ABC down, XYZ across, value in every cell. Instantly see how much value is stable and easy versus erratic and risky.

Value by ABC-XYZ cell
Step 3

Value by cell

Switch to the graph to compare value across every ABC-XYZ cell at a glance.

Classified product list
Step 4

Every product, classified

The full ranked list with value, cumulative share, ABC, XYZ and the combined cell — and the recommended policy a click away.

ABC-XYZ tab on a product
Step 5

Classes on the product

The classes are written straight onto each product, so you can filter and group your catalogue by ABC or XYZ anywhere in Inventory.

List of analyses
Step 6

Snapshots over time

Keep a saved analysis per period and watch how your catalogue's value and predictability shift over time.

Stock the right products the right way

Install in seconds. No Enterprise, no external libraries, no lock-in. Works on Odoo 19 Community and Enterprise.

Full manual included. The app ships with a complete in-app documentation page (Apps > this module > Documentation) covering setup, classification, threshold tuning, acting on classes and FAQs. Questions? bambooforge.labs@gmail.com

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Inventory (stock)
• Discuss (mail)
Lines of code 1035
Technical Name bambooforge_abc_analysis
LicenseOPL-1

BambooForge ABC-XYZ Inventory Classification

Stop treating every product the same. This app ranks your catalogue by value (ABC / Pareto) and by demand predictability (XYZ), combines the two into an actionable ABC-XYZ matrix with a stocking recommendation per cell, keeps a snapshot of every run, and writes the classes back onto your products so you can filter and act on them across Inventory.

This page is the complete manual. Follow it top to bottom and you can install, run your first analysis, read the matrix, tune the thresholds, automate refreshes and fix the common issues without contacting support.

  • Overview
  • Requirements
  • Installation
  • Quick start
  • Reading the matrix
  • How classification works
  • Tuning the thresholds
  • Acting on the classes
  • Recommended policies
  • Automating refreshes
  • Frequently asked questions
  • Support
  • Usage
  • Upgrading & version compatibility
  • Uninstallation
  • Changelog

Overview

Two complementary classifications, combined:

  • ABC (value) — the Pareto principle applied to inventory. A small share of products usually drives most of the value. Class A is the vital few, B the middle, C the trivial many.
  • XYZ (demand variability) — how predictable a product's demand is. X is stable and easy to forecast, Y is variable, Z is erratic.

Cross them and you get a 9-cell ABC-XYZ matrix. An AX product (high value, stable) deserves tight, automated replenishment with low safety stock; a CZ product (low value, erratic) is a phase-out or make-to-order candidate. The app spells out a recommended policy for every cell.

It gives you:

  • Re-runnable analyses — each keeps its own snapshot of results.
  • Configurable ABC — choose the value basis and the A/B thresholds.
  • Configurable XYZ — choose the number of demand buckets and the variability cut-offs.
  • Write-back to products — ABC, XYZ and the combined cell stored on each product for filtering and grouping across Inventory.
  • Matrix pivot, graph and list of the results, plus a per-cell policy.
  • Optional weekly cron to keep the latest analysis fresh.

Requirements

  • Odoo 17.0.
  • The Inventory app (stock). Installing this app pulls it in automatically.

No Enterprise modules and no external Python libraries are required.

Installation

  1. Copy bambooforge_abc_analysis into your addons path.
  2. Update the apps list (Apps > Update Apps List).
  3. Search for ABC-XYZ and click Install.

A new top-level ABC-XYZ app appears, and an ABC-XYZ Analysis entry is added under Inventory > Reporting.

Quick start

  1. Open ABC-XYZ > Analyses and click New.
  2. Set the Reference Date and the Period (days) to analyse (365 is a good default).
  3. Choose the ABC Based On metric:
    • Consumption Value — quantity delivered to customers × cost (the classic choice).
    • Consumption Quantity — units delivered, ignoring cost.
    • On-hand Stock Value — current quantity on hand × cost.
  4. Leave Compute XYZ ticked to also classify demand variability.
  5. Click Compute.

The analysis switches to Computed, the Products stat fills in, and the Results tab lists every product with its value, classes and combined cell.

Reading the matrix

Open an analysis and use the Products stat button, or go to ABC-XYZ > Products:

  • Pivot — ABC classes down the side, XYZ classes across the top, value in each cell. This is your ABC-XYZ matrix: where does value sit, and how predictable is it?
  • Graph — value per ABC-XYZ cell at a glance.
  • List — every product with its value, cumulative share, ABC, XYZ, combined cell and the recommended stocking policy.

How classification works

ABC. Products are sorted by the chosen metric, highest first. Running totals give each product a cumulative share. Products are class A until the cumulative share reaches the A Threshold (default 80%), class B up to the A + B Threshold (default 80 + 15 = 95%), and C beyond.

XYZ. The period is split into Demand Buckets (default 12, i.e. monthly over a year). For each product the coefficient of variation (CV = standard deviation / mean) of demand across the buckets is measured. CV up to X max CV is X (stable), up to Y max CV is Y (variable), above is Z (erratic). Products with no movement fall into Z.

All values are expressed in the company currency.

Tuning the thresholds

Everything is on the analysis form:

  • A / B Thresholds — move the Pareto cut-offs (their sum must stay below 100).
  • Demand Buckets — more buckets = finer variability detection (needs enough history).
  • X max CV / Y max CV — tighten or loosen what counts as stable vs erratic.

Re-run the analysis after any change; results update immediately.

Acting on the classes

When Write Back to Products is on, every product gets an ABC-XYZ tab showing its classes and the analysis it came from, plus filterable fields. In the product list (Inventory > Products):

  1. Group by ABC Class or XYZ Class (search panel > Group By).
  2. Filter to ABC Class A or Erratic Demand (Z).
  3. Act on the selection — set reordering rules, adjust safety stock, review suppliers, or plan a phase-out.

Recommended policies

Each result line carries a recommended stocking policy for its cell, for example:

  • AX — high value, stable: tight control, automate continuous replenishment, low safety stock.
  • AZ — high value, erratic: make-to-order where possible, careful forecasting.
  • CZ — low value, erratic: consider phase-out or pure make-to-order.

Automating refreshes

A scheduled action ABC-XYZ: Recompute Latest Analysis ships disabled. Enable it under Settings > Technical > Scheduled Actions to recompute the most recent analysis per company on a schedule (weekly by default), moving the reference date to today each run.

Frequently asked questions

A product is missing from the results.
For consumption bases, only products with deliveries to customers in the period appear. For the on-hand stock value basis, products with stock on hand are included.
Everything is class A (or class C).
The ABC split depends on spread. Check the A/B thresholds and that your cost prices are set, since value = quantity × cost.
All products are class Z.
XYZ needs demand spread across several buckets. With little history, or demand concentrated in one bucket, the variation is high by definition. Lower the bucket count or widen the CV cut-offs.
Does it work with product variants?
Classification is computed from delivery moves (per variant) and written back to the product. For variant-heavy catalogues, treat the class as a product-level signal.
Does it work with multiple companies?
Yes. Each analysis is scoped to one company, and results are kept separate per company.

Support

Questions or ideas: bambooforge.labs@gmail.com.

Usage

This section walks through a full working cycle: run an analysis, read the results, define reorder policies and let the app maintain your Min/Max reorder rules. It all lives under the top-level ABC-XYZ menu (Inventory users), with manager-only pieces called out below.

Run an analysis

  1. Open ABC-XYZ > Analyses and click New. The reference is filled from an ABC/##### sequence, so you never have to name it.
  2. In the Scope group set:
    • Reference Date — the analysis is measured up to this day (defaults to today).
    • Period (days) — how far back demand and consumption are measured; 365 is the usual choice.
    • ABC Based On — Consumption Value (delivered qty x cost), Consumption Quantity, or On-hand Stock Value.
    • Write Back to Products — leave on to store the classes on each product.
  3. Tune the ABC Thresholds and, if Compute XYZ is ticked, the Demand Buckets and X max CV / Y max CV on the right.
  4. Click Compute. The status moves to Computed, the Products stat button fills in, the Results tab lists every product (A rows highlighted green, C rows muted), and a note is logged in the chatter.

To refresh an existing analysis, open it and click Recompute (it re-reads moves up to the current reference date); Reset to Draft clears the results.

Read the results

Open ABC-XYZ > Products (or the Products stat button on an analysis) to explore the same result lines as a Pivot, Graph and List, grouped by ABC class by default. The pivot with ABC down the side and XYZ across the top is your ABC-XYZ matrix; each list line carries the product, Value, Cumulative %, ABC, XYZ, combined ABC-XYZ cell and a plain-language stocking recommendation. Products also gain an ABC-XYZ tab and filterable ABC/XYZ fields, so in Inventory > Products you can group by ABC Class or XYZ Class and act on, say, every A item or every erratic (Z) item at once.

Define reorder policies

A manager opens ABC-XYZ > Reorder Policies (requires Inventory / Manager) and creates one policy per class cell:

  1. Under Applies To, pick the ABC Class (required), optionally an XYZ Class (blank = every XYZ class in that ABC class), the Warehouse, and optionally a Product Category. A more specific policy (pinned XYZ and/or category) wins over a wildcard one.
  2. Under Reorder Parameters, set the Service Level (%), Safety Stock (days), Lead Time (days), Target Cover (days) and Qty Multiple. The app sizes the reorder point from lead-time demand plus a safety buffer (the larger of the service-level buffer and the days-of-cover floor), and the Max from the target cover.
  3. Leave Auto-create Reorder Rules off to stay in preview, or turn it on to let the app write real rules for matching products.

Example. An AX policy with service level 99%, 3 safety days and a 14-day target cover keeps high-value stable items tightly stocked, while a CZ policy left in preview merely flags low-value erratic items without touching any rule.

Apply the rules

On a Computed analysis, click Preview Reorder Rules to see the Suggested Min / Suggested Max and matched Policy for every line without changing anything. When you are happy, click Apply Reorder Rules and confirm: the app creates or updates stock.warehouse.orderpoint Min/Max rules only for products matched by a policy with auto-create on. It is completely safe and idempotent - it only ever touches the reorder rules it created, so manually-created rules are counted as left untouched and never overwritten. A notification reports how many rules were created, updated and skipped.

Automate the cycle

Two scheduled actions ship disabled under Settings > Technical > Scheduled Actions: ABC-XYZ: Recompute Latest Analysis re-runs the most recent analysis per company (moving the reference date to today), and ABC-XYZ: Sync Reorder Rules keeps auto-create policies' reorder rules aligned to the latest demand. Enable them to run the whole classify-then-replenish loop hands-off.

Upgrading & version compatibility

This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.

Patch upgrades (same series, e.g. 19.0.1.0.0 → later)

  1. Back up your database and filestore first.

  2. Replace the module folder with the newer build.

  3. Restart Odoo with the module updated:

    ./odoo-bin -c your.conf -u bambooforge_abc_analysis -d your_db
    
  4. Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.

Cross-version migration (e.g. Odoo 17 → 18)

Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.

After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.

Uninstallation

You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.

What is removed

  • The module's own tables and every record in them (3 models, prefixed abc.*) — this is the data this module created.
  • The menus, actions, views and reports this module installed.
  • Its scheduled actions (cron jobs) — they stop immediately on uninstall.

What is preserved

  • Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
  • Attachments and chatter messages on standard records are kept.

As always, take a database backup before uninstalling in production.

Changelog

19.0.1.0.0

Current release for Odoo 19.0. This build includes:

  • Auto-generate ABC-driven reorder rules (Min/Max orderpoints) from a service level and safety-stock days, opt-in and never touching manual rules. Also classify products with ABC (Pareto value) and XYZ (demand variability) analysis, combine them into a 9-cell ABC-XYZ matrix with stocking policies, snapshot over time and write the classes back onto products.

Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).

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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with