-
Notifications
You must be signed in to change notification settings - Fork 739
Open
Labels
Description
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status