fintech-algorithms

Stock-Split/Consolidation EPS Restatement

Install and import

bash
npm install fintech-algorithms
ts
import { restateEpsForCapitalEvents } from "fintech-algorithms/earnings-and-per-share-analytics/earnings-and-share-foundations/stock-split-consolidation-eps-restatement";

Signature

restateEpsForCapitalEvents(input)

Worked example

executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.

Input

input
{
  "accounting_framework": "IFRS",
  "currency": "USD",
  "statements_authorized_for_issue_date": "2026-02-20",
  "earnings_scale": "1000",
  "share_scale": "1000",
  "share_decimal_places": 0,
  "eps_decimal_places": 4,
  "rounding_mode": "half_even",
  "restatement_policy": "Apply IAS 33.64 retrospectively through authorization.",
  "event_source_policy": "Board-approved and legally effective capital events.",
  "events": [
    {
      "event_id": "SPLIT-2026-01",
      "effective_date": "2026-01-15",
      "event_type": "stock_split",
      "post_split_shares": "2",
      "pre_split_shares": "1",
      "event_is_effective": true,
      "changes_resources": false
    }
  ],
  "periods": [
    {
      "period_id": "FY2025",
      "period_start": "2025-01-01",
      "period_end": "2025-12-31",
      "basis_date": "2025-12-31",
      "basis_is_uniform": true,
      "earnings_available_to_ordinary_shareholders": "8000",
      "weighted_average_ordinary_shares": "2000",
      "is_final": true
    }
  ]
}

Call

restateEpsForCapitalEvents(input)

Returns

object with 6 fields: metric, accounting_framework, currency, statements_authorized_for_issue_date, status, rows

{
  "metric": "stock_split_consolidation_eps_restatement",
  "accounting_framework": "IFRS",
  "currency": "USD",
  "statements_authorized_for_issue_date": "2026-02-20",
  "status": "final",
  "rows": [
    {
      "period_id": "FY2025",
      "period_start": "2025-01-01",
      "period_end": "2025-12-31",
      "source_basis_date": "2025-12-31",
      "applied_event_ids": ["SPLIT-2026-01"],
      "factor_numerator": "2",
      "factor_denominator": "1",
      "earnings_available_to_ordinary_shareholders": "8000000",
      "pre_restatement_shares": "2000000",
      "restated_shares": "4000000",
      "pre_restatement_basic_eps": "4.0000",
      "restated_basic_eps": "2.0000",
      "share_rounding_adjusted": false,
      "eps_rounding_adjusted": false
    }
  ]
}

Diagrams

Stock-Split/Consolidation EPS Restatement — post period restatement timeline
Stock-Split/Consolidation EPS Restatement — split direction bridge

Calculation flow

Post-period authorization window
sequenceDiagram
  participant P as "FY2025 ends"
  participant S as "2-for-1 split"
  participant A as "Statements authorized"
  P->>S: "2025-12-31"
  S->>A: "Effective 2026-01-15"
  A-->>P: "Present FY2025 on the new share basis"
Restatement calculation flow
flowchart LR
  A["Validated period row"] --> B["Read uniform source basis date"]
  E["Effective ordered events through authorization"] --> C["Select events after basis date"]
  B --> C
  C --> D["Multiply exact factors"]
  D --> F["Restated shares = source shares × factor"]
  A --> G["Preserve earnings numerator"]
  F --> H["Restated EPS = earnings ÷ restated shares"]
  G --> H
  H --> I["Round display fields and emit diagnostics"]

How it works

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References

  • Primary accounting sources
  • Historical case sources
  • Technical sources
  • Applicability and limitations