Skip links

Odoo Timesheets: How They Work

What they are for

Timesheets record who spent how long on what.

Two reasons that matters.

Billing. For a services business, logged hours become customer invoices. Log the hours, invoice the hours, no re-entry.

Understanding cost. Even when you do not bill by time, knowing where hours actually go is valuable. Most companies are surprised by their first honest timesheet report.

And one thing to say up front: timesheets only work if people fill them in. That is a management commitment, not a software feature. Half-completed timesheet data is worse than none, because it looks complete and is not.

Decide whether you will enforce it before you start.

How the pieces connect

Timesheets sit between three things.

Employees — who logged the time. From the Employees app.

Projects and tasks — what the time was spent on.

Sales orders — if the work is billable, the hours flow into an invoice.

That chain is the reason to run timesheets inside Odoo rather than in a separate tool. Hours logged against a task on a project linked to a sales order become an invoice line without anyone retyping.

FIGURE 1: FROM AN HOUR WORKED TO AN INVOICE LINE

Sales order

  • Service sold

Project and task

  • Created automatically

Timesheet

  • Hours logged against the task

Invoice

  • Billed from those hours

Logging time

Three ways, and giving people a choice raises compliance.

On the task. Open the task, add a line with the hours and a description.

From the timesheet grid. A weekly view where you fill in hours across projects and days. Fastest for people logging regularly.

With the timer. Start and stop as you work. Accurate, and it suits people who switch between jobs frequently.

The description matters more than people think. “Work” is useless to whoever reads it later. “Reviewed draft contract and prepared comments” is a record somebody can act on.

Billable and non-billable

Every timesheet line is one or the other.

Billable. Chargeable to the customer. Flows into the invoice.

Non-billable. Internal work, admin, or work covered by a fixed price.

Set this correctly at the point of logging. Fixing billable status afterwards, across hundreds of lines, is a job nobody enjoys.

Whether time is billable comes from the project and task setup, so configure that properly and the default will usually be right.

Billing models

Decide this before the first task. It affects how everything else is configured.

Time and materials. You bill the hours worked. Timesheets drive the invoice directly.

Fixed price. You agreed a price. Timesheets do not drive the invoice, but they tell you whether you made money.

Milestone. You bill at defined delivery points. Timesheets track effort against those milestones.

A common mistake is treating fixed-price work as though timesheets do not matter. They matter more there, not less — it is the only way to find out that the job you quoted for forty hours took seventy.

FIGURE 2: THREE BILLING MODELS

Time and materials

  • Hours logged become invoice lines directly. The simplest chain.

Fixed price

  • Timesheets do not drive the invoice, but they tell you whether you made money.

Milestone

  • Billed at delivery points. Timesheets track effort against each one.

Planned versus actual

Set planned hours on each task. This is the field people skip and it is where the value is.

With planned hours set, Odoo shows planned against actual on every task and rolls it up to the project.

Why it matters: without an estimate, there is nothing to compare actuals against, and your quoting never improves.

Review it monthly. The first honest comparison of estimated against actual hours is usually uncomfortable and always useful.

Approval

Odoo Enterprise supports timesheet approval — employees submit, managers review and approve.

Worth it when: you bill customers from timesheets, or you have enough people that spot-checking matters.

Not worth it when: you are a small team where everyone sees everything anyway. It just adds a step.

Reports worth reading

Timesheet analysis. Hours by project, person and task. Where the time actually goes.

Project profitability. Revenue against the cost of hours logged. The report that tells you which kind of work is worth doing more of.

Planned versus actual. Your estimation accuracy.

Billable ratio. What proportion of logged hours are chargeable. For a services business this is one of the most important numbers you have, and many companies do not measure it.

Unbilled hours. Billable time logged and not yet invoiced. This is money you have earned and not asked for. Check it monthly.

FIGURE 3: FIVE NUMBERS WORTH WATCHING

Billable ratio

  • What share of logged hours are chargeable. Most services firms do not measure this.

Unbilled hours

  • Billable time not yet invoiced. Money earned and not asked for.

Planned vs actual

  • Your estimation accuracy. Look at it monthly and quoting improves.

Project profitability

  • Which kinds of work are actually worth doing.

Getting people to fill them in

The real problem, and it is not technical.

Make it quick. The grid view takes two minutes a day. Show people how to use it rather than assuming they will find it.

Make it daily. Reconstructing a week on Friday afternoon produces fiction. Ten minutes a day is more accurate and less painful.

Explain what it is for. People fill in timesheets for a purpose they understand. “Management wants it” is not one.

Show them the output. If the team never sees the profitability report their hours produce, the exercise feels pointless.

Follow up on gaps. If missing timesheets have no consequence, they will keep being missing. This is the part that requires management rather than software.

What goes wrong

Half the team logs, half does not. Your data is worse than useless, because it looks complete.

Weekly reconstruction. Guessed hours, recorded as fact.

No planned hours. Nothing to compare against, so estimation never improves.

Wrong billable status. Corrected months later across hundreds of lines.

Nobody reads the reports. Then it is data entry with no purpose, and people notice.

Getting started

  1. Decide your billing model per project
  2. Set planned hours on every task from the start
  3. Show the team the grid view specifically
  4. Make daily logging the expectation
  5. Review planned versus actual after the first month
  6. Check unbilled hours monthly
  7. Share the profitability report with the team

Point 4 is the whole thing. Everything else in this article depends on it.

Not sure which of your projects actually make money?

Get in touch. We connect timesheets to projects and invoicing so profitability is a report rather than a guess — and help you get the team logging consistently.

Leave a comment

Drag