What Are Analytic Plans?
Starting with Odoo 17, Analytic Plans replaced the old analytic account system with a multi-dimensional approach. Instead of a single analytic account per transaction, you can now tag journal entries with multiple analytic dimensions simultaneously — department, project, cost center, and more. This enables richer cost analysis and reporting without duplicating data.
Understanding the Change
Old System (Odoo 16 and earlier)
# Old: Single analytic account per journal entry line
# Invoice line → Analytic Account: "Project Alpha"
# Problem: Can't also tag it as "Marketing Department"
# without creating compound accounts like
# "Marketing - Project Alpha"New System (Odoo 17+)
# New: Multiple analytic plans per journal entry line
# Invoice line → Department: Marketing
# → Project: Project Alpha
# → Region: North America
# Each dimension tracked independentlySetting Up Analytic Plans
Creating Plans
- Accounting → Configuration → Analytic Plans
- Create a plan for each tracking dimension
Common Analytic Plans
| Plan | Purpose | Example Accounts |
|---|---|---|
| Department | Track costs by department | Sales, Marketing, Engineering, HR |
| Project | Track costs by project | Project Alpha, Project Beta |
| Cost Center | Track by cost center | HQ, Branch A, Branch B |
| Region | Geographic tracking | North America, Europe, APAC |
| Product Line | Revenue by product line | Hardware, Software, Services |
Analytic Accounts Within Plans
Each plan contains analytic accounts that serve as the values for that dimension:
# Plan: Department
# Accounts:
# - Sales (code: DEPT-SALES)
# - Marketing (code: DEPT-MKT)
# - Engineering (code: DEPT-ENG)
# - Human Resources (code: DEPT-HR)
# - Finance (code: DEPT-FIN)
# Plan: Project
# Accounts:
# - Project Alpha (code: PRJ-ALPHA)
# - Project Beta (code: PRJ-BETA)
# - Internal R&D (code: PRJ-RND)Applicability Rules
Control which plans appear on which types of transactions:
Configuration
- Optional — Plan appears but is not required
- Mandatory — Plan must be filled for specific journal types
- Unavailable — Plan is hidden for certain transaction types
# Applicability examples:
# Department plan:
# Mandatory on: Expense journals, Purchase journals
# Optional on: Sales journals
# Unavailable on: Bank journals
# Project plan:
# Mandatory on: Timesheet entries
# Optional on: Purchase journals
# Unavailable on: Payroll journalsAnalytic Distribution
Distribute a single journal entry line across multiple analytic accounts within the same plan:
# Example: Shared office rent of $10,000
# Distribution:
# Department: Sales 40%, Marketing 30%, Engineering 30%
# Cost Center: HQ 100%
# Result:
# Sales gets $4,000 allocated
# Marketing gets $3,000 allocated
# Engineering gets $3,000 allocated
# All tagged as HQ cost centerDistribution Models
Create reusable distribution templates for recurring allocations:
- Accounting → Configuration → Analytic Distribution Models
- Define the split percentages
- Apply the model to journal entries with one click
Cross-Module Integration
Analytic plans work across all Odoo modules:
| Module | Where Analytics Appear |
|---|---|
| Accounting | Journal entry lines, invoices, bills |
| Purchase | Purchase order lines |
| Sales | Sales order lines |
| Expense | Expense lines |
| Timesheet | Timesheet entries |
| Manufacturing | Work order costs |
Reporting
Analytic Reports
Odoo provides multi-dimensional analytic reporting:
- By plan — Total costs/revenue per analytic account within a plan
- Cross-plan — Department costs broken down by project
- Period comparison — Analytic data compared across periods
- Budget vs. Actual — Analytic account spending against budgets
Pivot Table Analysis
Use the pivot view to create custom cross-tabulations:
# Pivot example:
# Rows: Department (Sales, Marketing, Engineering)
# Columns: Month (Jan, Feb, Mar, ...)
# Values: Total cost
# Or cross-plan:
# Rows: Project (Alpha, Beta, R&D)
# Columns: Department (Sales, Marketing, Engineering)
# Values: Hours loggedMigration from Old Analytic System
If upgrading from Odoo 16 or earlier:
- Existing analytic accounts become accounts in a default plan
- Create additional plans for new dimensions
- Re-tag historical entries if needed (optional)
- Set up applicability rules for the new multi-plan structure
Best Practices
- Plan your plans first — Decide on dimensions before creating anything
- Keep it simple — 2-3 plans are usually sufficient; more adds complexity
- Set applicability — Make plans mandatory where needed to ensure data quality
- Use distribution models — Template common allocations for consistency
- Train users — Multi-plan analytics require understanding of the concept
DeployMonkey + Analytic Plans
DeployMonkey's AI agent configures analytic plans, accounts, distribution models, and applicability rules based on your cost tracking and reporting needs.