Managing project billing efficiently is crucial for businesses that work with hourly rates or time-based services. Odoo 18 provides a seamless way to bill projects based on timesheet hours, making it easier for businesses to generate accurate invoices while tracking the time spent on tasks. In this blog, let's see how to set up timesheet-based billing in Odoo 18.
To begin, ensure that the Timesheets feature is activated for projects. Navigate to Project > Configuration > Settings.

Under the Time Management section, enable the Timesheets so that the time spent on projects and tasks gets tracked. Click on the Save button to save the settings.

Enabling this setting allows the capture of the time logged by team members, which can later be used for invoicing.
Once Timesheets is enabled, configure the project to bill based on the hours worked. Choose the desired Project, click on the icon at the top right corner of the project card, and go to Settings.

Under the Settings tab of the project, there is a Billable option under the Sales & Invoicing section. Ensure this option is enabled to allow invoicing for time and materials logged on the project.

This setting ensures that the customer will be billed according to the time logged on the project’s tasks. And if a new project has to be created, click on the New button.

Enter the project name and ensure that the Billable option is enabled, then click on Create project to create a new project.

Then add different stages for the project based on the requirement.

Now, navigate to the sales module and create a new service product, set the Create On Order as Task, then select the project that has been created, which means that the task will be created under that project upon the confirmation of an Order with this product. Then set the Invoicing Policy as Based on Timesheets. Also, provide the Sales Price in Hours.

Create one more product with the same configurations.

Go to Orders > Quotations and click on New to create a new sales order. Add the customer to whom the timesheet has to be billed and also provide the other details. Next, add the products ‘Planning’ and ‘Execution’ to the sale order so that the tasks are created under the project that has been created earlier. In the Sales Order, specify the quantity as the number of hours required for the associated tasks, which will then be set as the allocated hours for those tasks.
Upon confirmation of the sale order, the tasks will be created under the project, and the smart tab will appear.

Click on the ‘Tasks’ tab to access the tasks under the project.

Select the task for which the timesheet has to be added, the Customer and the Sale Order Item have been populated with the customer for which the sale order was created and the corresponding sale order, respectively. Also, the assignees can be added in the Assignees field.
Under the timesheet tab, add the time spent by the employee on this project that needs to be billed.

Here the Time Spent is 4 hours and the Time Remaining is given as 1 hour since the Allocated Time is 5 hours. Now go to the next task ‘Execution’ and also add the timesheet for that task.

Once the time spent on the project has been logged, click on the Sales Order smart tab to create an invoice for the time spent on each task.

In the sale order, the Delivered hours are the time that has been added as the time spent for the tasks. From here, click on Create Invoice to create the invoice for the Delivered hours. A pop-up appears with three options: Regular Invoice, Down Payment (Fixed Amount), and Down Payment (Percentage). The draft invoice is then generated, showing billing only for the delivered hours. After reviewing the draft invoice, clicking the Confirm button finalizes the invoice.

Here, the price has been calculated based on the Sales Price that has been configured for the product. Now the payment can be registered.
The Project Overview page of each project provides a complete overview of the project where users can monitor key project metrics such as tasks, timesheets, invoices, milestones, and financial profitability. To access the page, navigate to the project dashboard and click on the icon shown in the screenshot below of the desired project card.

A set of options for the View and Reporting is available there. Click on the dashboard to view the overview of the Project. When it is clicked a new page appears that contains the details regarding the Milestones, Profitability, Tasks, Timesheets, Invoices, etc.

The Tasks display the number of completed and pending tasks, Timesheets show the total hours logged by team members for the project; Invoices indicate the number of invoices created, and the Burndown Chart is a graphical representation of project progress based on task completion. Next, the Milestones are major progress checkpoints that must be reached for a project to be successful. Milestones for the project can be added by clicking on the Add Milestone button.
The Profitability section of the project dashboard provides an understanding of the revenue and the cost of the project as well.
Revenues
* Expected Revenue: The total estimated income from the project.
* To Invoice: The amount that is yet to be billed.
* Invoiced: The amount already billed to the customer.
Costs
* Timesheet Costs: Expenses incurred for the project based on employee hours.
* Expected Costs: The estimated project costs.
* Billed Costs: The actual costs billed.
On the left side, the project updates can be logged to share the progress of the projects. To create a new project update report click on the New button on the top left corner.

A new page appears where a project update report can be created.

The title for the report can be provided at the top; here, it is given as ‘Monthly Review’, also the status of the project such as On Track, At Risk, Off Track, On Hold, or Done can be provided. The progress of the project can be tracked and also the summary of the project can be provided in the report to know how the project is going. In the activities section, the report for the Revenue and the cost of the project is also provided. So from this report, the complete updates of the project are provided.
Timesheet-based billing in Odoo 18 offers a flexible and efficient way to manage project invoicing. By enabling timesheet tracking, setting up appropriate billing methods, and leveraging the power of Odoo's invoicing capabilities, businesses can ensure that project billing is accurate and transparent. This feature is ideal for businesses that need to track time-based services and provide clear, concise invoices to clients. Ideal for service-based industries, consulting firms, and any business that relies on time tracking, this feature simplifies financial management while enhancing overall efficiency and accountability in project billing.
To read more about How to Invoice Time & Material for Odoo 17 Project, refer to our blog How to Invoice Time & Material for Odoo 17 Project.