Skip to content

Support for Corporate Actions (Spin-Off, Stock Dividend, Bonus Issue, …) #5466

@buchen

Description

@buchen

PP currently lacks dedicated transaction types for corporate actions. Users work around this by (mis)using dividends or manual deliveries, which leads to incorrect performance calculations and confusing reporting.

Background

Discussion in #3610 surfaced the need for a broader approach. Rather than adding one-off types, we should consider the full landscape of corporate actions:

Corporate Action
 ├─ Cash Distribution
 │   └─ Dividend (already exists)
 └─ Securities Distribution
     ├─ Stock Dividend
     ├─ Spin-Off
     ├─ Bonus Issue
     └─ Rights Distribution

Related: #5453 discusses bond/percentage-quoted instruments, which bring their own set of corporate actions (coupon payments, redemptions, calls, conversions, etc.).

Fixed Income Corporate Action
 ├─ Income
 │   ├─ Coupon Payment
 │   ├─ PIK Interest
 │   └─ Defaulted Interest
 ├─ Redemption
 │   ├─ Maturity
 │   ├─ Partial Redemption
 │   ├─ Call
 │   └─ Put
 └─ Structural / Credit
     ├─ Conversion
     ├─ Exchange
     ├─ Restructuring
     └─ Default

Key Design Considerations

  • Single type vs. multiple types: One generic "Corporate Action" type with subtype-specific data, or dedicated types per action?
  • Two-instrument transactions: A spin-off touches both a source and a target security. This is similar to how purchases/sales/transfers use an Entry that manages two transactions. This pattern could apply here to keep FIFO and other per-instrument lookups efficient.
  • Cash flow: Some corporate actions (e.g. rights issues) involve a cash component and therefore also touch an account.
  • Reporting columns: Rather than a column per action type, the proposal is:
    • Keep "Sum of Dividends" for cash dividends only
    • Add "Securities Distribution" for non-cash corporate actions
    • Add "Total Distribution" combining both
  • Performance calculation: ClientIndex, ClientFilter, and related classes will need updates.

Related

#3610 — Original spin-off PR and discussion
#5453 — Bond support / percentage-quoted instruments

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions