Calculating investment returns: why you get two different answers

There are two ways to calculate your investment return, and they give different numbers. Which one you need depends on what you want to know: how your funds performed, or how you performed.

Gylder Team12 min readRead with AI

There are two ways to calculate your return, and they give different answers. Time-weighted return measures how your investments performed. Money-weighted return measures how you performed. For most private investors the second number is the relevant one, and it's the number your broker usually doesn't show you.

Why doesn't the simple sum work?

Take a portfolio worth €50,000 on 1 January and €62,000 on 31 December. The temptation is to calculate: €12,000 gained on €50,000, so a 24% return.

That's wrong, because money moved in and out along the way:

DateEventValue
1 JanuaryOpening€50,000
1 MarchDeposit €10,000€52,000 → €62,000
1 OctoberWithdrawal €3,000€58,000 → €55,000
31 DecemberClosing€62,000

You added €7,000 net. Your actual gain is €5,000, not €12,000.

The next attempt is usually: €5,000 gained on €57,000 contributed, so 8.8%. Better, but still wrong, and further down I'll show why that number happens to land close here, and why that's no use to you.

The two methods

Time-weighted return (TWR)

Time-weighted return cuts the year at every deposit and withdrawal date, calculates the return for each segment, and multiplies them together. The effect of your contributions drops out of the result completely.

Using the figures above:

  • 1 Jan → 1 Mar: €50,000 becomes €52,000 → +4.0%
  • 1 Mar → 1 Oct: €62,000 becomes €58,000 → −6.5%
  • 1 Oct → 31 Dec: €55,000 becomes €62,000 → +12.7%

Chained together: 1.040 × 0.935 × 1.127 = 1.097.

Time-weighted return: 9.7%

This is the number fund managers use, for a good reason: a manager has no control over when clients put money in, so they're judged on what they do control. Your broker typically shows this figure for exactly the same reason.

Money-weighted return (MWRR)

Money-weighted return, also called the internal rate of return, finds the percentage at which all your deposits and withdrawals, each counted over the time it was genuinely invested, add up to your closing balance.

For the same year:

Money-weighted return: 8.7%

One percentage point below the time-weighted figure. That gap isn't a rounding error: it's your timing.

What does the difference tell you?

Look back at the sub-periods. You deposited €10,000 just before the worst stretch of the year, and withdrew €3,000 just before the best. You had more money in the market while it fell and less while it rose.

That's why your personal result trails your investments' result. The rule of thumb:

  • MWRR below TWR → your timing cost you
  • MWRR above TWR → your timing helped you
  • Roughly equal → you contributed steadily, or it cancelled out

Anyone paying in monthly on autopilot will usually see the two numbers sit close together. Anyone investing larger amounts in one go will see them diverge. That's also the most honest argument for automatic contributions: not that your return goes up, but that your timing matters less.

Why the same sum gives 8.8% twice

Back to that simple calculation: gain divided by contributions, €5,000 on €57,000, or 8.8%. Suspiciously close to the real answer of 8.7%. Coincidence, and it's easy to demonstrate.

Move the €10,000 deposit from 1 March to 1 November. Every other figure stays the same: you start with €50,000, withdraw €3,000 in October, and end at €62,000.

The simple sum doesn't change. Still €5,000 gained on €57,000 contributed, still 8.8%.

The actual money-weighted return does: 9.9%.

That's more than a percentage point of difference on identical amounts. The reason is that in the second scenario your money was invested for far less time to produce the same gain, and less time for the same result means a higher return per year.

The lesson: any method that ignores the dates of your contributions produces a number that's sometimes right and sometimes not, with no way to tell which one you're looking at.

Calculating it yourself in Excel or Google Sheets

You don't need expensive software to work out money-weighted return. Both programs have a function for it.

The XIRR formula

XIRR works with real dates rather than fixed periods, which is exactly what you need.

Lay your data out like this:

AB
11-1-2025−50000
21-3-2025−10000
31-10-20253000
431-12-202562000

Then in an empty cell:

=XIRR(B1:B4, A1:A4)

Result: 8.71%.

Watch the signs, because that's where it usually goes wrong. Money you put in is negative: it leaves your pocket. Money you take out is positive. Your opening balance counts as a deposit on day one, so that's negative too. And your closing balance goes in as the final row, as though you sold everything on that date, so positive.

Where it goes wrong

Three things people trip over:

You forget the closing balance. Without that final positive row the formula has nothing to solve towards and returns an error.

You make everything positive. Then there's no negative cash flow and no return can exist. Excel returns #NUM!.

You use IRR instead of XIRR. IRR assumes equal periods between all rows. If your contributions don't fall neatly every month or quarter, and they usually don't, you get a wrong answer with no warning.

There's no ready-made function for time-weighted return. You have to segment it by hand: you need the portfolio value on every contribution date, both before and after. With three movements that's manageable. With thirty it isn't.

Returns across multiple years

As soon as you look at more than one year, a second trap appears, and it's more persistent than the first.

Why the arithmetic mean misleads

Say you make 30% in year one and lose 20% in year two. The average looks like (30 − 20) / 2 = 5% a year.

Check it with real money. You start with €10,000:

  • After year one: €10,000 × 1.30 = €13,000
  • After year two: €13,000 × 0.80 = €10,400

You've made €400 on €10,000 over two years. That isn't 5% a year. It's 2.0% a year.

The arithmetic mean always overstates your result once there's movement, and the wilder the swings, the bigger the distortion. At +50% followed by −50% the average looks like 0%, while in reality a quarter of your money is gone.

The geometric mean

What you need is the geometric mean, also called the compound annual growth rate or CAGR. You multiply the years together and take the root, rather than adding them up and dividing.

For the example above: √(1.30 × 0.80) = 1.0198, or 2.0%.

Any return figure covering more than one year should be geometric. If the method isn't stated, that's reason enough for suspicion.

What do you actually keep?

Your calculated return is a gross figure. Two things come off before it says anything about your purchasing power.

Costs

Fund costs (the TER) are deducted from the price daily, so they're already reflected in the return you calculate. Broker transaction and service fees usually aren't: they appear as separate charges on your account.

Whether that matters depends on your amounts. On a €50,000 portfolio with a few trades a year you're talking tenths of a percent. On small monthly contributions, fixed transaction fees can eat a far larger share of your return than people expect.

Inflation

This is the figure most often skipped and the one that matters most over time. A return in euros says nothing if those euros are worth less.

The conversion isn't subtraction but division:

Real return = (1 + nominal) / (1 + inflation) − 1

For our 8.7% example:

  • At 2% inflation: 6.6% real
  • At 3% inflation: 5.5% real

For a FIRE calculation or a retirement projection, that real figure is the only one that counts. Every long-term rule of thumb, the 4% rule above all, is about real returns, not nominal ones.

What about dividends?

Dividends belong in your return, but whether they're automatically included depends on your fund.

With accumulating funds (often marked "Acc") the dividend is reinvested inside the fund. The price rises accordingly, so your return is correct without you doing anything.

With distributing funds ("Dist" or "Inc") the dividend arrives as a separate amount in your account. Forget to include it and you'll systematically understate your return: on a portfolio yielding 3%, that's a third of an average investment year.

In the XIRR calculation above, you enter received dividends as a positive cash flow on the payment date, exactly like a withdrawal. If you reinvest the dividend manually, enter two rows: the dividend out and the purchase in. Net effect is small, but the dates will be right.

Adding up multiple accounts

Most people don't have one account. There's a broker, maybe a second broker, a crypto exchange and a pension investment account.

You can't simply average the returns of those accounts. An account holding €80,000 at 6% and one holding €5,000 at 20% don't combine to 13%. You have to weight by size, and where the amounts change, by size over the period.

The way that does work is to build a single cash-flow list across all accounts: every deposit into any account, every withdrawal, and the combined closing value at the end. That's one XIRR calculation over the whole list.

Leave out transfers between your own accounts. That's neither a deposit nor a withdrawal, just money moving from left to right. Include them and it looks as though you contributed far more than you did, and your calculated return falls through the floor.

Which number do you need?

To compare funds: time-weighted

Comparing funds or ETFs against each other, or against an index? Time-weighted is the only fair comparison, because your contribution behaviour shouldn't be in it.

To judge your own wealth: money-weighted

Want to know what your wealth actually did: for a FIRE calculation, a retirement projection, or simply to know where you stand? Money-weighted. That's the number matching what's genuinely in your account.

Most people searching for how to calculate their return want the second and get the first. If your broker's overview doesn't state the method, assume it's time-weighted. You can check: deposit a substantial amount just before a fall and see whether the displayed return moves. If it holds steady, it's time-weighted.

Where does doing it by hand break down?

For one account with three movements, a spreadsheet handles this. In practice you're quickly at dozens of transactions a year, spread across several accounts, in different currencies, with dividends being reinvested and transaction costs your broker doesn't export as separate rows.

And the problem compounds. Every new deposit adds a sub-period to the time-weighted calculation and a variable to the money-weighted one. Want to compare against an index too, and you need that index on every intermediate date. Want to see it across several years, and currency conversion joins in for everything not quoted in euros.

The spreadsheet that starts there is usually the spreadsheet that stops being updated after eight months.

How Gylder calculates this

Gylder computes money-weighted return across your whole portfolio, with every deposit, withdrawal and dividend counted on its actual date. Transfers between your own accounts are recognised and excluded, so they don't contaminate your return.

You see it alongside a benchmark of your choice, MSCI World, S&P 500, EURO STOXX 50 or STOXX Europe 600, so you can tell immediately whether the difference came from the market or from you. Below that sits the breakdown of what drove the return: which positions contributed, and by how many percentage points each.

Amounts in foreign currencies are converted at the European Central Bank's official daily rates, including historically, so a portfolio holding US equities isn't judged against today's exchange rate.

What these numbers don't tell you

Return is an outcome, not an explanation. Both methods tell you what happened, not why, and certainly not what happens next.

Two things stay out of view. Currency effects are included in the total but not shown separately, so you can't see which part of your return came from the dollar rather than from your shares. And costs your broker doesn't export as a separate line are hidden inside the price. At most Dutch brokers that's tenths of a percent per year: noticeable over a long horizon, negligible within a single year.

And one thing no calculation can do: a single year's return says almost nothing about your skill as an investor. The spread between good and bad years is wide enough that you need many years before the number means anything. That's no reason not to measure. It is a reason not to draw conclusions it can't support.

Frequently asked questions

What counts as a good return? It depends what you're invested in and how much risk you're taking. A global equity ETF historically returned around 7% a year nominally, over very long periods and with interim falls of tens of percent. A single year says little about it.

Why does my broker show a different number than I calculate? Almost certainly because your broker uses time-weighted and you used money-weighted, or the other way round. Also check that dividends, currency conversion and costs are treated the same way on both sides.

Should I calculate with or without inflation? For comparing funds: without. For anything about your future, retirement, financial independence, how much you need to stop working, with.

What exactly is XIRR? The function in Excel and Google Sheets that calculates money-weighted return across unequal time intervals.

Does my savings account count towards my return? Only if you treat it as part of the same portfolio. If you do, it will drag your return down, because savings yield less than investments. That isn't an error: it's the price of liquidity, and it should be visible.

Related Articles