An issuer announces one bonus share for every four existing shares. A developer stores the ratio as 1/4, multiplies the historical share denominator by 0.25, and makes earnings per share (EPS) four times larger.
Every field validates. Every arithmetic operation succeeds. The answer is economically backwards.
The phrase describes one share added to four, so each four-share block becomes five shares. The correct factor is:
This article teaches the small modeling decision that prevents the large error: store bonus shares and existing shares separately, then calculate the total post-issue units explicitly.
Why a bonus issue changes historical EPS
A pure bonus issue gives existing shareholders additional ordinary shares for no additional consideration. More share units represent the same collective ownership and the same historical earnings.
IAS 33 treats bonus or capitalisation issues as changes in ordinary shares without a corresponding change in resources. It requires pre-event shares to be adjusted for the proportionate change as if the event occurred at the beginning of the earliest period presented. IAS 33 paragraphs 26–28
The reason is comparability. Without restatement, post-bonus EPS would look smaller even if earnings were unchanged. The time series would mix two share-unit sizes.
IAS 33 paragraph 64 also requires retrospective adjustment of Basic and diluted EPS for all periods presented. If the qualifying event occurs after period end but before the statements are authorised for issue, the presented periods use the new share basis and disclose the adjustment. IAS 33 paragraph 64
Under US GAAP, the corresponding term is commonly stock dividend. FASB Statement No. 128 paragraph 54 requires retrospective EPS adjustment for stock dividends, including qualifying events after period close but before issuance or availability for issuance. FASB Statement No. 128
Start with an entitlement block
Do not begin with EPS. Begin with the smallest complete entitlement.
For one bonus share for every four existing shares:
- existing shares: 4;
- bonus shares added: 1;
- total post-issue shares: 5.
The same holder owns five units after the event instead of four. The holder's proportional interest has not increased merely because every eligible holder receives the same proportional distribution.
The visual makes the counting rule explicit:
Accessible description: four blue existing-share circles plus one purple bonus-share circle lead to five total shares. The factor is . In the canonical example, shares rise from 8 million to 10 million, EPS falls from USD 1.25 to USD 1.00, and earnings remain USD 10 million.
The takeaway is almost embarrassingly simple, which is exactly why it is dangerous: the bonus term is added to the existing term before the factor is formed.
The formula
Let:
- be the bonus shares added per entitlement block;
- be the existing shares in that block;
- be the post-issue share units per pre-issue share unit.
Then:
| Symbol | Meaning | Unit |
|---|---|---|
| Bonus shares added | shares | |
| Existing shares supporting the entitlement | shares | |
| Exact restatement factor | dimensionless | |
| Earnings available to ordinary shareholders | currency | |
| Completed weighted-average shares on the source basis | shares | |
| Restated weighted-average shares | shares |
For a denominator wholly on the pre-bonus basis:
The second form is useful for intuition. A production system should still recalculate from the exact earnings numerator and restated denominator rather than divide a rounded EPS display.
Worked example: one bonus share for four existing
Assume:
- FY2025 earnings available to ordinary shareholders: USD 10 million;
- FY2025 weighted-average ordinary shares: 8 million;
- event: one bonus share for every four existing shares;
- event effective: 15 January 2026;
- statements authorised: 20 February 2026.
Before the restatement:
Derive the factor from total post-issue units:
Restate the denominator:
Recalculate EPS:
Independent check:
The denominator increased by 25%, but EPS fell by 20% because it is divided by 1.25. Those percentages are not contradictory.
The terminology trap
IAS 33 paragraph 28 gives a deliberately revealing example: on a two-for-one bonus issue, the number of shares before the issue is multiplied by three to obtain the new total, or by two to obtain the number of additional shares.
In that wording:
- existing shares ;
- bonus shares ;
- total shares ;
- factor .
Many market participants would hear “two-for-one” and assume a 2-for-1 split with factor 2. That is why free-text event names are unsafe data contracts.
Prefer:
bonus_shares = 2
existing_shares = 1
no_additional_consideration = true
Then derive:
The model stores economic components, not regional shorthand.
Basis dates prevent double restatement
A bonus event may already be reflected in a vendor's historical denominator. Applying the factor again inflates shares and depresses EPS a second time.
Give each period row a basis_date with one meaning:
Every qualifying bonus event effective on or before this date is already reflected in the row.
Apply an event only when:
Equality means the event is already included.
Also require basis_is_uniform=true. If a transition-period denominator mixes pre-bonus and post-bonus units, rebuild its share segments on one basis in the weighted-average-shares workflow before applying this completed-denominator algorithm.
Calculation flow
Notice that the event must be classified as a no-consideration bonus issue before its ratio reaches the EPS calculation:
Accessible description: the engine rejects events involving additional consideration, derives each factor from existing plus bonus shares, applies only events later than the source basis, preserves earnings, recalculates EPS, and rounds only the returned display fields.
The reusable source is in visuals/mermaid/bonus-restatement-flow.md.
Implementation walkthrough
A strict implementation follows this sequence:
- Validate the framework, authorisation cutoff, units, and policies.
- Require unique, effective, chronological events no later than authorisation.
- Require positive integer
bonus_sharesandexisting_shares. - Require
no_additional_consideration=true. - Build each factor as and reduce it exactly.
- Require each source denominator to have a uniform basis.
- Select only events later than the row's
basis_date. - Multiply pending factors exactly.
- Preserve earnings, restate shares, and recalculate Basic EPS.
- Round only display fields and return factor and event lineage.
Use arbitrary-precision integers or rational numbers. A factor such as should not become a chain of floating-point approximations before the final EPS display.
Useful diagnostics include:
- applied event IDs;
- factor numerator and denominator;
- source and target basis dates;
- original and restated shares;
- exact numerator;
- pre-restatement and restated EPS;
- rounding-adjusted flags;
- final or provisional state.
Multiple bonus issues
Exact factors compose.
Suppose a 1-for-4 bonus issue is followed by a 1-for-10 bonus issue:
An 8 million old-basis denominator becomes:
If the second event is already represented in a particular row's basis, that row must not receive the full factor. Event selection is period-specific.
Testing and validation
A useful test suite includes:
- one bonus for four existing: ;
- two bonus for one existing: ;
- a 10% stock dividend equivalent: ;
- profit, loss, and zero earnings;
- multiple factors that reduce exactly;
- different basis dates selecting different event subsets;
- an event exactly on the basis date;
- an event after authorisation;
- zero or negative entitlement terms;
no_additional_consideration=false;- mixed-basis rejection;
- declared rounding modes.
The core invariants, checked before display rounding, are:
For a valid pure bonus issue, , denominator units increase, absolute EPS decreases, and the EPS sign does not change.
How nearby events differ
| Event | What shareholders provide | Factor source | Correct workflow |
|---|---|---|---|
| Pure bonus issue | No additional consideration | This topic | |
| Stock split | No additional consideration | Legal post/pre split ratio | D46-F01-A05 |
| Cash share issue | Cash or other resources | No retrospective bonus factor | Time-weight from issue date |
| Rights issue with bonus element | Subscription price below fair value | Fair-value/theoretical ex-rights factor | D46-F01-A07 |
| Cash dividend | No new share units | No denominator factor | Numerator/distribution analysis |
The pure bonus issue and a split can have the same numerical effect, but their source terms and equity accounting can differ. The EPS engine should preserve that event identity rather than flatten every no-consideration event into an unlabeled ratio.
Failure modes
- Ratio inversion: using instead of .
- Terminology inference: parsing “two-for-one” without knowing whether it names added shares or total shares.
- Rights-issue substitution: using an entitlement ratio when market values are required.
- Double application: restating data that already includes the event.
- Mixed share units: multiplying a denominator built from incompatible pre/post-event segments.
- Rounded EPS scaling: dividing an already rounded per-share display.
- Wrong cutoff: including an event after authorisation.
- Diluted-EPS shortcut: ignoring instrument terms and antidilution retesting.
Practical use and misuse
Correct bonus-issue restatement supports:
- comparable EPS histories;
- financial-statement and XBRL controls;
- corporate-action data normalization;
- valuation datasets that use per-share fields;
- audit trails for historical revisions;
- regression tests for accounting systems.
It does not prove that shareholders became wealthier, that the issue created value, or that the market price will respond in a particular way. This is an accounting measurement transformation, not an investment signal.
The implementation is educational. Issuer reporting must follow current licensed standards, local adoption, legal terms, and professional judgment.
Summary and next topic
Remember four rules:
- Store bonus shares and existing shares separately.
- Calculate total post-issue units before forming the factor.
- Preserve earnings and restate the completed denominator.
- Track basis and authorisation dates so the event is applied once.
The next topic is D46-F01-A07 — Rights-Issue Bonus-Factor Adjustment. It keeps the idea of a bonus element but adds market value and subscription proceeds, so the simple factor is no longer enough.
Executable reference package
This topic includes an exact rational/decimal reference calculation, a labeled synthetic accounting fixture, invalid-contract coverage, and Python/Node parity checks. The fixture is a teaching case, not issuer data. Run python tests/test_reference.py and node --experimental-strip-types tests/reference.test.ts.
Rendered from the canonical Mermaid sources linked by this article.
Bonus-issue EPS restatement flow
Purpose: Show the classification, basis filtering, exact factor, and EPS recalculation sequence.
Accessible description: The flow rejects events involving additional consideration, derives each pure bonus factor from existing plus bonus shares, selects only events later than the period's basis date, restates shares exactly, preserves earnings, recalculates EPS, and rounds only display fields.
Takeaway: Classification and basis come before arithmetic; the arithmetic uses total post-issue shares.
ReferencesPrimary sources and evidence notesExpand the source trail, evidence role, and limitations behind the engineering choices.
Expand the source trail, evidence role, and limitations behind the engineering choices.
Last reviewed: 2026-07-19.
IFRS-IAS33 — IAS 33 Earnings per Share
- Organization: IFRS Foundation / International Accounting Standards Board.
- Source type: Official issued accounting standard.
- Publication represented: 2023 issued HTML edition.
- URL: IAS 33 Earnings per Share.
- Accessed: 2026-07-19.
- Jurisdiction: IFRS Accounting Standards; local endorsement may differ.
- Supports: Paragraphs 26–28 for events without a corresponding resource change, bonus/capitalisation issues, the proportionate adjustment, and the “two-for-one bonus issue” example; paragraph 64 for retrospective EPS adjustment and qualifying post-reporting-period events.
- Limitations: Production reporting must use the entity's current licensed and locally adopted standards.
FASB-FAS128 — Statement No. 128, Earnings per Share
- Organization: Financial Accounting Standards Board.
- Source type: Official historical FASB standard underlying ASC Topic 260.
- Publication date: February 1997, as hosted by FASB.
- URL: Statement of Financial Accounting Standards No. 128.
- Accessed: 2026-07-19.
- Jurisdiction: United States.
- Supports: Paragraph 54 for retrospective adjustment of Basic and diluted EPS after stock dividends, including qualifying events after period close but before issuance or availability for issuance.
- Limitations: Current US GAAP conclusions must be checked against the current ASC codification and entity facts.
SEC-STOCK-DIVIDEND — Filed 10% common stock dividend example
- Organization: U.S. Securities and Exchange Commission EDGAR; registrant disclosure.
- Source type: Primary issuer filing, not accounting authority.
- Reporting period: Year ended 31 December 2016.
- URL: Shareholders' Equity disclosure.
- Accessed: 2026-07-19.
- Jurisdiction: United States.
- Supports: A real filed example of a 10% common stock dividend with retrospective adjustment of share and per-share information.
- Limitations: Illustrates application only; it does not replace GAAP.
Research limits
- “Bonus issue,” “capitalisation issue,” “stock dividend,” and “split effected as a stock dividend” are not safe algorithmic synonyms without reviewing the event terms and accounting framework.
- This package models EPS denominator restatement only. It does not determine equity journal entries, legal entitlement treatment, or diluted-instrument adjustments.
- All numerical examples are synthetic and carry no market-data license.
Full dependency-light reference implementations in both supported languages.
/** Exact reference Node API for D46-F01-A06: Bonus-Issue EPS Restatement. */
import { calculateEpsTopic } from "../../../../../../shared/missing_152/typescript/epsRuntime.ts";
export const TOPIC_ID="D46-F01-A06"; export const TITLE="Bonus-Issue EPS Restatement";
export function calculate(input:Record<string,unknown>){ return calculateEpsTopic(TOPIC_ID,input); }
The embedded lab now expands to its full document height, keeping the article as the only scroll surface.