Analytic Activity Based Cost
With Activity Based Costing (ABC), costs are generated by activities.
Activities generating costs are represented as Analytic Items. For example, a timesheet entry could be an activity. Other activities could be captured to be stored in Odoo as Analytic Items.
These activity Analytic Items will automatically generate additional Analytic Items for the costs driven this activity. For example, a machine operating time could drive consumptions of Labor and Overhead.
The cost drivers are regular non-storable Products, with an additional definition of the costs they drive.
auto_awesome What this module does
AI-generated from the code · Odoo 14.0Set up Activity Based Costing: mark products as cost drivers, define the cost products they generate, and let analytic items automatically create related cost analytic items.
This module adds Activity Based Costing to Odoo's analytic accounting. Users can flag a product as a "Cost Driver" and, on that product, list the cost products it drives with a quantity factor. A new menu "Cost Drivers" lists these products, and "Activity Based Cost Rules" lists the rules linking a driver to each cost product.
When an analytic item is created for a cost-driver product, the module automatically creates child analytic items for each cost rule. These child items are linked to the parent through "Related Analytic Items", and their quantity and amount are computed from the parent's quantity and the rule's factor and cost product price. The parent analytic item shows a roll-up of the breakdown quantity and amount.
Business rules: a product cannot have activity costs unless it is marked as a cost driver; the standard cost of a cost-driver product is automatically rolled up from its activity costs. The analytic item form gains a "Related Analytic Items" tab, and the analytic item list and search gain breakdown columns and a "No Driven Costs" filter. Access to cost rules is read-only for regular users and full for accounting managers.
Depends on
Required by other modules
Menus it adds
Models and fields (3)
- product.product · extends an existing modelis_cost_type (Is Cost Driver), activity_cost_ids (Activity Costs)
- activity.cost.rule · new modelname (Description), active, factor (Qty. Factor), parent_id, product_id (Cost Product), standard_price
- account.analytic.line · extends an existing modelchild_ids (Related Analytic Items), parent_id, unit_abcost (Breakdown Quantity), amount_abcost (Breakdown Amount), activity_cost_id
Text generated by AI (DeepSeek) from reading the Odoo 14.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/account-analytic.
terminal Installation and usage
OCA documentation · Odoo 14.0Usage
Source · Odoo 14.0When creating Analytic Items for a cost driver Product, the corresponding Analytic Items for driven cost are generated.
- When an Analytic Item is created, an automatic process checks the Activity Based Cost Rules to identify the ones that apply.
- Each rule creates a new Analytic Item for the driven costs, as a copy of the original one, with:
- Product: set to rule's Cost Type Product. A validation error prevents this from being the same as the source Analytic Item Product, to avoid infinite loops.
- Cost Quantity: is the original quantity multiplied by the rule's Factor
- Cost Amount: is -1 * Quantity * Product Unit Cost
- Parent Analytic Item (new field): set with a link to the original Analytic Item
- Quantity: zero, to avoid duplication
- Amount: zero, to avoid duplication
- Project and Task: if present, are reset, to avoid representing the driven costs as timesheet lines.
An update on the original Quantity triggers a recalculation of the quantity and amount of the child Analytic Items.
A delete cascades to the child Analytic Items, causing them to also be deleted.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.