"So what did that project actually earn us?" If you can only answer that question with an Excel file full of cut-and-pasted general ledger lines, you are leaving one of Odoo's strongest features unused: analytic accounting. Margin per project, per customer or per department — without a separate reporting package.
The basics: analytic accounts per project
First activate Analytic Accounting via Accounting → Configuration → Settings. Then create an analytic account per project (Accounting → Configuration → Analytic Accounts). Next, link that account to everything the project touches, via analytic distributions:
- sales order lines — the revenue side;
- purchase orders and vendor bills — materials and subcontracted work;
- timesheets via the Timesheets app — your biggest cost item in services;
- expenses and travel costs via the Expenses app.
In Reporting → Analytic Reports you then see the margin per project, with drill-down to every underlying entry. If an amount doesn't add up, you are two clicks away from the source invoice.
Multiple dimensions with Analytic Plans
Since Odoo 17 there are Analytic Plans: several analytic dimensions side by side. Think of an installation company that wants to know per invoice line: which project (Renovation Office Building X), which department (Electrical or Mechanical) and which market (commercial or residential). One invoice line is posted against all three dimensions in a single move — nobody has to register anything twice. Per plan you also set whether filling it in is mandatory, so costs don't slip 'anonymously' into the accounts.
Pitfall: discipline on the cost side
Revenue is usually right quickly (it comes from the sales order), but costs without an analytic tag make your project margin look too rosy. So set a default distribution per supplier or product category, and make the field mandatory where you can.
Finally
Practical tip: start with one plan and at most ten active analytic accounts, and only expand once keeping it up becomes routine — an overly fine-grained structure dies a quiet death in practice. Need help setting up project accounting in Odoo? Contact DAADit Group.
"So what did that project actually earn us?" If you can only answer that question with an Excel file full of copy-pasted ledger lines, you are leaving one of Odoo's strongest features on the table: analytic accounting. Margin per project, per customer or per department — without a separate reporting package.
The basics: analytic accounts per project
First activate Analytic Accounting via Accounting → Configuration → Settings. Then create an analytic account per project (Accounting → Configuration → Analytic Accounts). Link that account to everything the project touches, using analytic distributions:
- sales order lines — the revenue side;
- purchase orders and vendor bills — materials and subcontracted work;
- timesheets via the Timesheets app — your biggest cost in a services business;
- expenses and travel costs via the Expenses app.
In Reporting → Analytic Reports you then see the margin per project, with drill-down to every underlying entry. If a number looks off, you are two clicks away from the source invoice.
Multiple dimensions with Analytic Plans
Since Odoo 17 there are Analytic Plans: several analytic dimensions side by side. Picture an installation company that wants to know, per invoice line: which project (Office Renovation X), which department (Electrical or Mechanical) and which market (commercial or residential). One invoice line is booked against all three dimensions in a single move — nobody registers anything twice. Per plan you can also make entry mandatory, so costs cannot slip into the books 'anonymously'.
Pitfall: discipline on the cost side
Revenue is usually correct quickly (it flows from the sales order), but costs without an analytic tag make your project margin look better than it is. So set a default distribution per supplier or product category, and make the field required wherever you can.
Wrapping up
Practical tip: start with one plan and at most ten active analytic accounts, and only expand once the habit sticks — an overly fine-grained structure tends to die a quiet death in practice. Need help setting up project accounting in Odoo? Contact DAADit Group.