Subscribe to our mailing list

How to Calculate Your Time-Weighted Rate of Return (TWRR)

The Holy Grail of portfolio performance benchmarking is the time-weighted rate of return (TWRR).  However, it requires daily portfolio valuations whenever an external cash flow (i.e. a contribution or withdrawal) occurs.  Periods in which external cash flows occur are divided into sub-periods, each with its own total return calculation.  These sub-period returns are then geometrically linked together to obtain the time-weighted rate of return over the measurement period (“geometric linking” is just a fancy way of saying “add 1 to each sub-period return, multiply the sub-period returns together, and then subtract 1 from the result”).  The daily valuation requirement makes it very difficult for the average investor to calculate their time-weighted rate of return without the help of computational software.


In our initial example (please refer to my blog post on How to Calculate Your Portfolio’s Rate of Return), Investor 1 initially invested $250,000 on December 31, 2013.  On September 15, 2014, their portfolio was worth $290,621.  They then added $25,000 to the portfolio, bringing the portfolio value up to $315,621.  By the end of 2014, the portfolio had decreased to $298,082.

Investor 1 would start by calculating their first sub-period return from December 31, 2013 to September 15, 2014 (using portfolio values before the cash flow occurred).  They would then calculate a second sub-period return from September 15, 2014 (using portfolio values after the cash flow occurred) to December 31, 2014.  After this was done, they would geometrically link the sub-period returns to obtain their time-weighted rate of return for the year.

Example:  Time-weighted rate of return for Investor 1


Investor 2 initially invested $250,000 on December 31, 2013 in the exact same portfolio as Investor 1.  On September 15, 2014, their portfolio was worth $290,621.  They then withdrew $25,000 from the portfolio, bringing the portfolio value down to $265,621.  By the end of 2014, the portfolio had decreased to $250,860.

Using the same process, Investor 2 ends up with the exact same time-weighted rate of return for the year.

Example:  Time-weighted rate of return for Investor 2


Regardless of the amounts both investors contributed or withdrew from the portfolio, they ended up with the exact same return. This is precisely the result that should be expected.  The time-weighted rate of return is not affected by contributions and withdrawals into and out of the portfolio, making it the ideal choice for benchmarking portfolio managers or strategies.  If we compare their return to the returns of the MSCI Canada IMI Index over the same period (which their portfolio manager was attempting to track), we also get the same result of 9.79%.

MSCI Index Performance as of December 31, 2014


Source:  MSCI

Before moving onto the next section, please take note of the relative difference in the sub-period returns; the first sub-period return was 16.25% before the cash flows occurred, and a relatively worse return of -5.56% after the cash flows occurred.  This difference in sub-period returns during the year is going to drive the return differences between the time-weighted rate of return and the Money-Weighted Rate of Return (MWRR).

44 Responses to How to Calculate Your Time-Weighted Rate of Return (TWRR)

  1. Willy 26/05/2015 at 9:30 am #

    Good stuff. Re the daily tracking, while I completely agree in theory, I compute a time-weighted (and money-weighted) return for my portfolio on a monthly basis and find it to be “darn close enough” for average investor purposes. It can be especially close if your cash flows are (a) small relative to the size of the portfolio, and (b) can be timed to happen near the end of the month. Since in my personal case I can almost always guarantee those two to be true, I’m fairly sure computing this on a monthly basis is going to be accurate to within a few basis points. I made a spreadsheet that I just spend 20 mins at the end of every month entering a few market values, and it will calculate both this time-weighted and a dollar-weighted return for me.

  2. PHILIPPE MOUFFE 02/01/2016 at 6:40 am #

    Dear Sir,

    I have 2 questions:

    1) In de formula to calculate the TWRR, where is the Time Weighting factor ?
    All returns of the sub-periods have the same weight in the calculation …

    2) I agree that the TWRR is useful in case of comparaison ( i.e. between Portfolio’s managers or with Benchmarks ) because this method focuses on the result of the managers but is it the best method to measure the performance of a single portfolio?
    The TWRR doesn’t take into account the amounts in portfolio. For the TWRR, there is no difference if the return of a sub period is obtained on 5 USD, 50.000 USD or 5.000.000 USD …
    The return of sub periods with just a little money in portfolio are considered to have the same weight in the results.

    Example : New portfolio – Management Begin Date : 15/09/2015 – Cash Transfert/ Investment of 50.000 USD on 16/O9 – but for some technical reasons, the Security Transferts / investments ( 5.000.000 USD ) only start on 15/12/2015 ( delay not foreseen ).

    Sincerely Yours,

    ph. Mouffe

    • Justin 03/01/2016 at 11:10 am #

      Hi ph. Mouffe – I’m not sure if I understand your first question about the “Time Weighting factor” – could you please explain?

      Your second questions deals directly with why the TWRR may not accurately reflect how an investor’s portfolio has actually done – the Money Weighted Rate of Return may be more appropriate in this case:

      • Abs 12/04/2016 at 5:06 pm #

        Agree with Philippe Mouffe – where is the time-weighted factor in 1?
        Dec 2013-September 2014 is about 290 days, so presumably there should be a 290/365 calc in the formula somewhere?

  3. fguemara 24/02/2016 at 5:54 am #

    Hi Justin,
    I am looking for an indicator (I am not sure if it does exist to be honest).
    The one you describe here looks close but I would like to have your opinion :
    Let’s say I have an existing portfolio with three assets, for which I have predictible futur cash-flows and valuation (assumptions). I would like to know, based on the Rate of Return that I am looking for, which one I need to sell today if I needed to.
    Do you think the TWRR can apply ? Many thanks in advance

    F. Guemara

    • Justin 24/02/2016 at 8:03 am #

      @fguemara – calculating your portfolio’s TWRR unfortunately does not give any useful information on whether you should sell a certain security.

  4. Li 05/05/2016 at 11:05 pm #

    Hi Justin,

    Could we apply this TWRR on a security level within the portfolio? ie I would like to know the compounded return of the security.

    Could we still use the geometric return of the security’s daily return % over the period to determine it’s compounded return?

    And the summation of all the securities’ geometric return will = Portfolio’s TWRR?

    • Justin 06/05/2016 at 9:28 am #

      @Li – you can definitely apply the TWRR on a security level (this is normally how individual stock returns are calculated). Dividends are usually assumed to be reinvested on the ex-dividend date.

      Summing the securities’ geometric return will not equal the Portfolio’s TWRR (mainly because you would have to weight the securities return by their allocation within the portfolio).

      • Li 08/05/2016 at 9:48 pm #

        Hi Justin, Thank you for the reply and confirmation of understanding.

        If we are not able to sum each securities’ geometric return, is there a way to cross check the portfolio TWRR number?

        I am trying to find a cross check function. ie performing TWRR on the portfolio NAV will produce the same return when I sum each securities’ geometric return over the same period.

  5. Thananjeyan 01/07/2016 at 2:00 pm #

    Dear Mr.Justin,

    If there are irregular contributions and withdrawals present in a client’s portfolio, How do we calculate the TWRR?
    Do we calculate the Weighting Factor factor for each month? or can we calculate without the weignting factor?

  6. Thananjeyan 01/07/2016 at 2:12 pm #

    Dear Mr.Justin,

    What if there are irregular contributions and withdrawals present in a portfolio. How do we calculate TWRR?
    Do we calculate weighting factor for each contribution and withdrawals?
    or Can we calculate without the Weighting factor?

  7. Chuck 20/10/2016 at 10:10 am #

    Hi Justin, I think the formula above misses one very important element: the exponent/power. In examples of investment 1 and investment 2, the product of [(1+r1)*(1+r2)] has to be raised to the power of (1/N). In our examples, N=2 (2 time periods). So the TWRR = [1.0979^0.5] – 1 = 1.0478 – 1 = 4.78%. Hope it helps.

    • Justin 20/10/2016 at 10:19 am #

      @Chuck: The formula above is correct. If you are trying to annualize a rate of return for a period longer than one year, then you would have to adjust the formula. Since our measurement period in the example is one year, there is no need to do so.

      For a tutorial on how to annualize a rate of return (the measurement period should be longer than a year), please refer to this post:

  8. George 24/11/2016 at 1:53 am #

    What if there has been multiple cash movements through the month? Would you calculate the before and after values for each range?

    1st 10th 15th 20th
    Buy buy buy sell

    • Justin 24/11/2016 at 8:51 am #

      @George: You are correct – you would need to calculate the before and after values of each range, and then calculate the holding period returns during those times frames (chain-linking the returns together afterwards).

      This is why most investors don’t calculate a true time-weighted rate of return – they would need access to daily portfolio valuation figures. If the cash movements are relatively small (compared to the portfolio size), the Modified Dietz return is probably close enough for most purposes.

  9. George 27/11/2016 at 4:45 pm #

    Thanks Justin. I’ve just used your formula grammatically for calculating it on a security level and the end result is what I expect. However, the challenge is calculating it on a portfolio level. I attempted to chain-link the security % returns together but obviously that isn’t right.

    • Justin 27/11/2016 at 5:00 pm #

      @George: All month-end account values (securities + cash) must be manually added together, and then entered into the Modified Dietz calculator as a single total portfolio month-end figure.

  10. George 27/11/2016 at 4:50 pm #

    correction: programmatically, not grammatically

  11. George 14/12/2016 at 11:39 pm #

    I’ve come across an issue that I’m not sure about

    For simplistic calculation, let’s say we’ve got a portfolio holding just one single security and we’re calculating performance for each month

    Let’s say for the first 4 months, the security continued to make high percentage gains. In the 5th and 6th month, the stock dropped significantly but still at a higher price than the initial cost price. At this point in time, the stock is sold off.

    The issue is when I geometrically link all these months together (5 months). The final figure is that they’ve made a significant profit. In reality, the figure should be the difference between the initial buy market value and right before the sell market value as the months in between were “unrealised”.

    • Justin 15/12/2016 at 8:03 am #

      @George: Are you using the market value at the end of the sixth month to calculate your total return? (you mention 5 months, but you need to include 6 months of returns).

  12. George 15/12/2016 at 5:19 pm #

    Sorry that was a typo, it should be 6 months.

    I’ll put an example to make it clearer.

    Let’s say he bought prior to this period with a total MV of $50,000

    1st month: Start: $50,000 End: $60,000
    2nd month: Start: $62,000 End: $80,000
    3rd month: Start: $82,000 End: $88,000
    4th month: $90,000 End: $100,000
    5th month: $100,000 End: $70,000
    6th month: $70,0000 End: $60,000 <- At this point, portfolio is sold off

    Using the calculations:
    1st month: (60-50)/50 = 20%
    2nd month: (80-62)/62 = 29%
    3rd month: (88-82)/82 7.3%
    4th month: (100-90)/90 = 11.11%
    5th month: (70-100)/100 = -30%
    6th month: (60-70)/70 = -14%

    Geometrically linking them = 11.11%

    The portfolio started at 50k and ended 60k. If you perform a single calculation (60-50)/50, you get 20%. In this example, it's actually understated the performance. The portfolio I was testing with overstated the performance.

    • Justin 15/12/2016 at 5:47 pm #

      @George: Some of your month-end values are different than the next month’s beginning values – in some cases they are off by $2,000 (which doesn’t make sense, as they should be identical). If you fix these errors, the geometrically linked monthly returns will equal 20%.

  13. George 15/12/2016 at 6:00 pm #

    I think what I need to use is the money-weighted approach

    • Justin 18/12/2016 at 7:44 pm #

      @George: If there were no contributions or withdrawals to or from the portfolio, you money-weighted rate of return = your Modified Dietz rate of return = your time-weighted rate of return. This is not an issue with your methodology, but rather your inputs.

  14. George 18/12/2016 at 6:53 pm #

    Hi Justin,

    The reason they are different in my calculations as for each month, I’m using the 1st and end of month closing prices.

    • Justin 18/12/2016 at 7:51 pm #

      @George: Ignore any 1st of the month values. A March 31st month-end value should also be the figure used for your April 1st value.

      When calculating monthly rates of return, just use the last day of each month for portfolio market values.

  15. Lawrence 28/12/2016 at 1:59 am #

    Hi Justin,
    I have read your article with lots ofinterest and together with your insightful replies to the comments, I have a much clearer understanding of TWRR. I was hoping that you could help make one clarification for me. For a portfolio that holds Equity Securities (one illiquid counter only really) and cash:
    BMV is USD 107 (Security MV 107 + Cash 0)
    Dividend is paid out in cash and received same day Security goes ex dividend
    EMV of the portfolio is USD 107 (Security MV 100 + Cash 7)
    Will this portfolio have generated 0% portfolio Returns?
    Will this security have generated 0% Equity Asset Class Returns?

    I would appreciate this clarification or how to adjust my calculation because I would be expecting 7% return for both. Many thanks.

    • Justin 29/12/2016 at 9:52 am #

      @Lawrence: You are correct that the portfolio returns (and the equity asset class returns) would be 0% (a 7% cash distribution is not the same thing as a 7% total return). If you are calculating the rate of return in Canadian dollars, you would also be required to make some currency adjustments.

  16. George 10/01/2017 at 12:22 am #

    Hi Justin,

    Just revisiting my previous question, I’ll give you an actual example account that I’m using to show you the issue I’m experiencing with this formula. To summarize, this particular security that the account held made extraordinary gains for a number of months, then dramatically dropped within a month. Chain-linking all these months together over inflated their final portfolio value after they sold out because all those previous months were basically “unrealised gains”.

    If you get a chance, are you able to work out the return on this portfolio using the information provided below? I’ve doubled check everything and I get a figure of 70%+ return, when in fact this account made just under 20%.

    In my calculation, I’ve calcualted performance on a monthly basis and chain-linked the months all together

    *Dates are in dd/mm/yyyy format

    1st buy: 13,600 units, price: $0.22 Total consideration: $2992 date: 9/3/2016
    2nd buy: 7,140 units, price: 0.4175, total consideration: $2980.95 date: 21/4/2016
    3rd buy: 6,500 units, price = $0.46 total consideration: $2990.00 date: 21/4/2016
    Sell all: 27,240 units, price $0.39, consideration: $10,623.60 date: 12/8/2016

    secuirty prices:
    9/3/2016: 0.2150
    31/3/2016: 0.2550
    1/4/2016: 0.2550
    21/4/2016: 0.4500
    2/5/2016: 0.3650
    31/5/2016: 0.4650
    1/6/2016: 0.5000
    30/6/2016: 0.4950
    1/7/2016: 0.5000
    29/7/2016: 0.4700
    1/8/2016: 0.4750
    12/8/2016: 0.4100

  17. George 17/01/2017 at 10:11 pm #

    Hi Justin,

    My previous post was probably too long for you to bother reading, but as I was saying in my previous post, the unrealised gains made month to month will be factored into the final % return when you liquidate your holdings using the time weighted. This will in effect skew the final percentage return as those gains/loss made during the period between when you bought and sold are no longer relevent.

    • Justin 18/01/2017 at 12:25 pm #

      @George: Your comment about “gains/loss made during the period between when you bought and sold are no longer relevant” is a bit confusing. Honestly, I’m unsure what you’re really asking or what you would like me to agree with.

  18. George 19/01/2017 at 5:48 pm #

    Hi Justin,

    I believe that I need to use money weighted average. What I’m trying to say is the formula doesn’t take into account the sizing of the contributions, so you might have made 10% on one particular month, and then you add a sizable amount to the portfolio, the 10% is still “chain-linked” to the following months gains/losses without taking into the sizing.

    If you go to page4, the scenario they’ve given, it’s exactly the same issue I’m getting where using the time weighted average, I’m getting a big percentage performance when in fact, a small amount was made.

    • Justin 21/01/2017 at 11:08 am #

      @George: If you chain-link monthly money-weighted rates of return (I call this the “linked money-weighted rate of return”) or monthly Modified Dietz rates of return (which is what I do with my online calculator), the overall return will start to approximate the time-weighted rate of return.

  19. Dan 26/02/2017 at 5:05 am #

    Hello Justin, thanks for the post! However, I’m still confused over return calculation. The TWRR method is used to calculate a portfolio return that is unrealized. This is a perfect method to track a fund’s return. However, as an individual investor, how can I combine both my realized and unrealized return as one?

    • Justin 26/02/2017 at 12:59 pm #

      @Dan: I’m not sure I understand your question. What are you trying to combine and calculate?

  20. Brian Casiday 02/03/2017 at 6:58 pm #

    Justin – Your TWRR examples are very clear, and I understand how withdrawing $25K or adding $25K both yield the same 9.79% result. However, my thick skull can’t figure how this is a useful measure of portfolio performance. Say that on Jan. 31 I make an initial deposit of $10,000 to open an investment account. On Feb. 28 I add $500,000. A few years later I do the TWRR calculation. If the calculation ignores the additional $500,000 and bases my (or the portfolio manager’s) performance on the initial $10,000, how is this useful? Also, why is it not relevant to consider time? If I invest $10,000 and it becomes $11,000 in a year, that’s good – a 10% return. But if it takes 10 years for the $10,00 to reach $11,000, that’s not so good. Many thanks for your educational postings.

    • Justin 05/03/2017 at 12:35 pm #

      @Brian Casiday: In your example, the portfolio manager had no control over the timing of your cash flows. What if you gave the portfolio manager $10,000 on January 31st to “see how he/she would do”, and withheld the other $500,000. After one month, the portfolio manager had earned you 20%, so you sent them the remaining $500,000. If markets went down after the large contribution had been made, that would not be the portfolio manager’s fault (well, it may have been, but we could gauge their performance by comparing it to a benchmark return, or to their peers’ performance).

      If you are interested in how you actually performed when considering your market timing decisions, then a money-weighted rate of return may be more appropriate (but you can’t benchmark it to index returns that are calculated using the TWRR).

  21. Brian Casiday 08/03/2017 at 4:19 pm #

    Thanks, Justin. I appreciate your spending so much of your valuable time on answering all these inquiries, from me and so many others, so I will not be offended in the slightest if you don’t reply to this. But I still don’t understand. Forget portfolio management. If I start an investment account with $10,000, add $500,000 a month later, and 59 months after the $500,000 addition I check to see how I’m doing, I will have had $510,000 in the account for almost the entire five years, and I would evaluate MY OWN performance by noting what $510,000 had become, not $10,000. (I’d like to also account for the $10,000 for 1/60 of the period, but that’s a minor issue). So if that’s the way to evaluate my own investing expertise (or luck!), why not apply the same reasoning if a portfolio manager had handled everything from the beginning? Thanks again.

    • Justin 08/03/2017 at 8:22 pm #

      @Brian Casiday: Let’s look at it from this example (sorry, the examples with advisors are just easier to understand – but consider yourself the advisor if you would like). Suppose you give your advisor $10,000 on December 31, 2011, and they invest it. After one month, they have lost 20% of your investment (so it is now worth $8,000). Thinking that this may be a good buying opportunity, you give them $500,000 more to invest on January 31, 2012. For the next 11 months, your total portfolio increases by 31.25%, ending the 2012 year at $666,750 [($8,000 + $500,000) x 1.3125]. However, your time-weighted rate of return is only 5% [((1 + (-20%))*(1 + 31.25%) – 1] = 5%

      For the next 4 years, you add no new funds, and your portfolio grows by 5% each year. End of 2013 = $700,087.50, End of 2014 = $735,091.87, End of 2015 = $771,846.46, End of 2016 = $810,438.78.

      At the end of 2016, you calculate your annualized money-weighted rate of return (using my MWRR calculator), and it equals 8.16%. You compare this MWRR return to an appropriate weighted-average index return of 7%, and are extremely pleased with the results. However, your annualized time-weighted rate of return is only 5% – this figure is more appropriate for benchmarking purposes. In fact, if you would have matched the 7% time-weighted index return, you should have had a portfolio worth $890,620.34 at the end of 2016.

      Are you going to be upset with your advisor’s results (or your own)?

      I understand the confusion, as most investors give their advisor cash before a bull market, and love them afterwards (even if the advisor lagged the index by 3%). The same investor will give the advisor cash before a bear market, and hate them afterwards (even though the advisor matched the index return).

      This topic is complicated, but until investors spend the time understanding it, they will continue to be led astray by the industry (why do you think the industry opted for a money-weighted rate of return instead of a time-weighted rate of return?)

  22. Brian Casiday 09/03/2017 at 3:57 pm #

    Justin – Thanks again. I’ll have to give this a lot more study, including your 20-page “Understanding Your Portfolio’s Rate of Return.” Meanwhile, I can’t resist observing that anyone who would praise or blame the advisor without taking into account (in SOME way) his own contributions or withdrawals shouldn’t be let out of the house without adult supervision. I’ve been simply adding back my withdrawals and subtracting my additions when I do my month-end balance sheet. But clearly my method needs improvement.

  23. tinotenda 23/03/2017 at 12:11 pm #

    Please can you help with question below i am failing to work it

    A Fund Manager started the year 2016 holding funds with a market value of $1 million. On 1 July he received $0.4 million additional funds from the trustees. At the end of the year, the market value of the fund was $1.6 million and the total dividend income received over the year was $50 000. This information, together with additional data, is shown in the table below.

    Value Date Fund Value($’000) Funds Injected($’000) Dividends*($’000) Index Value($000) ($’000)

    1 Jan 2016 1 000 – – 2 000
    1 July 2016 930 400 20 1 840
    1 Jan 2017 1 600 – 30 2 330

    * Since last value date

    i)Calculate the Fund return and the Index return on a comparable basis using the MWR method. Show all workings.

    • Justin 26/03/2017 at 9:39 pm #

      @tinotenda: I should probably not be completing your homework assignments for you 😉

Leave a Reply