fintech-algorithms

Contingently Issuable Shares

Current-Conditions EPS Test

Install and import

bash
npm install fintech-algorithms
ts
import { calculateContingentShareInclusion } from "fintech-algorithms/earnings-and-per-share-analytics/basic-and-diluted-eps/contingently-issuable-share-inclusion";

Signature

calculateContingentShareInclusion(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
{
  "entity_id": "SYNTH-ENTITY",
  "agreement_id": "CSA-2025-01",
  "period_start": "2025-01-01",
  "period_end": "2025-12-31",
  "as_of": "2026-02-20T12:00:00Z",
  "accounting_framework": "IFRS",
  "period_application": "IFRS_DIRECT_PERIOD",
  "currency": "USD",
  "basic_control_numerator": "120",
  "basic_weighted_average_shares": "50",
  "earnings_scale": "1000000",
  "share_scale": "1000000",
  "fixed_contingent_shares": "5",
  "agreement_date": "2024-07-01"
}

Showing 14 of 43 fields.

Call

calculateContingentShareInclusion(input)

Returns

object with 41 fields: metric, entity_id, agreement_id, period_start, period_end, accounting_framework, period_application, legal_status, …

{
  "metric": "contingently_issuable_share_inclusion",
  "entity_id": "SYNTH-ENTITY",
  "agreement_id": "CSA-2025-01",
  "period_start": "2025-01-01",
  "period_end": "2025-12-31",
  "accounting_framework": "IFRS",
  "period_application": "IFRS_DIRECT_PERIOD",
  "legal_status": "UNRESOLVED",
  "routing_decision": "DILUTED_CURRENT_STATUS_TEST",
  "terms_effective_date": "2024-07-01",
  "knowledge_cutoff": "2026-02-20T12:00:00Z",
  "currency": "USD",
  "basic_control_numerator_base": "120000000",
  "basic_weighted_average_shares_base": "50000000"
}

Showing 14 of 41 fields.

Diagrams

Contingently Issuable Shares — contingent share gates

Calculation flow

Contingent-share inclusion flow
flowchart TD
    A["Validated agreement, effective terms, and point-in-time inputs"] --> R{"Legal state at reporting date?"}
    R -->|Satisfied| C["Route shares to Basic EPS from satisfaction date"]
    R -->|Cancelled| X["Exclude and retain cancellation evidence"]
    R -->|Contingently returnable| Y["Route to reverse-contingency analysis"]
    R -->|Only time remains| T["Route to framework-specific time or service treatment"]
    R -->|Unresolved substantive condition| D{"Would every current-status condition be met if period end were contingency end?"}
    D -->|No| E["Eligible contingent shares = 0"]
    D -->|Yes| F{"Direct fixed shares for little or no cash?"}
    F -->|No| G["Apply relevant option, convertible, or settlement method"]
    F -->|Yes| H["Weight from later of period start, agreement date, and effective terms"]
    H --> I["Build exact candidate with unchanged numerator"]
    I --> J{"Exact candidate below exact Basic EPS?"}
    J -->|Yes| K["Include in standalone diluted-EPS candidate"]
    J -->|No| L["Exclude as antidilutive"]

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