All posts
Functional5 min read

Configuring Leave Accruals and Year-End Carryover in Odoo

Set up Odoo leave accrual plans to automatically earn leave over time, configure year-end carryover limits, and expire unused balance - ensuring compliant time-off management.

Leave Accruals and Carryover in Odoo HR#

Many organizations accrue leave over time (e.g., 1.5 days earned per month of service) rather than granting the full annual allowance upfront. Odoo's accrual plan feature automates this - calculating and crediting leave balances on a schedule.

Setting Up an Accrual Plan#

Time Off → Configuration → Accrual Plans → New:

  • Name: Annual Leave Accrual - Monthly
  • Time Off Type: Annual Leave
  • Leave Based on: Working Days

Accrual Levels#

Levels tab → Add a line:

FieldValue
Start After0 months (from hire date)
FrequencyMonthly
Rate1.5 days per month
Cap18 days (maximum accrual)

Second level (for long-service employees):

FieldValue
Start After5 years
Rate2.0 days per month (increased after 5 years)
Cap24 days

Assigning Accrual Plans to Allocations#

Time Off → Managers → Allocation Request → New:

  • Time Off Type: Annual Leave
  • Allocation Type: Accrual Plan
  • Accrual Plan: Annual Leave Accrual - Monthly
  • Employee: [select employee]
  • Validity: hire date to end of year (or rolling)

Automatic Balance Crediting#

Odoo runs a scheduled action (usually nightly) that:

  1. Calculates how many days have been earned since the last accrual
  2. Credits the employee's leave balance
  3. Applies the cap if the balance would exceed the maximum

Year-End Carryover#

Configure what happens to unused leave at year end:

Time Off → Configuration → Activity Types → [Leave Type] → Carryover Policy:

  • No Carryover: unused days expire on December 31
  • Carryover Up to Limit: e.g., maximum 5 days carried to next year
  • All Days Carried: full balance rolls over

For carryover with expiry:

  • Set an Expiry Date on the carryover: e.g., unused carryover expires March 31 of the next year
  • Odoo automatically expires the carryover balance on that date

Viewing Accrual Balances#

Time Off → Managers → Allocations → filter by employee → see current balance and accrual history.

Employee self-service view: My Time Off → balance shows current accrued days and projected balance at year-end.

Compliance Considerations#

Different jurisdictions have minimum leave entitlements and carryover rules:

  • France: 5 weeks statutory, up to 6 days carryover to a leave account
  • Germany: minimum 20 days statutory, carryover until March 31
  • UK: 5.6 weeks statutory, employer policy on carryover

Configure separate accrual plans and time-off types for each jurisdiction if you have employees in multiple countries.

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free