What Are Analytic Accounts?
Analytic accounts track revenue and costs across a different dimension than your chart of accounts. While the chart of accounts answers 'what type of expense?' (rent, salary, supplies), analytic accounts answer 'what is it for?' (Project A, Department B, Client C).
Use Cases
| Use Case | Analytic Account | Tracks |
|---|---|---|
| Project costing | One per project | Revenue and costs per project |
| Department costs | One per department | Expenses per department |
| Client profitability | One per client | Revenue minus all costs per client |
| Product line | One per product line | Margin per product category |
| Grant tracking | One per grant | Fund usage vs budget |
Setting Up Analytic Plans (Odoo 17+)
# Odoo 17+ uses Analytic Plans instead of flat analytic accounts
# Plans define dimensions: Project, Department, Cost Center
# Settings → Accounting → Analytic Accounting → Enable
# Accounting → Configuration → Analytic Plans
# Create plans:
# Plan: Projects (required on all journal entries)
# - Project Alpha
# - Project Beta
# - Project Gamma
#
# Plan: Departments (optional)
# - Engineering
# - Sales
# - Marketing
# Each journal entry can be tagged with MULTIPLE analytic accounts
# from different plans simultaneouslyAnalytic Distribution
# Odoo 17+ uses analytic distribution (percentage-based):
# An expense can be split across multiple analytic accounts:
# Server cost $1,000:
# - Project Alpha: 50% ($500)
# - Project Beta: 30% ($300)
# - Project Gamma: 20% ($200)
# In the journal entry:
# Analytic Distribution: {"Project Alpha": 50, "Project Beta": 30, "Project Gamma": 20}
# This replaces the old analytic_account_id Many2one fieldAutomatic Analytic from Sale Orders
# When you confirm a sale order:
# Odoo auto-creates an analytic account for the project
# All related journal entries (invoice, COGS) are tagged automatically
# Flow:
# Sale Order → Confirm
# → Analytic account created: "SO0042 - Client X - Website Redesign"
# → Invoice posted → revenue tagged to analytic
# → Delivery → COGS tagged to analytic
# → Timesheets → labor cost tagged to analytic
# → Expenses → tagged manually or via project
# Result: complete project P&LAnalytic Tags (Cross-Cutting)
# Tags work across analytic accounts for additional filtering:
# Tags: Billable, Non-Billable, Internal, Marketing Campaign
# Use case:
# Project Alpha expense tagged:
# - Analytic Account: Project Alpha
# - Tag: Billable
# → Report shows: all billable expenses across all projectsReporting
# Accounting → Reporting → Analytic
# Reports available:
# 1. Analytic Balance: revenue - costs per analytic account
# 2. Analytic Items: all journal entries per analytic account
# 3. Budget vs Actual: compare budget to spent (if budgets set)
# Project profitability formula:
# Revenue (invoiced to client)
# - Direct costs (materials, subcontractors)
# - Labor costs (timesheets × internal rate)
# - Overhead allocation (if configured)
# = Project MarginBudgets
# Set budgets per analytic account:
# Accounting → Configuration → Budgets
# Budget for Project Alpha:
# Revenue target: $100,000
# Cost budget: $60,000
# Expected margin: $40,000 (40%)
# As expenses and revenue are recorded:
# Budget report shows: Budget $60K | Actual $45K | Remaining $15KCommon Patterns
- Service companies: One analytic per client project → tracks billable hours and expenses → project P&L
- Manufacturing: One analytic per production order → tracks material and labor → product costing
- Nonprofits: One analytic per fund/grant → tracks restricted spending → donor reporting
- Multi-department: One analytic per department → allocate shared costs → departmental P&L
Common Mistakes
- Not setting analytic on expenses → costs not allocated to projects
- Too many analytic accounts → reporting becomes unwieldy. Group by plan/level.
- Forgetting timesheet costs → labor is often the biggest cost but forgotten in analytic
- Not setting default analytic on recurring expenses → manual entry every month
DeployMonkey
DeployMonkey's AI agent configures analytic accounting — creating plans, accounts, default distributions, and budget structures. It generates project profitability reports in plain language.