The management of employee leaves is an HR task that seems to be easy at first glance but which gets complicated very fast if there is no proper tool for it - incorrect counts, missed carry-overs, and spreadsheet calculations that will never match reality. The solution from Odoo 18 to this issue is a combination of two interconnected features - Leave Allocation and Accrual Plan. These allow you to provide employees with a set of leave days and create these days gradually depending on experience or time spent at work.
This tutorial will show you how these features work in Odoo 18 and how to implement them for your company.
Why Leave Allocation and Accrual Plans Matter
Each company manages leave in its own way. There are those that provide a pre-determined number of leave days at the beginning of the year, while others have their employees earn their leave according to their work, e.g., earning a leave day per month, or according to their period of service with the firm. Odoo Time Off module has all this functionality out-of-the-box, no additional features required:
Leave Allocation – where you allocate a pre-determined amount of leave days/hours to your employees for a particular leave type.
Accrual Plans – where leave is calculated using a certain rule, either regularly, based on work hours, or based on tenure.
It is important to know which of these to apply and how.
Leave Categories Setup
Before allocating or accruing any leave, Odoo will need to be informed of the type of leave that is being managed. Navigate to Time Off > Configuration > Time Off Types and create categories for Paid Time Off, Sick Leave, or Unpaid Leave. With every category, one can specify:
- If it is an approval-based category
- If it should allocate leave before requesting it
- If the balance can go negative
- For which company/country it applies
The above configuration will affect allocations and accruals that come after, so you want to do it right from the beginning.
To create a Leave Allocation go to Time Off → Management → Allocations and click New.
Here specify, Employee or Employees, Time Off Type, Allocation Type, Duration, Validity Period.
Depending on your configured approval flow, the allocation typically may need approval from an HR officer or manager one submitted, after which the balance becomes visible on the employee's Time Off dashboard.
Whereas Standard Allocation is only a single allocation, Accrual Plan does the job automatically over time according to customizable rules. It is best suited for policies such as “Employees accumulate 1.5 days per month” and “Leave accumulation grows after 3 years of work.”
To create an Accrual Plan go to Time Off >> Configuration >> Accrual Plans. The main parameters are:
- Accrued Gain Time — whether leave will be allocated at the beginning or end of the period.
- Frequency — daily, weekly, bi-weekly, monthly, or annual accrual.
- Accrual Levels — that is where true customization begins.
An accrual plan is has one or more levels. For example:
- From day 0 employees will earn 1 day per month.
- After 12 months of service the rate increases to 1.5 days per month.
- After 36 months it increases again to 2 days per month.
Each level contains the following parameters:
- Accrual rate (the amount of vacation accruing per period).
- Maximum cap on accumulated leaves.
- Whether or not the accrued but unused leave rolls over to the next year and if yes, to what maximum.
- Milestone (date or "after X years/months of employment"), marks the start of a new accrual level.
Accrual allocation on its own will do nothing because there must be something to which it is linked. When creating an allocation, choose “Accrual Allocation” as the type and the specific accrual allocation you have made.
From that point onwards:
- A scheduled action is automatically run by Odoo to add leave to the employee’s leave balance depending on the frequency and level of the plan.
- The running balance is reflected real-time in the employee’s Time Off dashboard.
- In Time Off → Reporting, HR can view accrual progress per employee.
The leave management system faces many challenges, and the most common one is the treatment of unused leave at the end of the year. Odoo's accrual levels allow the definition of the following options:
- No carryover – unused balance goes back to zero.
- Carryover - all the unused leave carries forward.
- Partial Carryover – only a certain number of days carry forward, while the other is forfeited.
It is defined by accrual levels and thus gives the flexibility of having different carryover rules for different tenure levels of employees.
The availability of the time off irrespective of whether it results from manual allocations or accruals is visible to employees through the Time Off dashboard as well as in the app view under My Time Off. The managers and HR representatives get the overall picture of the situation at Time Off → Reporting → By Employee.

Leave a comment