Time-Weighted Return Calculator
Measure performance with deposits and withdrawals stripped out, which is how a strategy is judged rather than an account.
An account that rises from $10,000 to $17,800 over five years has not told you how the strategy behind it performed, because part of that rise arrived by bank transfer rather than by investment. A time-weighted return calculator removes the transfers: the record is cut at every deposit and withdrawal, each stretch between the cuts is measured on its own with the money movement taken back out of it, and the stretches are then multiplied together. What is left is the time-weighted rate of return, usually shortened to TWR.
Formula: TWR = product of (1 + sub-period return) - 1, linked across every cash flow
Your figures
End means the account was valued immediately before the money moved, which is how most statements read. Start means it was invested for the whole sub-period.
Optional — used only to restate the linked return as a rate a year. Leave it blank to report the total on its own.
Results
Time-weighted return
+37.98%
+6.65% a year, linked across 5 sub-periods
- AnnualisedThe constant yearly rate that arrives at the same place. No sub-period necessarily returned it.
- +6.65%
- Where 100 invested at the start finishesThe linked index. It follows the strategy rather than the balance, so no deposit lifts it and no withdrawal lowers it.
- 137.98
- Best sub-period
- +15.00%
- Worst sub-period
- -4.00%
- Largest fall in the indexPeak to trough on the linked index rather than on the balance. A deposit made part-way down lifts the balance and would make the fall look shallower than the strategy delivered.
- 4.00%
- Sub-periods linked
- 5
- Total paid in
- US$4,000.00
- Total taken out
- US$500.00
- Net cash flowPaid in less taken out. None of it counts as performance — it is here so the figures above can be reconciled against a statement.
- +US$3,500.00
- Sub-period 1US$10,000.00 to US$12,500.00 · +US$1,000.00 moved · index 115.00
- +15.00%
- Sub-period 2US$12,500.00 to US$13,000.00 · +US$1,000.00 moved · index 110.40
- -4.00%
- Sub-period 3US$13,000.00 to US$15,500.00 · +US$1,000.00 moved · index 123.14
- +11.54%
- Sub-period 4US$15,500.00 to US$14,800.00 · -US$500.00 moved · index 121.55
- -1.29%
- Sub-period 5US$14,800.00 to US$17,800.00 · +US$1,000.00 moved · index 137.98
- +13.51%
What this means
Each sub-period is measured with its own cash flow taken back out of it, so the +US$3,500.00 that moved in and out over the record counts as neither gain nor loss. Multiplying the 5 growth factors together rather than averaging them gives +37.98%, which is where 100 invested at the start and left alone finishes at 137.98. Linking rather than averaging is what makes the figure agree with the money: a sub-period of +50% followed by one of −50% averages to nothing and compounds to −25%. Spread over 5.00 years that is +6.65% a year. What the figure deliberately does not describe is what the money earned. It is blind to how much was invested at each point, which is the question a money-weighted return answers instead.
- Each cash flow is treated as landing at the end of its sub-period, so the account is valued immediately before the money moves. If a deposit was in fact invested for the whole sub-period, change the timing above — on a large flow into a small account the two conventions give materially different answers.
- Measured only at the valuations entered. A sub-period that fell and recovered in between shows only its net effect, so more frequent valuations describe the record more closely.
- Ignores tax. A fee taken from inside the account reduces the ending value and so appears as a lower return, which is usually what is wanted; a fee paid from elsewhere does not appear at all unless it is entered as a withdrawal.
- Every valuation, cash flow and observation here is one you enter. Nothing is fetched and no benchmark, index level or rate is assumed, so the answer is only as good as the record it was copied from.
Time-weighted return: +37.98%
The link reopens this calculator with the same numbers. Nothing you enter is sent to a server.
Continue with these figures
About the Time-Weighted Return calculation
This TWR calculator does that cutting and linking. Each row is one sub-period, holding the value it opened at, the value it closed at — the closing balance exactly as a statement shows it, with the cash flow already inside it — and the flow itself, deposits positive and withdrawals negative. You choose whether a flow is treated as landing at the start or the end of its sub-period, and you can add the length of the record in years to see the linked figure restated as a rate a year.
Geometric linking of returns is why this is the convention performance is reported under, from fund factsheets to the GIPS standards. A manager does not choose when subscriptions arrive or when redemptions are demanded, so a figure that moved with those decisions would be measuring the investors rather than the manager. Taking the flows out is what makes one record comparable with another, and what makes a single record comparable with itself across years in which very different sums were invested.
What the figure deliberately does not describe is what the money earned. A record can post a healthy time-weighted return while the investor behind it finished down, because the largest deposit landed just before the worst stretch and the smallest was in place for the best one. Neither number is wrong. They answer different questions, and the gap between this figure and a money-weighted return is itself the most informative thing about many records.
Time-Weighted Return formula
for each sub-period i, with the flow treated as landing at the END:
growth_i = (end_i − flow_i) ÷ start_i
with the flow treated as landing at the START:
growth_i = end_i ÷ (start_i + flow_i)
TWR = (growth_1 × growth_2 × … × growth_n) − 1
index = 100 × growth_1 × growth_2 × … × growth_n
annualised = (1 + TWR)^(1 ÷ years) − 1- start_i
- The account value at the opening of sub-period i, before anything happened in it.
- end_i
- The closing balance of sub-period i as the statement reads, with the cash flow already included in it.
- flow_i
- Money moved during sub-period i: positive when paid in, negative when taken out.
- growth_i
- One plus the sub-period return — the multiplier applied to whatever was invested over that stretch.
- index
- Where 100 invested at the start of the record and never touched again finishes.
The flow is removed before the division because a statement's closing balance already contains it. An account that opens a quarter at $10,000, receives $1,000 and closes at $12,500 has not returned 25%; the $1,000 is subtracted first, leaving $11,500 of growth on $10,000, which is 15%. Arranging the arithmetic this way is what makes money arriving unable to register as performance, which is the entire purpose of the method.
The two timing conventions differ because they disagree about how long the money was working. On that same quarter, treating the $1,000 as landing at the start divides $12,500 by $11,000 and returns 13.64% rather than 15.00%. On a small account taking a large flow the two are nowhere near each other: $5,000 paid into a $1,000 account that closes at $6,300 is +30% under the end convention and +5% under the start convention. That is why the timing is asked rather than assumed.
Sub-periods are multiplied rather than averaged because only the product agrees with the money. A stretch of +50% followed by one of −50% averages to nothing and compounds to −25%, and it is the −25% that a balance would show. In the worked example below the five sub-period returns add up to 34.76% while their product is 37.98%; the difference is compounding, and it runs in either direction depending on the shape of the record.
Annualising takes a root rather than a division for the same reason. Spreading a 37.98% five-year return by dividing gives 7.60% a year, which compounds to 44.20% over five years — considerably more than the record produced. The fifth root gives 6.65%, and 1.0665 raised to the fifth power returns to 1.3798, which is the test any annualised figure has to pass.
Time-Weighted Return: a worked example
Five sub-periods on an account that opens at $10,000, takes a $1,000 deposit in four of them and a $500 withdrawal in the fourth, closing at $17,800 after five years.
- Sub-period 1(12,500 − 1,000) ÷ 10,000 = 1.150000 → +15.00%
- Sub-period 2(13,000 − 1,000) ÷ 12,500 = 0.960000 → −4.00%
- Sub-period 3(15,500 − 1,000) ÷ 13,000 = 1.115385 → +11.54%
- Sub-period 4(14,800 + 500) ÷ 15,500 = 0.987097 → −1.29%
- Sub-period 5(17,800 − 1,000) ÷ 14,800 = 1.135135 → +13.51%
- Linked1.150000 × 0.960000 × 1.115385 × 0.987097 × 1.135135 = 1.379752 → +37.98%
- Index100 × 1.379752 = 137.98
- Annualised1.379752^(1 ÷ 5) − 1 = +6.65% a year
The balance rose from $10,000 to $17,800, an increase of $7,800 — but $3,500 of that was net cash paid in, not performance. Stripping the flows out leaves +37.98% over the record, or +6.65% a year, and 100 invested alongside it and left alone would sit at 137.98. Note that the fourth sub-period is negative despite the balance falling by only $700, because $500 of that fall was a withdrawal.
How to use the Time-Weighted Return calculator
- Cut your record at every cash flow and add one row per stretch between the cuts. A year with three deposits in it is four sub-periods, not one.
- Enter the starting value as the account stood at the opening of the stretch, before anything moved.
- Enter the ending value as the closing balance the statement shows, with the deposit or withdrawal already in it. Do not remove it yourself — the calculator does that.
- Enter the flow that occurred during the stretch: positive for money paid in, negative for money taken out, blank where nothing moved.
- Choose the timing. The end convention matches most statements, which value the account immediately before the money moves; choose the start convention where the money was genuinely invested for the whole stretch.
- Add the length of the record in years if you want the annualised figure, or leave it blank to see the total on its own. Read the per-sub-period breakdown before anything else: a row that sits far outside the rest of the record is usually a transcription error rather than a stretch worth explaining.
Limitations of the Time-Weighted Return calculator
Every calculation makes assumptions. These are the ones that matter here.
- The result is only as fine-grained as the valuations entered. A sub-period that fell 20% and recovered before its closing valuation shows only the net effect, so the record looks calmer than it was.
- Both flow conventions are approximations of a flow that actually happened somewhere inside the sub-period. A true daily-valued time-weighted return needs a valuation on the day of every movement, which most retail statements do not provide.
- It is blind to how much money was at work in each sub-period, which is the point of the method and also its blind spot. A strong figure here is entirely consistent with an investor who lost money.
- Nothing reconciles one row against the next — a starting value need not equal the previous ending value — so a mistyped valuation is accepted silently and changes two sub-periods at once.
- Fees taken from inside the account reduce the ending value and so appear as a lower return; fees paid from elsewhere do not appear at all unless entered as withdrawals. Tax is not modelled anywhere.
- Annualising a record shorter than a year magnifies it. A good few months restated as a yearly rate is a figure the record never actually produced and has no particular reason to repeat.
Frequently asked questions about Time-Weighted Return
Why does this differ from the return my broker reports?
Three things usually explain it. Brokers often value daily rather than at your cash flows, which catches movement your sub-periods average over; they may apply a different flow-timing convention; and they may treat fees, interest or dividend withholding differently from the way you have entered them. The method here is transparent, so a difference can be traced rather than guessed at.
Can the time-weighted return be positive on a record where I lost money?
Yes, and it happens often. If a small balance earned well early and a large deposit arrived just before a losing stretch, the linked figure stays positive while the account is down in cash terms. That is not a fault in the calculation: reporting performance excluding deposits is exactly what the method is for, and it is the whole reason a money-weighted return exists as a separate measure.
Should a withdrawal be entered as a negative number?
Yes. Deposits are positive and withdrawals negative in the same column, which is how the arithmetic tells them apart. Entering a withdrawal as a positive figure makes the calculator subtract it from the ending value a second time and produces a sub-period return that is too low, sometimes dramatically so.
What does the index of 137.98 actually represent?
It is the growth factors multiplied onto a starting value of 100, so it shows where a hypothetical 100 invested at the start and never added to or drawn from would finish. It follows the strategy rather than the balance, which is why the drawdown figure is taken from it: a deposit made part-way down a fall lifts the balance and would make the fall look shallower than it was.
Which flow timing should I choose?
Whichever matches what actually happened. If the balance you copied was struck before the money moved — the usual case on a statement — the end convention is correct. If the money was in place for the whole stretch, the start convention is. Where the flow is small relative to the account the choice barely matters; where it is large, the two answers can differ by tens of percentage points.
How many sub-periods do I need?
At least two, because linking one stretch to the next is the method and a single row has nothing to link. Beyond that, more sub-periods describe the record more closely rather than more accurately: adding a valuation only helps if it is a real valuation, and an invented mid-point makes the figure look more precise without making it more true.
Last reviewed . See our methodology and editorial policy.
More performance calculators