Guest mode: your portfolio is kept in this browser until you connect.

Sys onlineGuest--:-- local

How to Calculate Your Portfolio Return And Why Your Broker Disagrees

Three formulas for a portfolio return: simple, money-weighted (XIRR) and time-weighted. On one account with $15,000 paid in, they give +1.33%, +1.60% a year and +4.50%. Here is what each one measures, and which one answers your question.

Julien Esnault
Julien Esnault

· 8 min read

Two lines tracking the same $18,000 put into SPY, the S&P 500 fund, from September 1, 2023 to September 18, 2026: paid all at once it ends at $30,387, paid in three yearly instalments at $25,545, with the $4,842 gap shaded between them.

There are three ways to calculate a portfolio return: the simple return, the money-weighted return (XIRR, what you earned with your timing) and the time-weighted return (TWR, what the investments did). On one account with $15,000 paid in, they give +1.33%, +1.60% a year and +4.50%.

You paid in 18,000 dollars. The account says 25,545. So you made 41.9 percent, and SPY, the S&P 500 fund, made 68.8 percent over the same three years, and you underperformed badly.

Except you did not. You were never holding 18,000 dollars for three years.

The short answer

There are three ways to measure a portfolio return, and they answer three different questions:

MeasureWhat it answersWhen to use it
Simple returnWhat did the money grow by?A single lump sum, never touched
Money-weighted (XIRR)What did I earn, timing included?You add or withdraw money
Time-weighted (TWR)How did the investments do?Comparing yourself to a fund or an index

If you contribute regularly, simple return will understate you and money-weighted is the honest number. If you want to know whether your stock picks beat the index, you need time-weighted, and that one needs your portfolio value on every day, not just on the days you paid in.

Why the same money gives two different answers

Here is the case from the top of this article, on real data. Two investors put 18,000 dollars into the S&P 500 between September 2023 and September 2026. One paid it in three yearly instalments of 6,000. The other paid all of it on the first day.

SPY, the S&P 500 fund, rose 68.8 percent over the window. The lump-sum investor ended with 30,387 dollars. The staged investor ended with 25,545 — 4,842 dollars less, from the same 18,000 dollars into the same index.

Neither of them picked badly. Each instalment missed what SPY did before it arrived: for the whole first year, two thirds of the staged investor’s money was not invested yet.

Reporting that as "I made 41.9 percent against 68.8 percent for SPY" is not a performance problem. It is a measurement problem.

The three formulas, worked on one account

Here is one account over one year, with round, hypothetical amounts rather than market data: $10,000 paid in on January 1, 2025, worth $11,000 on July 1, when another $5,000 goes in, and worth $15,200 on January 1, 2026.

MeasureFormulaOn this account
Simple return(value now − money paid in) ÷ money paid in(15,200 − 15,000) ÷ 15,000 = +1.33%
Money-weighted (XIRR)the yearly rate r at which every payment, grown at r until the valuation date, adds up to the value now10,000 × (1 + r) + 5,000 × (1 + r)^(184/365) = 15,200, so r = +1.60% a year
Time-weighted (TWR)the growth of each period between payments, chained: (1 + r1) × (1 + r2) − 111,000 ÷ 10,000 = 1.10, then 15,200 ÷ 16,000 = 0.95, so 1.10 × 0.95 − 1 = +4.50%

The same account gives three answers. The investments returned 4.50% over the year: that is the figure a fund would publish. You earned 1.60% a year, because your second $5,000 arrived just before the half-year that lost 5%. The simple return, 1.33%, says even less, because it counts the July money as if it had been there since January.

No solver at hand? The modified Dietz method gets close to the money-weighted figure with one division: the gain over each payment weighted by the share of the year it was invested, 200 ÷ (10,000 + 5,000 × 184/365) = 1.60%.

Type the two payments into the calculator below, with $15,200 as the value on January 1, 2026, and it shows the same 1.33% and 1.60%.

Work out your own

your real return

What did the money actually earn?

Put in what you paid and when, then what it is worth today. Nothing leaves your browser — there is no account, and nothing is stored.

a withdrawal is a negative amount
Worth todayAs of
Simple return+18.89%$3,400 on $18,000 paid in. This ignores when the money arrived.Money-weighted, a year+8.17%The annual rate that makes every dated payment add up to today's value, over 3.18 years.

Timing worked for you. Averaged per year you earned +8.17%, against +5.60% if the whole amount had been sitting there from the first day. More of your money arrived when it went on to do well.

Neither number is the one a fund would quote. That is the time-weighted return, and it needs your portfolio’s value on every day — not just the days you paid in — so no form can work it out. The terminal keeps that daily series and draws all three against a benchmark.

What each number is actually for

Simple return

Gain divided by what you put in. Honest only when the money went in once and stayed.

It is the number almost everyone computes in a spreadsheet, and it is the reason so many people think they are underperforming. The more recently you contributed, the more it understates you.

Money-weighted return

The annual rate that makes every dated payment add up to today value. In a spreadsheet it is XIRR. It includes your timing, which is exactly the point: if you bought heavily into a dip, this number rewards you for it.

Use this when you are judging your own decisions.

Time-weighted return

Chains the return of each period together, so contributions cancel out. It measures the investments, not the investor.

This is what every fund quotes, because a fund manager does not control when investors deposit. It is also the only fair way to compare yourself to an index, which is why the next question after "what did I earn" is always "compared to what?".

The catch: it needs your portfolio value on every day, not just the days you moved money. No form can ask you for that, which is why the calculator above stops at money-weighted, and why a tracker that holds a daily series can go further.

The practical rule

  • One lump sum, untouched: all three agree once they cover the same span (XIRR is always a rate per year).
  • Regular contributions: use money-weighted to judge yourself.
  • Comparing to an index or a fund: use time-weighted, or you are comparing two different things.

If you want all three on your own holdings without rebuilding a spreadsheet, the terminal keeps the daily series and draws the curve against a benchmark. You can see it on a sample portfolio before importing anything, or start from portfolio tracker.

And once you have the number, the next step is knowing what to hold it against: how to benchmark your portfolio against the S&P 500, and whether the return came with hidden concentration — is my portfolio actually diversified?

#portfolio-tracking#returns#performance#investing

Keep reading

cite: Julien Esnault, “How to Calculate Your Portfolio Return (and Why Your Broker Disagrees)”, Portfolio Terminal, 2026-09-20. plain-text version for AI tools

Try it on your own holdings

before december 31

Your broker checks one account. Before Dec 31, see the losses you can still harvest across all of them.

The demo opens on the Gains tab, where the panel adds up every line now below what it cost. Import each of your brokers and it counts them all.

Wall Street in 60s, every morning. What’s in it

One short email before the open. Unsubscribe anytime.