Portfolio math

How to calculate your portfolio return: four numbers explained

Ask five investors what their return is and you get five numbers calculated five different ways, most of them defensible and none of them comparable. An ordinary portfolio has four different return figures. They answer four different questions, and picking the wrong one leads to conclusions about your own money that are not true.

This article calculates all four in order, from the simple return to the time-weighted return, with a small example for each. The separate article time-weighted vs money-weighted return covers which number answers which question. Here we do the arithmetic.

What you need before you start

Three things, and no formula rescues you if one is missing.

Every cash flow with its date. These are deposits into the account and withdrawals out of it. Trades do not count. They move money around inside the portfolio and are not cash flows in this sense. Buying a stock with cash you already had changes nothing about how much money you have put in.

Valuations. At minimum the value at the start and at the end of the period. For a time-weighted return, also on every day a cash flow happened.

One currency. Everything converted to a single base currency at the rate that applied on the day of each event. Mixing currencies is the most common silent error in a home-made calculation.

Broker exports contain the first, and usually enough information to reconstruct the third. The second is where personal calculations get stuck, which is a data problem rather than a math problem.

The simple return

The plainest question is how much money you made. Add up what you put in, add up what you took out, and compare with what is there now.

Profit equals current value plus everything you ever withdrew, minus everything you ever deposited. Expressed as a percentage of what you deposited, that is your simple return.

Suppose you deposited €10,000 over the years, never withdrew anything, and the account is worth €13,000 today. Your profit is €3,000 and your simple return is 30 percent. That is a true and useful statement.

It is also the number most likely to be quoted misleadingly, because it says nothing about how long the money was invested or when it arrived. Thirty percent over three years and thirty percent over eleven years are the same figure and a very different result.

The annualized return, when it is allowed

To compare periods of different lengths you need a per-year figure. For a single lump sum that was never added to or drawn from, the compound annual growth rate does that. Divide the end value by the start value, take the root of the number of years, and subtract one.

Take a position that grew from €10,000 to €16,000 over five years. 16,000 divided by 10,000 is 1.6. The fifth root of 1.6 is about 1.099, so the annualized return is roughly 9.9 percent a year. Check it by compounding: 1.099 to the power of five is about 1.60, which is where we started.

The restriction is that this is only valid when nothing went in or out in between. Applied to an account you have been feeding monthly, it produces a number that means nothing, which does not stop it from appearing in conversations.

The money-weighted return

Most portfolios receive money over time, and the money-weighted return is the figure that takes that into account. It is the single annual rate which, applied to each cash flow for as long as that money was invested, arrives at today's value. Accountants call it the internal rate of return, and a spreadsheet calculates it with the XIRR function.

The recipe in a sheet is one column of dates and one column of amounts. Deposits are negative, withdrawals are positive, and today's portfolio value goes in as a final positive entry on today's date. Point XIRR at the two columns and it solves for the rate.

Here is a small example you can verify by hand. You deposit €1,000, and one year later another €1,000. A year after that the account is worth €2,300. The first deposit was invested for two years and the second for one, so the rate solves 1,000 times (1 + r) squared, plus 1,000 times (1 + r), equals 2,300.

That works out at roughly 9.7 percent a year. The first deposit grows to about €1,203 and the second to about €1,097, together €2,300.

This is the number your outcome is made of, and the one that answers what your money did. It is not the number to compare with an index, because your deposit timing dominates it and the index has no deposits.

The time-weighted return

The time-weighted return removes deposit timing on purpose, so that what is left is the performance of what you held. The recipe is to cut the history into sub-periods at every cash flow, calculate the percentage change within each sub-period, then chain them by multiplying and subtracting one at the end.

Take a year. You start with €10,000, and by the end of June the account has grown to €11,000, a gain of 10 percent in the first slice. On 1 July you deposit €5,000, so the account holds €16,000, and no return is created by that deposit.

By the end of December the account is worth €17,600, which is 10 percent up on €16,000. The second slice is also 10 percent. Chain them: 1.10 times 1.10 is 1.21, so the time-weighted return for the year is 21 percent.

The size of the account in each slice did not matter. That is why this figure can be laid next to an index, which has no deposits either. The same account's money-weighted return would be different, because the €5,000 was invested for only half the year. Neither figure is wrong. They answer different questions.

Where the arithmetic goes wrong

Dividends left out. Income is part of your return, and cash sitting in the account is part of your value. A calculation that only looks at share prices understates your return.

Fees and withheld tax ignored. Both left your account and both belong in the calculation. The cost basis question, which decides your profit per position, is covered in average cost basis explained.

Closed positions forgotten. Whatever you sold is part of your history, whether or not it is still visible in your broker's app.

Currencies mixed. A dollar cost basis next to a euro market value produces a gain that is partly an exchange-rate effect.

Trades treated as cash flows. Only money entering or leaving the portfolio counts. Rebalancing is not a deposit.

Short periods annualized. Turning six good weeks into an annual figure produces a number that does not mean anything.

The benchmark step

Calculating your return is half the exercise. The other half is what to compare it with, and the fair comparison is a simulated index portfolio that received your deposits on the same dates, with your timing and none of your selection.

That construction, and why comparing against the index's own chart is not the same thing, is in how to check whether you are beating the S&P 500.

Doing all of it by hand once is worth an afternoon, if only because you will then know what to ask about any return figure. Doing it every quarter, across brokers and currencies, is what software is for.

BullBenchmark calculates all four numbers from your broker export, with the benchmark replay built in, and the live demo shows the result on a sample portfolio before you upload anything of your own.

In short

BullBenchmark reads the transaction export from your broker and shows your return next to the S&P 500 and the Nasdaq 100, fed with the same deposits on the same dates, in your own currency. The first two weeks are free and no card is needed.

Related: What an S&P 500 benchmark tool has to do · Realized vs unrealized gains