Leave Liability & Accrual Provisioning Report
Value every employee's outstanding statutory leave and provision the balance-sheet liability - straight from Odoo Time Off, no payroll app required.
What this report does
Unused paid leave is a real liability. Under both IFRS (IAS 19, accumulating paid absences) and US GAAP (ASC 710, compensated absences), an employer must recognise the cost of leave that employees have earned but not yet taken, measured at the amount it expects to pay. This module turns the leave balances already living in Odoo Time Off into that number: a per-employee, per-leave-type valuation of outstanding days, grossed up for employer on-costs, ready to post as a provision and hand to auditors.
It reads validated allocations and validated time
off directly from community hr_holidays - there is
no dependency on the Enterprise Payroll application.
Outstanding-balance valuation
For each employee and leave type the report computes allocated − taken = outstanding days, multiplies by a daily pay rate derived from the employee's annual (or annualised monthly) base, and produces the base provision. Balances fully taken are excluded - only a real liability is provisioned.
Employer on-cost loading
Add your jurisdiction's employer social-contribution percentage as a configurable loading - company-wide, per employee, or per valuation run - so the provision reflects the full expected cost, not salary alone. No country rate is hard-coded: you supply your own published figure.
Proportional accrual check
Each line shows the days earned to date on a straight-line accrual basis against the leave year, and flags employees who are over-allocated (granted more than they have yet earned) or under-allocated, so you can see future cost already on the books.
Audit-ready register export
One click exports the full valuation as a CSV register - company, valuation date, currency, every line and a TOTAL row - for reconciliation, journal posting, or your auditors. Reports move through Draft → Valued → Posted with a chatter log.
How the provision is calculated
| Step | Formula | Source |
|---|---|---|
| Daily rate | annual base ÷ working days / year | Employee base; company calendar divisor (default 260 = 52×5) |
| Outstanding days | validated allocations − validated time off | Odoo hr.leave.allocation / hr.leave |
| Base provision | outstanding days × daily rate | Valuation engine |
| Employer on-cost | base provision × on-cost % | Your configured employer-contribution rate |
| Total provision | base provision + on-cost | Balance-sheet figure |
| Earned to date | full-year entitlement × elapsed ÷ year length | Straight-line accrual |
Feature summary
- Point-in-time leave-liability valuation per employee and leave type.
- Daily rate from annual or annualised-monthly leave-pay base, with a configurable working-days-per-year divisor.
- Configurable employer on-cost loading (company, employee, or per-run override).
- Straight-line proportional accrual with over- / under-allocation flagging.
- Provision totals: outstanding days, base provision, on-cost, total provision, over-allocated count.
- One-click wizard to generate a dated report; Draft / Valued / Posted workflow with chatter.
- CSV register export with company, date, currency and TOTAL row.
- Pure-Python valuation engine, fully unit-tested; builds on community
hr_holidaysonly. - Multi-company aware; works on Odoo 18 and 19.
Scope & disclosure
This module performs the arithmetic of the accumulating-compensated-absences model on the leave data in your Odoo database and produces a valuation register. It does not ship statutory rates: the working-day divisor and employer on-cost percentage are inputs you set from your own jurisdiction's published figures. It does not transmit any employee data to a third party. Confirm the measurement basis with your accountant before posting the provision.
Screenshots
Generate Report
Liability Lines
Liability Reports
Update date: 2026-07-02