Calculator, no sign-in needed

Time-weighted return, with the deposits taken out of it

Enter what the portfolio was worth on a few dates and what you paid in or took out. The calculator chains the sub-period returns, so a deposit stops looking like a gain, and it shows the money-weighted return beside it so you can see how far apart the two answers are.

Runs in your browserNothing is sent or storedVestiio never trades or holds assets

Calculator

One row per date: what the portfolio was worth that day, and any money paid in (positive) or taken out (negative) immediately after. The first row is the opening valuation and the last is the closing one. It opens with the worked example from further down the page.

DatePortfolio valueCash flow afterRemove

Any currency, as long as every row uses the same one. Leave the cash flow blank for a date with none.

Which of the two answers you want

A portfolio with money moving in and out has two defensible returns, and they answer different questions. Both are on this page because the gap between them is usually the thing worth knowing.

Time-weighted (TWR)

How did the investments do?

Each stretch between cash flows is measured on its own and the stretches are multiplied together, so the size and timing of your deposits drop out. This is what fund factsheets quote and the only one of the two you can fairly compare with an index.

Money-weighted (MWR, or XIRR)

How did you do?

One rate that makes the value of all your cash flows add up to what the portfolio is worth today. It rewards paying in before a rise, so it credits your timing as well as the investments. This is closer to what a broker app shows you.

Pay money in while a portfolio is down and it then recovers, and the money-weighted return will beat the time-weighted one, because more of your money was present for the recovery. The worked example below does exactly that: 3.50% time-weighted against 4.77% money-weighted. Neither number is wrong. Quoting the second against the S&P 500 is.

The formula, and the convention this calculator uses

  1. Split the period at every date where money moved.
  2. For each stretch, the return is the closing value divided by the opening value plus any cash flow at the start of that stretch, minus one.
  3. Multiply every (1 + return) together and subtract one. That is the time-weighted return for the whole period.
  4. To annualise, raise (1 + total) to the power of 365.25 divided by the number of days, then subtract one.

TWR = [ (V1 / (V0 + F0)) x (V2 / (V1 + F1)) x … ] - 1

A cash flow entered on a date is treated as happening immediately after the valuation on that date, so it belongs to the stretch that follows. That is the convention below and the one the product uses, and it is the reason the valuation and the flow sit on the same row.

A worked example you can check

Three dates, one deposit, and the two returns landing in different places. The calculator opens preloaded with these numbers, so you can change one and watch the answers move.

DatePortfolio valueCash flow after
1 January 2025100,0000
1 July 202590,000+10,000
1 January 2026115,000closing value

The first stretch lost 10.00%: 90,000 from 100,000. The second gained 15.00%: 115,000 from the 100,000 that was invested over it, being the 90,000 it was worth plus the 10,000 paid in. Chained, that is 0.90 x 1.15, so the time-weighted return is 3.50% over the period. The period is exactly a year, 365 days, so annualised it is 3.50% too. The money-weighted return is 4.77% a year, higher because the deposit went in near the bottom. In cash, 110,000 went in and the portfolio ended at 115,000. Only one of those two returns can be held against an index.

The same sum, on your own portfolio, continuously

Doing this by hand needs a valuation on every date money moved, which is the part brokers make tedious. Connect a portfolio to Vestiio read-only and the time-weighted return is computed for you from the transactions, with every position converted into one currency, and compared the same time-weighted way against benchmarks you pick from a curated list of 17 that includes the S&P 500 and gold.

Your history, rebuilt

Plaid supplies today’s holdings and up to two years of transactions but no daily values, so Vestiio rebuilds the daily series from those transactions and its own price and exchange-rate data. For an Interactive Brokers account that reaches back about 14 months.

Deposits stay out of the return

Performance is time-weighted throughout the product, so paying money in never shows up as a gain. That is why a Vestiio number can differ from a broker app showing simple value change.

Compared the same way

Benchmarks are computed over the identical period with the identical method, so the comparison is like for like rather than your money-weighted return against an index return.

Read-only, and private

Vestiio never trades, moves money or holds assets. A connected portfolio is private until you choose to share it, and the first sign-in creates a demo workspace with simulated data so you can look before connecting anything.

Pricing

PlanMonthlyAnnualIncludes
Basic$19/mo$190/yr1 portfolio
Pro$39/mo$390/yr2 portfolios
Premium$59/mo$590/yr5 portfolios

Annual plans get two months free. Extra portfolios are $10/mo each. Basic may add one; Pro and Premium up to ten. No free tier. A Demo workspace with a synthetic portfolio lets you try the product before paying. Billing is by card through Stripe, and a subscription can be cancelled at any time, taking effect at the end of the current period. If Vestiio is not useful to you, ask for a refund during the first billing period of a monthly plan or within 14 days of starting an annual one.

Questions

What is the difference between time-weighted and money-weighted return?
Time-weighted return measures the investments by removing the effect of your deposits and withdrawals, which is what makes it comparable with an index. Money-weighted return, also called XIRR, is the single rate that reconciles all your cash flows with today’s value, so it credits or penalises your timing as well. Both are shown above from the same inputs.
Why does my broker show a different return?
Most broker apps show simple value change or a money-weighted figure, both of which move when you pay money in. A time-weighted return does not. The two can differ widely in a year with large deposits, and neither is a mistake.
How many dates do I need?
One row for the opening valuation, one for every date money moved, and one for the closing valuation. The accuracy of a time-weighted return depends on having a valuation on each date a cash flow happened; without one, any calculator is approximating.
Does this calculator send my numbers anywhere?
No. The arithmetic runs in your browser and nothing is submitted or stored. There is no sign-in and no cookie banner, because the page sets no non-essential storage.
Is a time-weighted return annualised?
Not by itself. The chained figure covers whatever period you entered. The calculator also annualises it using the actual number of days, and labels which is which, because a six-month return and an annual one are not the same claim.

See your own time-weighted return, continuously

Sign in with Google, look around the demo workspace, then connect a portfolio read-only when you are ready. Plans start at $19 a month.

Start with demo data

Vestiio is informational portfolio analytics software. It does not execute trades, hold client assets, or provide investment advice. The calculator on this page is general arithmetic, not a recommendation.