Why Multiple Cash Flows Require Multiple Subperiods
When an account has several contributions and withdrawals, its ending balance reflects both investment performance and external cash flows. A contribution increases the account balance, but it is not an investment gain; a withdrawal reduces the balance, but it is not an investment loss. To measure performance without letting the timing or size of those flows distort the result, calculate a return between each pair of cash-flow boundaries and link the returns.
The time-weighted return (TWR) uses the account's investment performance in each subperiod. Each subperiod begins with the value after any flow at its starting boundary and ends with the value immediately before any flow at its ending boundary. This tutorial assumes the required boundary valuations are available. No assumed interest rate is used: the returns are calculated from the stated account values.
The superscripts \(+\) and \(-\) identify the side of a flow boundary used in the calculation; they are not signs of positive or negative returns. At a boundary, the value before the flow closes one subperiod, and the value after the flow starts the next. If \(C_j\) denotes the signed flow into the account, then the boundary values satisfy \(V_j^{+}=V_j^{-}+C_j\): a contribution is positive and a withdrawal is negative.
How to Calculate and Link the Returns
For each subperiod, compare its ending pre-flow value with its starting post-flow value. The ratio is the accumulation factor for investment performance during that subperiod. Multiply all such factors, then subtract 1 to express the linked result as a return.
The factors are multiplied, not the returns themselves. A 5% gain followed by a 5% loss produces \(1.05(0.95)=0.9975\), or a cumulative return of \(-0.25\%\), rather than a zero return. The calculation uses the order of subperiods and their actual investment factors; each external flow is excluded from the performance interval in which it occurs.
Record the initial valuation, each external flow boundary, and the final valuation in chronological order.
For each interval, use the value after the flow at its start and the value before the flow at its end.
Divide the subperiod ending value by its starting value. Subtract 1 to state the subperiod return.
Multiply the subperiod factors, subtract 1, and report the cumulative return for the full measurement period.
Why Geometric Linking Works
The account's value changes through both investment performance and external flows. Within a subperiod, however, there is no external flow under consideration: its investment factor is precisely the ending value divided by the starting value. Writing this factor as \(1+r_j\) gives \(V_j^{-}/V_{j-1}^{+}\).
The next interval starts with the post-flow value, not the previous interval's pre-flow value. This resets the amount of capital exposed to performance after the cash flow, while preserving the return earned before it. Multiplying the successive factors therefore accumulates the investment performance of every interval:
Subtracting 1 converts that accumulation factor to a cumulative percentage return. This is why the flows themselves do not appear as gains or losses in the linked return. It is also why a single comparison of the initial and final balances, even after a simple adjustment for net cash flows, generally cannot replace the subperiod calculation.
Worked Example: A Contribution Followed by a Withdrawal
An account begins a measurement period at $1,000. At the first flow boundary its value immediately before a $200 contribution is $1,100. At the next boundary its value immediately before a $130 withdrawal is $1,430. The final account value is $1,560. Calculate the cumulative time-weighted return. The valuations are supplied; assume no other external flows.
Method. Divide the period at both flow boundaries. The first interval starts at $1,000 and ends at $1,100, before the contribution: $$ r_1=\frac{1{,}100}{1{,}000}-1=0.10=10\%. $$
The contribution is $200, so the value immediately after it is \(1{,}100+200=1{,}300\). The second interval ends at $1,430, before the withdrawal: $$ r_2=\frac{1{,}430}{1{,}300}-1=0.10=10\%. $$
The withdrawal is $130, so the value immediately after it is \(1{,}430-130=1{,}300\). The final interval earns: $$ r_3=\frac{1{,}560}{1{,}300}-1=0.20=20\%. $$
Link the three accumulation factors: $$ 1+R_{\mathrm{TW}}=(1.10)(1.10)(1.20)=1.452, \qquad R_{\mathrm{TW}}=1.452-1=0.452. $$ The cumulative time-weighted return is 45.20%, rounded to two decimal places.
Check. The flow-boundary values reconcile: $1,100 + $200 = $1,300 after the contribution, and $1,430 - $130 = $1,300 after the withdrawal. The ending value is also consistent with the final factor: $1,300(1.20) = $1,560. This calculation avoids treating either external flow as investment performance.
Worked Example: Several Flows at Unequal Dates
An account has an initial value of $24,000. One month later, its value before a $4,800 contribution is $25,200. At a later boundary, its value before a $7,500 withdrawal is $31,500. At the end of the measurement period, it is worth $26,400. Calculate the cumulative time-weighted return. No annualization is requested.
Method. Use the supplied valuations at the two flow boundaries. The first subperiod return is $$ r_1=\frac{25{,}200}{24{,}000}-1=1.05-1=0.05=5\%. $$
After the $4,800 contribution, the second subperiod starts at \(25{,}200+4{,}800=30{,}000\). Its ending value before the withdrawal is $31,500: $$ r_2=\frac{31{,}500}{30{,}000}-1=1.05-1=0.05=5\%. $$
After withdrawing $7,500, the final subperiod starts at \(31{,}500-7{,}500=24{,}000\). Its ending value is $26,400: $$ r_3=\frac{26{,}400}{24{,}000}-1=1.10-1=0.10=10\%. $$
The linked accumulation factor is $$ (1.05)(1.05)(1.10)=1.1025(1.10)=1.21275. $$ Thus, $$ R_{\mathrm{TW}}=1.21275-1=0.21275. $$ The cumulative return is 21.28%, rounded to two decimal places. It covers the full stated measurement period; it is not an annualized rate.
Check. The post-contribution starting value is $30,000, and the post-withdrawal starting value is $24,000. Using either pre-flow value as the next subperiod's start would leave the flow mixed into an investment return.
Worked Example: Linking Gains and Losses Across Four Intervals
An account starts at $5,000. At the first boundary, its value before a $800 contribution is $5,200. At the second boundary, its value before a $700 withdrawal is $5,700. At the third boundary, its value before a $250 contribution is $5,250. Its final value is $5,390. Calculate the cumulative time-weighted return.
Method. First calculate each subperiod return. From the initial value to the first pre-flow value, $$ r_1=\frac{5{,}200}{5{,}000}-1=1.04-1=0.04=4\%. $$
After the $800 contribution, the next subperiod begins at \(5{,}200+800=6{,}000\). It ends at $5,700: $$ r_2=\frac{5{,}700}{6{,}000}-1=0.95-1=-0.05=-5\%. $$
After the $700 withdrawal, the next subperiod begins at \(5{,}700-700=5{,}000\) and ends at $5,250: $$ r_3=\frac{5{,}250}{5{,}000}-1=1.05-1=0.05=5\%. $$
After the $250 contribution, the final subperiod begins at \(5{,}250+250=5{,}500\) and ends at $5,390: $$ r_4=\frac{5{,}390}{5{,}500}-1=0.98-1=-0.02=-2\%. $$
Now link all four factors: $$ (1.04)(0.95)(1.05)(0.98) =(0.988)(1.05)(0.98) =1.0374(0.98) =1.016652. $$ Therefore \(R_{\mathrm{TW}}=1.016652-1=0.016652\), or 1.67%, rounded to two decimal places.
Check. Each return uses the correct post-flow starting value: $6,000, $5,000, and $5,500 for intervals two through four. The resulting linked return is positive even though two intervals had losses; the product of all four factors, rather than a sum of the four returns, determines the result.
Common Mistake: Adjusting Only the Net Flow
A tempting shortcut is to subtract net contributions from the change in account value and divide by the initial value. For the first worked example, the net external flow is a contribution of $200 less a withdrawal of $130, or $70. The shortcut gives:
That is not the time-weighted return of 45.20%. The shortcut treats all net flows as if their timing did not matter, although the contribution and withdrawal occurred at different boundaries and were exposed to different subsequent performance. The correction is to use a separate valuation at each boundary, calculate all subperiod factors, and link them geometrically.
Another frequent error is to use the value immediately before a flow as the starting value for the next interval. For a contribution, doing so understates the capital in the account after the contribution; for a withdrawal, it overstates it. Use the post-flow value to start the next interval and the pre-flow value to end the preceding one.
Check Your Understanding
For each problem, use the stated valuations on the appropriate side of each flow boundary. Report cumulative returns to two decimal places.
- An account begins at $8,000. Its value before a $600 contribution is $8,400, and its final value is $9,450. Calculate the two subperiod returns and the cumulative time-weighted return. (Answer: \(5\%\), \(5\%\); cumulative return \(10.25\%\).)
- An account begins at $12,000. Its value before a $1,400 withdrawal is $11,400. Its value before a later $500 contribution is $10,500, and its final value is $10,450. Calculate the linked return. (Answer: \(-5\%\), \(5\%\), \(-5\%\); cumulative return \(-5.24\%\).)
- An account begins at $15,000. Its value before a $1,700 contribution is $15,300. Its value before a later $1,150 withdrawal is $16,150, and its final value is $15,900. Calculate the cumulative time-weighted return. (Answer: \(2\%\), \(-5\%\), \(6\%\); cumulative return \(2.71\%\).)
- An account begins at $20,000. Its value before a $3,000 contribution is $21,000. Its value before a later $1,800 withdrawal is $22,800, and its final value is $22,050. Calculate each subperiod return and the linked return. (Answer: \(5\%\), \(-5\%\), \(5\%\); cumulative return \(4.74\%\).)
- An account begins at $10,000. Its value before a $600 withdrawal is $9,600. Its value before a later $1,050 contribution is $9,450, and its final value is $9,975. Calculate the cumulative time-weighted return. (Answer: \(-4\%\), \(5\%\), \(-5\%\); cumulative return \(-4.24\%\).)