corporate-actions-processinglisted
Install: claude install-skill howard-lynn-ye/fin-skills
# Corporate actions processing
Carry dated events and position entitlements alongside prices. A return-adjusted price series
can represent event value, but does not tell an execution or accounting system which shares,
rights and cash the investor owns afterward.
## Separate a missing event from an adjustment convention
🚨 Do not claim that every adjusted series books a spin-off as a loss. Treatment depends on
the data provider and return convention. ✅ Primary-source verification, 2026-09-14:
[MSCI Corporate Events Methodology, February 2026, section 2.8.1](https://www.msci.com/indexes/documents/methodology/0_MSCI_Corporate_Events_Methodology_20260210.pdf)
applies a price adjustment factor to the parent on the spin-off ex-date. That disproves a
universal inability to adjust spin-offs; it does not establish another vendor's coverage.
✅ Measured 2026-09-14 by [corporate_actions.py](scripts/corporate_actions.py), fixed synthetic
examples that deliberately omit events from the quoted-price feed:
| Event omitted from feed | Price-only return | Holder return | Holder minus price, percentage points |
|---|---:|---:|---:|
| Spin-off | -30.0000% | 0.0000% | 30.0000 |
| Discounted rights issue | -13.3333% | 0.0000% | 13.3333 |
| Reverse split | 900.0000% | 0.0000% | -900.0000 |
`spin_off_gap()` also computes an explicit adjustment: its ex-date return is 0.0000%.
Subsequent returns still depend on whether distributed shares are kept, sold or reinvested.
The demo includes SpinCo at