How to calculate your portfolio's return rate

By Jakub Svehla

"What's the return on your investments?"

A simple question that isn't always easy to answer (at least correctly).

Measuring and tracking the return of your investments is one thing you should always do to make good investment decisions. Still, many investors, portfolio trackers and even brokers (I won't point fingers) calculate it incorrectly.

In this post, I will go step by step through simple examples to show you why some commonly used metrics don't work and which ones to use instead.

Simple return

Let's say that at the beginning of the year, you invest $100 in a stock. After one year, the value of the stock rises to $110. You calculate the return by taking the profit (difference between the current value and how much you invested) and divide it by the amount invested: \(\frac{\$110-\$100}{\$100} = 10\%\) per year. This formula/calculation is called simple return. So far so good.

Impressed by the return, you decide to buy another 10 stocks for $1100 total. So in total, you invested $1200 and the value of your portfolio is \(11\times\$110=\$1210\). Just to double check, you calculate the return again using the same formula (profit divided by the amount invested): \(\frac{\$1210-\$1200}{\$1200}=0.83\%\). What? Did your return just mysteriously drop from 10% to 0.83% just by buying new shares? Should you just take your money and put them to a savings account? Fortunately not. If you did, you would be leaving a lot of money on the table. Your return actually did not decrease at all. You are just using simple return when you shouldn't, as many others do.

The simple return works if you invest once and do not do any other contributions. However, if you keep adding funds to the portfolio then the later contributions (or withdrawals) skew the return either down (with contributions) or up (with withdrawals).

Time-weighted return

One way to fix that is to calculate the simple return between each contribution/withdrawal separately and then compounding (multiplying) them together to get the overall period return.

To better illustrate it, let's say that you hold the portfolio for one more month and the stock keeps growing at the same rate (10% per year = 0.8% per month). So at the end of the next month, the value of your portfolio will be \(\$1210 \times 1.008 = \$1220\).

To calculate the return we first need to divide it into sub-periods for each contribution/withdrawal. So in our case, we will have to sub-periods:

  1. In the first sub-period (between the first and the second contribution), the initial value was $100, the ending value was $110 and the length of the holding period was 1 year. So we get \(\frac{\$110-\$100}{\$100} = 10\%\) per year.
  2. In the second sub-period (between the second contribution and now), we already had 1 share worth $110 and bought 10 more shares worth $1100. So the initial value is \(\$110+\$1100=\$1210\) (ending value of previous period plus the contribution), the ending value is $1220 and the length of the period is 31 days. So we calculate the return of this period as: \(\frac{\$1220-\$1210}{\$1210}=0.8\%\) per month.

At the end, we compound the returns together to get the overall return by multiplying them and we get that the portfolio grew by \(\left(1.1\times1.008\right)-1=10.88\%\) after 1 year and 1 month.

This is called time-weighted return (TWR) since each return is weighted by how long the money was invested.

TWR gives us the return over the whole holding period (holding period return, HPR). However, to be able to compare it to other investments (we need to compare them over the same period length, usually a year), it is useful to express the return as the return rate per year (per annum or in short p.a.). We can calculate the annual return as follows: \((1 + \text{HPR})^{\frac{365}{\text{holding period length in days}}} - 1\), where HPR is our holding period return. In our case we get: \((1+0.1088)^{\frac{365}{365+31}}-1 = 10\%\), which is the expected annual return. This process is called annualization.

Money-weighted return

But there's a problem with TWR: it does not take into account the amount of money that you invested in each period, only the length of the period for which it was invested.

To illustrate the problem, let's assume that instead of growing by 0.8% in the last month, the portfolio decreased in value by 1%. So at the end of the month, the value of the portfolio would be \(\$1210 \times (1-0.01) = \$1197.9\).

In total, we invested $1200 and the value of the portfolio is $1197.9, which means that we are at loss of $2.1. However, if we calculate the TWR we get that our return is positive 11.1%. So we are losing money but the return rate is positive? This is caused by the fact that TWR does not take into account the amount of money that was invested in each sub-period. And indeed, if we invested $1 at the beginning and did not add any other contributions, we would end up with $1.111 and our return would indeed be 11.1%.

But unfortunately, we had bad timing and invested most of the money at the time when the market was going down and the profit from the first year is relatively insignificant compared to the loss of the last month (in absolute numbers). So even though the stock was growing most of the time we ended up with a loss due to bad cash flow timing.

To take into account cash flow timing, we need to use money-weighted return (MWR), which tells us the actual return given our cash flows. The calculation is a bit more involved and there is no closed-form solution, which means that it’s difficult to calculate by hand (it can only be solved by iteratively guessing the right solution). So I won’t explain how it works in this post. However, it is equivalent to internal rate of return (IRR) calculation so we can use XIRR function in Excel to calculate it.

But it is important to be able to interpret it correctly. I will try to explain it using an example: Let’s suppose there was a hypothetical account with a fixed interest rate (e.g. a savings account) and you made the same contributions and withdrawals to/from the account as to/from your portfolio (same amounts at the same times). Now, what would have to be that account’s interest rate so that you ended up with the same amount at the end? If you calculated that return rate, it would equal to MWR of your portfolio.


  • Simple return: Works only if you buy once and do not add any other contributions.
  • TWR: Tells you how much would a hypothetical $1 investment in the portfolio grow. It is often used by portfolio managers who do not influence the timing of your contributions/withdrawals.
  • MWR: Tells you your actual return rate. It should be used if you control the timing of your contributions and withdrawals.

If you found the post useful I would be super happy if you shared it with others!