Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX

Project Profitability for Odoo 19 Community documentation

A guide to project profitability: how the figures are made, the report, the project tab, the target margin and the warning, and the access rights.

Documents version 1.0.0Updated Oct 24, 2026

Start here

In plain words: Does this project make money? The answer is scattered: the timesheets are in one place, the vendor bills in another, the invoices in a third. Project Profitability puts them together. Every project already has an analytic account: the timesheets, the vendor bills and the customer invoices that reach it become one list, with revenue, costs, margin and margin % per project, per month, per customer or per kind. Give each project a target margin and Odoo tells you which ones fall below it.
The margin by project and kind, the profitability tab of a project and the graph of the margins.
The margin by project and kind, the profitability tab of a project and the graph of the margins.
Tip: No new data entry: it reads what Odoo already records when people log time and post bills and invoices.

What you get

FeatureWhat it does
One reportRevenue, costs, margin and hours of all the projects: pivot, graph and list.
Split by kindTimesheets (valued at the cost of the employee), vendor bills, customer invoices and other entries.
Group by anythingProject, customer, project manager, kind, month; filters for this year and the last 90 days.
On the projectA Profitability tab with the figures and the hours, and a Margin % button that opens the detail.
Target marginA percentage per project (20% by default), a red warning on the project and a Below target margin filter.
Weekly warningAn optional scheduled action gives the project manager an activity for each project below target, at most once a month.
RightsProject managers and accounting managers see the figures; other project users do not.
Multi-companyEach company sees its own projects.
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededProject (project), Timesheets (hr_timesheet) and Invoicing (account)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_project_profitability.zip; unzip it to get the folder taqnix_project_profitability.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Project Profitability and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_project_profitability --stop-after-init

How the figures are made

FigureWhere it comes from
RevenueThe positive analytic lines of the project's analytic account: customer invoices (credit notes reduce it).
CostsThe negative lines: the timesheets at the cost of each employee, the vendor bills and the other costs sent to the account.
MarginRevenue minus costs. Margin % is the margin divided by the revenue.
HoursThe hours of the timesheets.
Important: The figures follow the analytic account of the project: put the project's analytic account on the lines of your bills and invoices (analytic distribution) so that they are counted.

The report

In plain words: Project → Reporting → Profitability. The pivot shows the margin of each project by kind; add the revenue and the costs from Measures, open a project to see the months, or switch to the graph and the list.
The margin by project and kind.
The margin by project and kind.
The margins: the project below zero stands out.
The margins: the project below zero stands out.
Every line behind the figures.
Every line behind the figures.

On the project

In plain words: The Profitability tab of a project shows the revenue, the costs, the margin, the margin % and the hours, and the target margin that you can change. Under the target, a red message appears. The Margin % button opens the detail of the project. In the list of projects, the Margin % column can be shown and the filter Below target margin finds the projects in trouble.
A project below its target margin.
A project below its target margin.
The list of projects.
The list of projects.

The weekly warning

In plain words: Settings → Technical → Scheduled Actions → Project profitability: warn the managers is switched off. Activate it and each project manager gets an activity for each of their projects below target, once a month at most.

Who can do what

WhoCan
Project managersSee the report and the Profitability tab, change the target margin.
Accounting managersSee the report.
Other project usersSee neither the report nor the figures.

Arabic and right to left

The report in an Arabic interface.
The report in an Arabic interface.

Limits

LimitDetail
Analytic accountOnly what reaches the analytic account of the project is counted: timesheets and analytic lines of invoices and bills.
Cost of timeTimesheets are valued with the hourly cost set on the employee.
One account per projectIf several projects share an analytic account, each shows the same lines.
Not accountingIt is a management view: it does not replace the accounting reports.

For developers

In plain words: Skip this chapter if you only use the module.
project = env['project.project'].browse(project_id)
project.tx_revenue, project.tx_cost, project.tx_margin, project.tx_margin_pct, project.tx_below_target
rows = env['taqnix.project.profit']._read_group([('project_id', '=', project.id)], ['kind'], ['revenue:sum', 'cost:sum'])
env['project.project']._cron_margin_alert()     # an activity for the manager of each project below its target

Troubleshooting

ProblemWhat to do
A project shows nothingIt has no analytic account, or nothing reached it: check the analytic distribution of the bills and invoices and the timesheets.
The cost of the timesheets is zeroSet the hourly cost on the employees.
I do not see the tabYou need the Project Administrator group.
The margin looks wrongOpen the list: every line behind the figure is there.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_project_profitability. Nothing is stored beyond the target margins.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.