For now, you can model a corporate action as a TransitionEvent
by considering the impact of inputs (the number and cost basis of units currently held) on outputs (the number and cost basis of future units, in the same instrument or in different ones).
Note: In future, dedicated types of corporate action (such as CashDividendEvent
, StockSplitEvent
and AmortisationEvent
) will make this process simpler.
A transition event must have:
- A single input transition for the instrument that is the subject of the corporate action, with a units factor representing the number of units held and a cost factor representing the cost basis of those units.
- One or more output transitions, each of which references a particular instrument (the same instrument, or a different one) and also has a units factor and a cost factor. The ratio of the two units factors determines the impact of the corporate action on the quantity of the holding, and the ratio of the two cost factors determines the impact of the corporate action on the cost basis of the holding.
See how to upload a corporate action.
Note: You might need to create multiple transition events to model some kinds of corporate action.
Corporate action example (see also the examples in this Jupyter Notebook) | # of transition events | Input transition | Output transition(s) | ||||
Instrument | Units factor | Cost factor | Instrument | Units factor | Cost factor | ||
Cash dividend of 35p per share of Company A. | 1 | Company A | 1 | 0 | GBP | 0.35 | 0 |
2 for 1 stock split for Company A. | 1 | Company A | 1 | 1 | Company A | 2 | 1 |
Spin off 1 new share in Company B for every 10 shares in Company A, taking 20% of the book cost. | 1 | Company A | 10 | 1 | Company A | 10 | 0.8 |
Company B | 1 | 0.2 | |||||
Takeover of Company A by Company B, replacing each Company A share with 0.8 share in Company B, plus 50p per share. | 2 | Company A | 1 | 0 | GBP | 0.5 | 0 |
Company A | 1 | 1 | Company A | 0 | 0 | ||
Company B | 0.8 | 1 |