liveBook · Manning

Time-weighted return

As explained in Build a Robo-Advisor with Python (From Scratch)

A time-weighted return is an investment return calculated by linking subperiod returns between external cash flows so that the timing and size of investor contributions do not determine the result.

Time-weighted return measures investment performance while removing the effects of deposits and withdrawals. It links each subperiod return across cash-flow boundaries, making it useful for evaluating a manager when client cash-flow decisions are outside the manager’s control. section 7.1.1 section 7.3

A two-year account with a deposit

An account grows from $10 million to $12 million after a 20% first-year return. The investor then deposits $10 million, and a -10% second-year return reduces the $22 million account to $19.8 million. The time-weighted annualized return is [(1.2)(0.9)]^(1/2) − 1 = 3.92%, even though the investor’s total deposits exceed the ending value. The measure evaluates the 20% and -10% investment results without weighting them by the deposit’s size. section 7.1 section 7.1.1

Compute the measure by linking returns between cash-flow events:

  • Divide the investment history into subperiods at each external cash inflow or outflow. section 7.1.1
  • Calculate each subperiod return using the market value immediately before the cash flow occurs. section 7.1.1
  • Compound the subperiod growth factors and annualize: rTW = [(1+r1)(1+r2)…(1+rn)]^(1/Y) − 1. section 7.1.1
  • Treat reinvested dividends and interest as investment returns; treat distributions as withdrawals. section 7.1.1
  • For a simpler computational approach, calculate daily returns whether or not cash flows occur. section 7.1.1
Figure 7.1 A simple example of an investment with two deposits
figure

Compare the account’s deposits, intermediate values, and returns visually before applying the time-weighted calculation. section 7.1

How Build a Robo-Advisor with Python (From Scratch) covers it

How deep it goes
Defines the measure, derives its annualized formula, specifies cash-flow handling, and offers daily-return implementation.
Examples
Uses a $10 million account, a 20% return, a $10 million deposit, and a -10% return to produce 3.92% annualized.
What it assumes
Assumes familiarity with investment returns, cash inflows and outflows, and geometric averaging.
What you can do after
Compute annualized performance that excludes the effects of external cash-flow size and timing.
How it connects
Connects geometric average returns, dollar-weighted returns, cash flows, reinvested income, and manager performance.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Build a Robo-Advisor with Python (From Scratch). The section links point to the parts of the book it draws on.