Free lesson · Point-in-time data
Reconcile splits and cash distributions
Open interactive lessonPractice calculationsExplore labs
Start with the idea
Changes in share count and cash payments can move quoted prices without corresponding investment losses.
Symbols, units & horizon
- q₀,q₁: shares before and after corporate actions over one holding interval
- P₀,P₁: unadjusted currency per share at entry and exit
- D: total cash distributions in the same currency
- R: simple wealth return fraction
- no external contribution or fees in this identity
When and why to use this
Validate equity and ETF return series against instrument-level cash flows.
Changes in share count and cash payments can move quoted prices without corresponding investment losses.
For a split, keep total ownership consistent by changing both share count and per-share price. For a dividend, add received cash to ending wealth. Check whether a vendor already adjusted prices; adding distributions again double counts them.
Use raw prices and an explicit corporate-action ledger when reproducing cash flows. Adjusted histories are convenient for returns but their back-adjusted levels are not historical executable quotes.
Reconcile splits and cash distributions
- Compute initial wealth q₀P₀.
- Compute ending share value q₁P₁ and add total distribution cash D.
- Subtract initial wealth and divide by it; ensure changed shares came from the stated corporate action.
Ten shares at $100 split two-for-one. Twenty shares end at $51 and receive $10 total cash. Return=(1020+10−1000)/1000=.03.
Apply it in a strategy
- Freeze inputs at the stated decision time and record their units.
- Validate equity and ETF return series against instrument-level cash flows.
- Recompute the example, then change the material assumption and explain the difference.
Research deliverable
Reconcile splits and cash distributions: produce the worked calculation, a timestamped input record and a written decision addressing this limitation: Mergers, spin-offs, withholding taxes or external cash flows need separate ledger entries.
These are synthetic mechanics examples, not historical performance or paper replications. Module evidence and research boundaries record the 12 September 2026 review.
Python implementation
Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.
# Python 3.10+; standard library and NumPy only.
# Synthetic teaching inputs; conventions and units are defined in the notation above.
def action_return(initial_shares,initial_price,final_shares,final_price,cash):
initial=initial_shares*initial_price
if initial<=0: raise ValueError('Positive initial wealth required')
return (final_shares*final_price+cash-initial)/initial
assert abs(action_return(10,100,20,51,10)-.03)<1e-12
print(action_return(10,100,20,51,10))Continue learning
Data: Availability, Revisions & Reproducible Research — all lessons- Four clocks for one observation
- An as-of join that never selects the future
- First prints and revisions can reverse a signal
- Reconcile splits and cash distributions
- Universe membership and disappearing assets
- Coverage, missingness and stale values
- Purging labels that cross a test boundary
- Reproducible snapshots and discrepancy ledgers
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations