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. Earnings Per Share (IAS 33) v 19.0
  4. Sales Conditions FAQ

Earnings Per Share (IAS 33)

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 19.0 Third Party 7
Download for v 19.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!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Community Apps Dependencies Show
Accounting Suite Base
Lines of code 4809
Technical Name eh_account_eps
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · Accounting Suite
ERP Heritage Accounting Suite

Earnings Per Share (IAS 33)

Compute basic and diluted earnings per share under IAS 33 from dated share movements and dilutive instruments, with anti-dilutive classes excluded and comparability inputs frozen once the run is disclosed.

Free · LGPL-3Odoo 19 Communityv19.0.1.1.0v19.0.1.1.0
Basic EPS from ordinary earnings
Diluted EPS sequencing
Weighted average share count
Dated share movements
Treasury-stock method for options

Why this module

Earnings Per Share (IAS 33)

IAS 33.20

Weighted average, not a snapshot

The denominator is built from dated share movements on the eh.eps.share.movement model, each weighted by the days it was outstanding inside the period rather than taking a single period-end share count. A share issue mid-period contributes only its fraction of the year.

IAS 33.44

Dilution tested, not assumed

Potential ordinary shares are ordered by incremental EPS and added most-dilutive first, each included only while it keeps reducing EPS. Once an instrument turns anti-dilutive the sequence stops, so a naive add-everything approach that overstates dilution is avoided.

Locked

Comparability inputs freeze once computed

After a run reaches the computed state, earnings, period, restatement factor, share movements, and potential-share lines are blocked from edit, append, and delete on both the run and its children. To change a disclosed figure you set the run back to draft and recompute, leaving an audit trail.

Day in the life

Preparing the EPS note for the annual accounts

A reporting accountant opens a new Earnings Per Share run for the year, enters net profit attributable to the parent and after-tax preference dividends, then records each dated share movement across the period so the weighted average number of ordinary shares is computed by day-fraction. On the Potential Ordinary Shares tab they add the option and convertible classes, supplying exercise and average market prices so the treasury-stock method nets out the assumed buy-back. An EH Accounting Manager clicks Compute: basic EPS, the diluted denominator, and diluted EPS are calculated with anti-dilutive classes dropped, the run is stamped computed, and every input is frozen so the disclosed figures cannot drift without a documented re-run.

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.

Zero denominator

When the weighted average number of shares is zero, basic EPS returns zero instead of dividing by zero, and the diluted computation short-circuits to the basic figures rather than raising.

Out-of-the-money options

Under the treasury-stock method the net increment is potential shares times one minus exercise over average market price, floored at zero, so options priced above the market add no dilutive shares.

Bonus issue and split

A restatement factor scales both the weighted average and the diluted denominator, so a 2-for-1 split applied at 2.0 keeps EPS comparable across every period presented (IAS 33.64).

Child freeze holes closed

Freezing only the parent would leave an append hole, so create, write, and unlink are all guarded on share movements and potential-share lines; the sole exception is the run's own dilution test flipping is_dilutive under an internal compute context.

Anti-dilutive break

Because instruments are sorted by incremental EPS, once one fails the dilution test the loop breaks rather than testing the rest, since all remaining classes are at least as anti-dilutive.

What is inside

Built to do the job, end to end.

  • eh.eps.run. The run model holding net profit, preference dividends, restatement factor, and period, with computed weighted average shares, basic earnings, and basic EPS, plus stored diluted earnings, shares, and EPS. Draft, computed, and cancelled states drive the compute, cancel, and set-to-draft actions, with mail.thread tracking.
  • eh.eps.share.movement. Dated ordinary-share movements feeding the weighted average, each recording shares outstanding from an effective date until the next movement, with a non-negative shares constraint and a frozen-run guard on create, write, and unlink.
  • eh.eps.potential. Potential ordinary share classes (options and warrants, convertible bonds, convertible preference shares) with earnings adjustment, exercise and average market prices, computed net incremental shares under the treasury-stock method, and an incremental-EPS ordering key for the dilution test.
  • Compute engine. _weighted_average sums shares-times-days over total period days; _compute_diluted resets is_dilutive, orders potential classes by incremental EPS, and adds each only while EPS falls, applying the restatement factor to the diluted denominator.
  • Security and isolation. Access rows for EH user, manager (full including delete), and read-only auditor, global company-isolation record rules on all three models, and a manager-only gate on the compute action.
  • Views and sequence. A list and form view with Share Movements, Potential Ordinary Shares, and Notes tabs plus a statusbar and chatter, a year-prefixed EPS run sequence, and its Accounting menu entry.

Honest about the edges

What this does not do, so nothing surprises you.

  • It posts no journal entries; EPS is a disclosure computation and does not touch the ledger.
  • It does not automatically pull net profit, preference dividends, or share counts from the ledger or a cap table; those figures and dated movements are entered on the run.
  • It does not generate a formatted financial-statement note or PDF; results are shown as computed fields on the run.
  • It does not handle contingently issuable shares, participating equity instruments, or contracts settled in shares or cash beyond the options and convertible classes provided.
  • It computes a single continuing-operations EPS pair and does not split EPS by discontinued operations or by segment.
  • It does not track share prices or market data over time; the average market price for the treasury-stock method is entered per instrument.
Search

odoo 19 earnings per share, IAS 33 EPS odoo, basic and diluted EPS, weighted average number of ordinary shares, dilutive potential ordinary shares, treasury stock method options, anti-dilutive exclusion, preference dividend deduction EPS, bonus issue share split restatement, EPS disclosure odoo community, convertible bond dilution, diluted earnings per share calculation

Earnings per share, basic and diluted

Earnings per share, basic and dilutedAn IAS 33 computation of basic earnings per share from profit less preference dividends over the weighted-average shares, adjusting for dilutive potential shares to give diluted EPS.

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 39
Employment Hero Sync Engine

A reusable two way synchronisation engine that keeps Odoo in step with the people and payroll platform, idempoten...

USD 99
Ireland - Payroll ROS

Real-time PAYE Modernisation for Irish payroll

USD 199
Project Gantt Pro

PMO grade upgrade for the Project Gantt planner

USD 9
Employment Hero Australia

The Australia country pack for the ERP Heritage Employment Hero integration

USD 19
Employment Hero Documents

Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...

USD 19
Employment Hero Leave

Sync Employment Hero leave categories, leave requests and leave balances into the standard Odoo Time Off app, wit...

ERP Heritage

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

v19.0.1.1.0 · LGPL-3 · Odoo 19 Community

Developed by Odoo Consultant Melbourne • LinkedIn

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