Provisions & Contingencies (IAS 37)
Recognise, discount, unwind, remeasure and utilise IAS 37 provisions with every step posted to the ledger and locked, while contingent liabilities and assets stay disclosure only and are never posted.
Why this module
Provisions & Contingencies (IAS 37)
Present value done properly
A pre-tax rate and a period count discount the best estimate to present value, and the Unwind Discount action accretes the carrying amount one compounded step per whole period that has fallen due, capped so it never overshoots the undiscounted estimate.
Contingencies never touch the ledger
Contingent liabilities and contingent assets are flagged as disclosure only. Recognising them is blocked at the action, and a validation constraint refuses any contingent item that reaches a recognised or settled state (IAS 37.27-28).
State follows the postings, not the keyboard
A recognised provision cannot be re-keyed to settled, reversed or cancelled by a raw write, and its measurement inputs freeze once posted. Transitions run only through the Utilise, Reverse and Cancel actions that post the matching journal entry.
Day in the life
A warranty provision from recognition to settlement
You raise a warranty provision, enter the best estimate, a discount rate and the periods to settlement, and press Recognise. The present value posts as expense against the provision liability. Each period you press Unwind Discount and the finance cost accretes the liability towards the full estimate. When a claim is paid you enter the amount and press Utilise, settling it against the provision; once the carrying amount reaches nil the provision moves to settled automatically. If the estimate changes you press Remeasure to book the difference through profit or loss.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
The unwind schedule runs on real dates from the recognition date to the settlement date in equal steps. A repeat click inside the same period yields zero elapsed periods and is refused, so no period is ever unwound twice.
Unwinding is capped at the difference between the undiscounted best estimate and the current carrying amount, so the discount can never push the liability above the estimate.
Utilise refuses any amount above the provision carrying amount rather than driving the liability negative, and clears the input after each settlement.
Best estimate, discount rate, periods, settlement date, classification and type freeze once a provision is recognised; a raw edit is blocked, and a real change in estimate must go through Remeasure which posts it to profit or loss.
A provision that has posted moves cannot be deleted; the posting move link uses restrict ondelete, so you reverse or utilise and then cancel instead of orphaning a posted journal entry.
What is inside
Built to do the job, end to end.
- eh.provision model. A single provision or contingency record on models/provision.py carrying classification, provision type (legal, constructive, onerous, restructuring, warranty, other), best estimate, discount rate, periods, present value, carrying amount and utilised amount, with mail thread tracking.
- Six posting actions. Recognise, Unwind Discount, Remeasure, Utilise, Reverse and Cancel, each validating the required accounts and journal, posting a balanced entry, and advancing state only after the general ledger movement is booked.
- Account routing. Separate provision liability, expense, finance cost and settlement account fields, each domain filtered to the correct account types, plus a general journal, so every leg lands where it belongs.
- Guarded write and unlink. The write override freezes measurement inputs and blocks direct state re-keying on posted provisions; the unlink override protects recognised, settled and reversed records from deletion.
- Security and isolation. Access rows for EH user, manager and read only auditor groups, a global company isolation record rule on eh.provision, and posting restricted to the EH Accounting Manager group.
- Sealed journal entries. Every entry generated by a provision action is stamped eh_sealed and linked back to the provision, so posted provision moves are locked against later edit by the base suite seal.
Honest about the edges
What this does not do, so nothing surprises you.
- It does not build the IAS 37 disclosure note or reconciliation tables; contingent items are recorded and flagged for disclosure but no formatted note is generated.
- It does not schedule automatic period end unwinding; the Unwind Discount action is run by a manager, it does not post on a timer or cron.
- It does not reimburse or net a right to reimbursement from a third party as a separate asset (IAS 37.53-58).
- It does not measure onerous contracts, restructuring or warranty populations by any built in model; you enter the best estimate yourself, the module supplies the classification and the mechanics.
- It does not handle multi currency provisions beyond the company currency; amounts are held in the company currency of the provision.
- It does not post to analytic accounts or tags on the generated entries.
- It is not a tax provision or a deferred tax engine; income tax uncertainty under IAS 12 is out of scope.
odoo 19 provisions, IAS 37 provisions odoo, provision accounting odoo, best estimate provision, present value provision odoo, discount unwinding finance cost, onerous contract provision, restructuring provision odoo, warranty provision accounting, contingent liability disclosure, contingent asset odoo, provision remeasurement IAS 37, provision reversal writeback, provision liability journal entry, odoo community accounting provisions
Provision recognised and discountedAn IAS 37 provision measured at the present value of the best estimate, with the carrying amount, the discount unwind schedule, and the utilise, remeasure, and reverse actions on the recognised liability.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...
Sync Employment Hero leave categories, leave requests and leave balances into the standard Odoo Time Off app, wit...
Show the Hijri (Umm al-Qura) date alongside Gregorian dates across Odoo 17
Connect Odoo partner records to the Saudi SPL National Address service and the Wathq commercial registry
One click install of the full Employment Hero integration for Odoo Community, covering the connector, two way syn...
The Malaysia country pack for the ERP Heritage Employment Hero integration
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Community Apps Dependencies | Show |
| Lines of code | 5040 |
| Technical Name |
eh_account_provisions |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Please log in to comment on this module