An owner of a services firm opens the project board in the morning with three questions. Which project deserves attention now? Which work can be billed? How much of the contract value is left after delivery costs? A completed-task percentage shows how far the team has travelled, but it is not the financial result. When projects, tasks, timesheets and billing in Odoo are configured around the customer agreement, the three questions can be read from one place. The owner decides from figures: which project needs intervention, which deliverable is ready to invoice, and which extra request needs pricing before work starts.
ToDoOps helps design that link from quotation to invoice. By agreement, the scope covers project, task, time, billing and analytic account configuration, plus team training.
How do you tell which Odoo project needs attention?
Attention belongs where three things drift apart: what has been completed, what can be invoiced, and what delivery has cost. A project with most tasks finished can still have consumed more hours than its price covers. Work may also be complete while an agreed deliverable awaits client approval. So we organise each project to show three readings together:
- Tasks with an owner, a date and a clear acceptance condition.
- Hours and costs linked to the project.
- What was sold, what was invoiced and what is still waiting.
Not every project is commercial. Internal, non-billable work, such as developing a procedure or preparing an office, can use tasks and time without a sale attached.
When does work become billable?
Customer invoicing depends on how the service is set up: fixed or prepaid, time-based, or milestone-based. So we start from the contract, name the event that allows an invoice, and build the tasks around it.
With milestones, a milestone can be reached automatically when all its linked tasks are done or cancelled, or it can be marked manually. A manual mark does not complete the tasks. A milestone reached by configuration is not a client acceptance record unless you have agreed that process. Invoice creation and posting follow, and collection is a separate step again. Agreeing this chain upfront prevents disputes before they reach the invoice.
How do you record Odoo timesheets reliably?
Recording time requires a user linked to an employee, the right access, and timesheets enabled on the project. Each entry carries a date, project, task, description and time spent, plus the sales order item when the work is billable. Permissions separate users who see only their own entries from those who see everyone’s, and that decides who reviews and who corrects.
Logged time supports cost, billing and capacity planning. It is not proof of attendance, a measure of personal productivity, or automatic customer acceptance. We state the purpose to the team from day one so entries stay accurate.
What does the Odoo project profitability dashboard show?
The Odoo 19 profitability dashboard shows revenue and cost records linked to both the project and its analytic account (reference). These details matter when reading it:
- Expected, To invoice/To bill, and Invoiced/Billed are stages of the same business flow. They are not separate revenues or costs to be added together.
- Timesheet cost depends on the employee’s HR settings.
- Purchase order costs appear once the vendor bill is posted.
- Stock material costs need Analytic Costs enabled on the relevant inventory operation types.
So a partly linked dashboard is not statutory net profit, and an invoice is not cash collected; receivables are reviewed in their own view.
A worked example: from service value to project margin
This example is entirely hypothetical and does not reflect ToDoOps prices or any customer result. Take the same period and service basis:
| Item | SAR |
|---|---|
| Assumed service value | 20,000 |
| 100 recorded hours × assumed internal cost of SAR 80/hour | 8,000 |
| Separate supplier cost | 3,000 |
| Approved expenses | 1,000 |
| Total direct cost | 12,000 |
| Balance | 8,000 |
The balance of SAR 8,000 is 40% of SAR 20,000, before overhead, tax and other excluded costs. Two cautions apply: a purchase order and its related vendor bill are counted once, and the cost of employee hours is not automatically an extra out-of-pocket charge. Finance reviews the comparison as a same-period, same-basis view rather than a complete legal profit calculation, and invoice value differs from recognised revenue and from collected cash.
The owner can then discuss the cost that needs attention, while finance traces the amount to the time or expense record behind it.
How do projects connect to sales, inventory and accounting?
For a client project, the quotation connects to work, any required purchases and invoicing according to scope. To see how a cycle moves between departments, try Odoo interactively: a guided simulation with fictional data for a sales and inventory path. It helps accounting, support and purchasing teams understand a cycle that crosses departments, but it does not simulate the project or timesheet interface. Browse the Odoo apps, or the industries page if your activity belongs to a specific sector.
How do you estimate the budget for setting up a project cycle?
Effort is shaped by the number of pricing models, template complexity, data volume, the reports you need and any agreed development. For an initial estimate, the optional ToDoOps calculators for implementation cost and estimated savings are a place to start; they are not required before contacting us.
Why look at project outcomes and not tasks alone?
A PMI press release dated 11 December 2025 describes the Step Up research, which involved more than 5,800 project professionals, stakeholders and knowledge workers worldwide, and which values outcomes and stakeholder views beyond time and budget (reference). We therefore start the report with the decision it helps you make, then connect it to the task and document that explain it.
Frequently asked questions
Does task completion equal billing completion? No. Billing follows the service policy: fixed, time-based or milestone-based. A finished task shows readiness of the work, not the invoice amount.
Do all costs appear on the project dashboard automatically? Records appear when they are linked to the project and its analytic account. Purchase cost appears after the vendor bill is posted, and material cost needs Analytic Costs set up on the operations.
Do we have to attach a sale to every project? No. Tasks and time can serve internal, non-billable work.
Does a reached milestone mean the client accepted? Only if you agreed that rule in your process. Milestone status follows configuration, and invoice creation and collection are separate steps.
Who can edit logged hours? Timesheet permissions decide: own entries only, or all entries. We define with your team who reviews and who corrects.
References
- Odoo 19.0 documentation: Project profitability, Timesheets and Milestones. Covers the analytic-account link of the dashboard, invoicing policies, time-recording settings and milestone behaviour.
- Project Management Institute (PMI), press release, 11 December 2025. A public overview of the Step Up research and its outcome-oriented view of success.
For the wider operating model, read the Odoo for service companies guide.
Next step
Start with a sample contract, a delivery schedule and the report you want to read each morning, and design the project cycle around them. ToDoOps scopes the project, task, time, billing and analytic account setup and trains your team. For a first estimate, try the implementation cost and estimated savings calculators, then contact ToDoOps to define the scope.
