Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Accounting
  3. Revenue Recognition (IFRS 15) v 16.0
  4. Sales Conditions FAQ

Revenue Recognition (IFRS 15)

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 8
Download for v 16.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 16.0 17.0 18.0 19.0
  • Description
  • Manifest
ERP Heritage · Accounting Suite
ERP Heritage Accounting Suite

Revenue Recognition (IFRS 15)

Run the full IFRS 15 five-step model in Odoo 16 Community, from contract and performance obligations through transaction price allocation to balanced revenue and billing journals.

Free · LGPL-3Odoo 16 Communityv16.0.1.2.0v16.0.1.2.0
Five-step revenue model
Transaction price allocation by SSP
Point in time and over time
Contract asset and liability
Balanced recognition journals

Why this module

Revenue Recognition (IFRS 15)

Five steps, real journals

The whole model, posted to the ledger

A contract, its performance obligations and their standalone selling prices drive an allocation of the transaction price (IFRS 15.74). Recognition posts the incremental amount since the last run, crediting revenue and clearing the contract liability first, then the contract asset (IFRS 15.105-107). Every entry balances by construction.

Balance sheet stays right

Contract asset and liability, always net-correct

Billing debits the receivable and credits the contract asset first, then the contract liability, while recognition works the other way. The two mechanics keep the net contract position, cumulative recognised less cumulative billed, correct on the balance sheet at all times (IFRS 15.106-107).

Beyond the basics

Variable consideration, financing, modifications

Opt-in per contract: constrain variable consideration to the highly probable amount (IFRS 15.50-59), allocate a bundle discount to the obligation it relates to (IFRS 15.81-83), discount a financing component with advance or arrears interest (IFRS 15.60-65), and apply separate, prospective or catch-up modifications (IFRS 15.18-21).

Day in the life

A software licence sold with a year of support

You raise a contract with two obligations, the licence transferred at a point in time and support delivered over twelve months, each with its standalone selling price. Activating allocates the transaction price across them. As the year runs you set the support percentage complete and recognise; the module posts the incremental revenue and moves the contract asset. When you invoice ahead of delivery, billing builds a contract liability that later recognition releases, so the ledger shows exactly what is earned and what is deferred.

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.

Bill ahead of work

Recognising against a contract that was billed ahead of performance clears the contract liability first and only then builds the contract asset, so a prepaid contract never shows a phantom asset (IFRS 15.105-107).

Progress goes backward

A reduced percentage of completion or a de-satisfied point-in-time obligation drops the target below what is posted; recognition then posts a balanced reversing entry, debiting revenue and crediting the asset then the liability, rather than leaving revenue overstated.

Basis frozen after posting

Once revenue has posted, the standalone selling price, satisfaction method, accounts, journal and transaction price are locked; re-basing them would silently restate posted revenue with no matching entry. Progress levers stay editable because they flow through a balanced recognition run.

Modify without restating

Adding or removing an obligation on a contract with posted revenue is refused outside a sanctioned modification; the modification wizard reallocates the remaining price prospectively, trues up under catch-up, or spins off a separate contract, and records which treatment was applied (IFRS 15.18-21).

No silent fallback

A contract with no obligations, a zero total standalone selling price, a missing revenue, contract-asset, contract-liability, receivable, interest account or journal, or an over-recognition beyond the allocated price each raises an explicit message instead of posting a wrong or unbalanced entry.

What is inside

Built to do the job, end to end.

  • eh.revenue.contract. The IFRS 15 contract: transaction price, allocated obligations, contract asset and liability computes, the recognise, bill, accrue-financing and modification actions, and the balanced _post_move that seals every entry. Journal entries link back through eh_revenue_contract_id.
  • eh.revenue.obligation. One performance obligation: standalone selling price, allocated price, point-in-time or over-time satisfaction, percentage complete, and cumulative recognised amount. Holds the variable consideration, constraint and specific-discount fields that feed the allocation.
  • eh.revenue.modification. An append-only audit record of each IFRS 15.18-21 modification: the treatment applied (separate, prospective or catch-up), the price before and after, and the separate contract created where relevant.
  • Modification wizard. A manager front end over the contract's _apply_modification: pick the treatment, optionally revise the transaction price, list the added distinct goods or services, and let the contract post the balanced result.
  • Security and sealing. EH Accounting Manager posts revenue and billing; users read and prepare; auditors read only. Posted moves are marked sealed. SQL CHECK constraints keep prices, percentages, estimates and discounts non-negative and percentages within 0 to 100.

Honest about the edges

What this does not do, so nothing surprises you.

  • It does not automatically read percentage of completion from timesheets, projects or milestones; progress is entered on each over-time obligation.
  • It does not generate customer invoices in the sales or invoicing app; the Record Billing action posts a receivable journal entry, it does not create an account.move of type out_invoice.
  • It does not estimate standalone selling prices for you; you enter the standalone selling price used to allocate the transaction price.
  • It does not build a full IFRS 15 disclosure note or contract-balance rollforward report; it maintains the contract asset and liability figures on each contract.
  • It does not itself capitalise or amortise costs to obtain or fulfil a contract (IFRS 15.91-104); its scope is the revenue side of the model.
  • Recognition and billing run from explicit user actions on an active contract; there is no scheduled or automatic period-end recognition job.
Search

odoo 19 revenue recognition, IFRS 15 odoo, performance obligation, transaction price allocation, standalone selling price, contract asset contract liability, deferred revenue odoo, over time point in time revenue, percentage of completion revenue, variable consideration constraint, significant financing component, contract modification IFRS 15, revenue recognition journal entries, five step revenue model

Revenue contract with performance obligations

Revenue contract with performance obligationsAn IFRS 15 contract with its distinct performance obligations and standalone selling prices, driving the allocation of the transaction price and the recognition schedule.

More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 99
Project Gantt

Interactive drag and drop Gantt planner for Odoo 16 Community project tasks with a deterministic server side sche...

USD 59
Employment Hero Connector

Employment Hero Connector is the integration core of the ERP Heritage Employment Hero suite, providing per compan...

USD 9
Employment Hero UK

The United Kingdom country pack for the ERP Heritage Employment Hero integration

USD 59
Employment Hero HR

Sync Employment Hero employees, departments and payroll bank details into standard Odoo Community HR over the pla...

USD 19
Employment Hero Webhook

Inbound webhook receiver for the Employment Hero people and payroll platform on Odoo 16 Community

USD 369
Mauritius e-Invoicing

Real-time fiscalisation of customer invoices and credit notes with the Mauritius Revenue Authority e-Invoicing (E...

ERP Heritage

Production-grade Odoo modules, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au

v16.0.1.2.0 · LGPL-3 · Odoo 16 Community

Developed by Odoo Consultant Melbourne • LinkedIn

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Community Apps Dependencies Show
Accounting Suite Base
Lines of code 5407
Technical Name eh_account_revenue
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with