Investment Property (IAS 40)
Account for property held to earn rentals or for capital appreciation under IAS 40, with a policy choice of the fair value model or the cost model and every measurement change posted to a balanced, manager gated, audit stamped journal entry.
Why this module
Investment Property (IAS 40)
Fair value or cost, your policy choice
Pick the fair value model or the cost model per property on the draft record. Fair value properties are remeasured to fair value with the change in profit or loss, cost model properties are depreciated straight line, and the form only shows the fields and buttons that apply to the chosen basis.
Book value follows the posted ledger
Carrying amount and accumulated depreciation are ledger controlled. Once a journal entry exists they are frozen against direct edits, and recognition, remeasurement, depreciation, transfer, and disposal are the only actions that roll them forward, so the book value can never drift away from the posted entries.
It tells you what is missing
A missing property, gain/loss, cash, or accumulated depreciation account, a missing journal, a wrong state, a remeasurement under the cost model, a nil change, or an exhausted depreciable base each surface an explicit message instead of a half posted entry.
Day in the life
From acquisition to disposal on one screen
You create a property, set it to the fair value model, enter the acquisition cost, and an EH Accounting Manager recognises it at cost, which moves it to Held and sets the carrying amount. At the reporting date you enter the new fair value and press Remeasure: the module posts a balanced entry to the property and fair value gain or loss accounts and rolls the carrying amount forward. Later you press Transfer Out to reclassify it into PP&E or inventory, or Dispose to enter the proceeds and derecognise it, with the gain or loss on disposal falling out as the balancing line. Every entry is one click away through the Entries button.
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 straight line charge is capped at the remaining depreciable base, so accumulated depreciation can never exceed cost and the carrying amount can never go negative past the end of the useful life.
On transfer and disposal the cost model credits the property at gross cost and reverses accumulated depreciation out separately, while the fair value model uses the carrying amount as deemed cost, so accumulated depreciation is never stranded.
Once an entry is posted, initial cost, useful life, and model basis are frozen too, because editing them would silently re-base every later depreciation charge or switch the property onto a basis inconsistent with what is already posted.
Resetting a property that carries a posted move back out of held, disposed, or transferred is manager gated, so a plain user cannot lift the ledger freeze and orphan its entries.
A property with posted entries cannot be deleted or plainly cancelled; the entries must be reversed first so nothing is left orphaned in the general ledger.
What is inside
Built to do the job, end to end.
- eh.investment.property model. A single tracked record per property with model basis, acquisition date, initial cost, carrying amount, fair value, computed remeasurement, and a draft, held, disposed, transferred, cancelled lifecycle on the mail thread with activities.
- Action methods. action_activate recognises at cost, action_remeasure posts the fair value change, action_depreciate posts the cost model charge, action_transfer_out reclassifies under IAS 40.57, and action_dispose derecognises under IAS 40.66-69, each building a balanced move through _post_move.
- account.move link. Every property posts general journal entries carrying an eh_investment_property_id back reference marked eh_sealed, with a restrict ondelete and an Entries stat button that opens the linked moves.
- Security and isolation. Access is split across the EH user, manager, and read only auditor groups in ir.model.access.csv, and a global company isolation record rule in eh_isolation_rules.xml scopes records to the user companies.
- Reference sequence. New properties draw an INVPROP/year/ reference from a company shared ir.sequence when left as the default placeholder.
Honest about the edges
What this does not do, so nothing surprises you.
- It does not manage leases or rental income; it accounts for the property asset itself, not the tenant, lease, or rent invoicing.
- Fair value is entered by the user; there is no valuation engine, external appraisal feed, or fair value hierarchy disclosure.
- It does not automate periodic depreciation; each depreciation charge is posted on demand by pressing the button, there is no scheduled run.
- It does not model deferred tax on the fair value change or produce IAS 40 disclosure notes.
- It does not handle transfers into investment property from owner occupied property or inventory; the transfer action covers reclassification out only.
- It depends on eh_account_base and the standard Odoo accounting app and is a Community module, with no Enterprise features assumed.
odoo 19 investment property, IAS 40 odoo, fair value model odoo, cost model investment property, investment property revaluation, fair value gain loss profit or loss, investment property depreciation, transfer out of investment property, investment property disposal, derecognition IAS 40, carrying amount roll forward, rental property accounting odoo, capital appreciation property, odoo community IFRS, investment property journal entry
Investment property, fair value modelAn IAS 40 investment property carried at fair value, with each remeasurement recognised in profit or loss and the cost-model and transfer paths available.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
The United Kingdom country pack for the ERP Heritage Employment Hero integration
Sync Employment Hero employees, departments and payroll bank details into standard Odoo Community HR over the pla...
Inbound webhook receiver for the Employment Hero people and payroll platform on Odoo 19 Community
Real-time fiscalisation of customer invoices and credit notes with the Mauritius Revenue Authority e-Invoicing (E...
The Canada country pack for the ERP Heritage Employment Hero integration
Please log in to comment on this module