Free lesson · Markets & returns
Measure the return before modelling it
Open interactive lessonPractice calculationsExplore labs
Start with the idea
Think of a return as a change in ownership wealth per initial dollar. Cash received is part of that wealth even when it leaves the quoted price lower. Compounding then asks what happens when the next return is earned on the changed capital rather than the original deposit.
Symbols, units & horizon
- Pₜ, Pₜ₋₁: ending and starting price per share
- Dₜ: cash distribution per share in the period
- Rₜ: simple decimal total return
- rₜ: log return
- V₀, V_T: initial and final wealth without external flows
- T: final period index
- Y: elapsed years
- g, CAGR: annual compound growth rate
- ∏: multiply wealth factors over periods
- ln, exp: natural logarithm and its inverse
When and why to use this
Use total returns for backtests and allocation; use compound growth for multi-period reporting. Log returns are convenient for time-series models because multiplication of wealth factors becomes addition.
A price series is not a return series. Cash dividends, splits, financing, and the timing of external capital all change the economic result. State the currency, horizon, and whether returns include distributions before comparing two strategies.
From wealth change to simple and log return
- One share costs . End wealth is , so profit is . Divide by initial cost to obtain .
- Rearrange to . Taking logs of the wealth factor defines ; invert with .
Price 100 → 103 and dividend 2 gives , . The inverse gives 5%, not 4.879%.
Here is the end price and is the cash distribution during the period, with prices consistently adjusted for splits. Simple returns aggregate across assets using beginning-of-period weights. Log returns add through time for a consistently constructed total-return series; they do not add across assets in the same way.
Derive compounding and solve for CAGR
- Write , then . Substitute repeatedly: . Subtract 1 for cumulative return.
- A constant annual growth rate g satisfies . Divide by , take the Y-th root and subtract 1. Equivalently .
For +20%, then −20%: . Two-year CAGR is .
CAGR uses Y years and assumes no intervening external cash flows. A +20% year followed by −20% leaves 0.96 of the initial capital: a 4% cumulative loss and about −2.02% per year. An arithmetic mean of zero conceals the loss.
An asset moves from $100 to $103 and pays a $2 dividend. Total return, in percent?
(103 − 100 + 2) / 100 = 5%. Price return alone is only 3%.
Research sources, review dates and limitations
Capstone checkpoint 1 / State the decision
Synthetic exercise · self-assessed. Use the capstone’s hypothetical $10,000 account and one-session ETF-like trade. Write the decision time, instrument, holding period and a reason to reject the hypothesis.
Save in your practice notes: A four-sentence research contract. Open practice studio →
Separate the assumed favorable-outcome probability from a measured estimate. Identify cash as a baseline.Check your reasoning
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.
from math import log1p, expm1, prod
def total_return(start_price, end_price, dividend=0):
r = (end_price + dividend - start_price) / start_price
return {"simple": r, "log": log1p(r)}
def compound_return(returns):
return prod(1+r for r in returns) - 1
def cagr(start_wealth, end_wealth, years):
return (end_wealth/start_wealth)**(1/years) - 1
print(total_return(100, 103, 2))
print(compound_return([.2, -.2]), cagr(100, 96, 2))Continue learning
Markets, Returns & Capital — all lessons- Measure the return before modelling it
- Cash securities, derivatives, and financing
- Discounted cash flow and the price of capital
- Translate an investment idea into a mandate
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations