Last reviewed 4 May 2026.
The short answer
To find your true return across multiple brokers, do not add or average each broker's percentage. Instead, add up your accounts into a single portfolio value, split the timeline into sub-periods around every deposit and withdrawal, calculate the percentage change within each sub-period, and multiply those growth factors together. That is the time-weighted return (TWR), and it is the only method that measures how your investments performed rather than how much cash you happened to pay in. In our two-broker example below, the naive "add the percentages" answer comes out at 55%, while the correct combined TWR is 25.6%.
You opened a stocks-and-shares ISA at one broker years ago, then opened a general investing account somewhere else because the fees were lower or the app was nicer. Maybe there is a third account holding a couple of US stocks. Each one shows you a return number on its home screen, and each one is confidently precise. The problem is that none of them knows about the others, and none of them agrees on what "return" even means.
So you do the obvious thing: you glance at the three figures and try to average them in your head, or you add them up, or you eyeball the total balance versus what you think you paid in. Every one of those shortcuts is wrong, and they are wrong in different directions depending on where your money sits and when you moved it. This article shows you the correct method — time-weighted return — step by step on real numbers, then shows you how to reproduce it in a spreadsheet, and only at the very end mentions the tool that does it automatically.
Why adding your brokers' percentages is wrong
There are two separate mistakes hiding inside "just combine the percentages", and it helps to name them individually because they compound.
Mistake one: percentages are not weighted by size. Suppose Broker A holds £40,000 and returns 10%, and Broker B holds £20,000 and returns 4%. Averaging those gives 7%. But A is twice the size of B, so its 10% carries twice the weight. The correct size-weighted blend is closer to 8%. Add the two percentages together — 14% — and you get a number that means nothing at all, because you cannot add a percentage of one pot to a percentage of a different-sized pot. A return is a ratio, and ratios only combine when you convert them back into pounds first.
Mistake two: deposits and withdrawals masquerade as performance. This is the bigger and more insidious error. The return figure most brokers show, and the one most people compute by hand, is simply (end value − start value) ÷ start value. That formula silently assumes you neither added nor removed money during the period. The moment you make a contribution, the formula counts your own cash as if the market handed it to you. Pay £10,000 into an account that grew from £40,000 to £60,000 and the naive formula reports a 50% gain — but £10,000 of that £20,000 increase was your deposit, not growth. Withdrawals do the reverse: take money out of a winning account and its naive return collapses, even though your investments never faltered.
Because you hold multiple brokers, you almost certainly move cash between them — funding the new account, sweeping dividends, topping up the ISA before the April deadline. Every one of those movements poisons the naive number. The fix is a method that quarantines your cash flows so they cannot contaminate the performance figure. That method is the time-weighted return.
| Method | What it does | Result |
|---|---|---|
| Add the two brokers' naive returns | 50% + 5% | 55% (meaningless) |
| Average the two brokers' naive returns | (50% + 5%) ÷ 2 | 27.5% (still wrong) |
| Naive whole-portfolio (ignores flows) | (£81k − £60k) ÷ £60k | 35.0% (inflated by net deposit) |
| Crude flow-adjusted | (£81k − £60k − £5k) ÷ £60k | 26.7% (close, but timing ignored) |
| Time-weighted return | Chain the sub-period returns | 25.6% (correct) |
Time-weighted return, worked by hand
Time-weighted return works by breaking the measurement period into sub-periods, cut at each moment money enters or leaves. Within each sub-period no external cash moves, so the percentage change is pure performance. You then link the sub-periods by multiplying their growth factors. Let us walk a full year with two brokers and one cash flow each.
The setup. On 1 January you hold £40,000 at Broker A and £20,000 at Broker B — £60,000 in total. On 1 July you pay £10,000 into Broker A and, separately, withdraw £5,000 from Broker B (perhaps to cover a tax bill). On 31 December, A is worth £60,000 and B is worth £21,000. To split the year we need each account's value on 1 July, immediately before the cash moved: A was worth £44,000 and B was worth £23,000. Those valuation points are the whole game — without them you cannot compute a clean TWR, which is why keeping a dated record of balances matters.
Step 1 — combine into one portfolio at each date. Add the brokers together at every point in time:
- 1 January (start): £40,000 + £20,000 = £60,000
- 1 July, just before the flows: £44,000 + £23,000 = £67,000
- 1 July, just after the flows (+£10,000 − £5,000 = net +£5,000): £54,000 + £18,000 = £72,000
- 31 December (end): £60,000 + £21,000 = £81,000
Step 2 — return for sub-period one (Jan–Jul). This runs from the start value to the value just before the cash flow, so no external money is involved:
r₁ = £67,000 ÷ £60,000 − 1 = 0.11667 = +11.67%
Step 3 — return for sub-period two (Jul–Dec). The clock restarts from the value after the flows, so the £5,000 net deposit is excluded from performance:
r₂ = £81,000 ÷ £72,000 − 1 = 0.125 = +12.50%
Step 4 — link the sub-periods. Convert each return to a growth factor (1 + r), multiply them, and subtract 1:
TWR = (1 + 0.11667) × (1 + 0.125) − 1 = 1.11667 × 1.125 − 1 = 1.25625 − 1 = 0.25625 = 25.6%
Your true, blended, flow-neutral return across both brokers for the year was 25.6%. Compare that with the wrong answers: adding the naive figures gave 55%, averaging gave 27.5%, and the naive whole-portfolio calculation gave 35% because it counted your net £5,000 deposit as profit. Even the crude flow-adjusted shortcut (subtract the net flow from the numerator) landed at 26.7% — close, but wrong, because it ignores when the money arrived. TWR is the only method that gets the timing right, and timing is exactly what separates a good year from a lucky deposit.
One clarification worth internalising: TWR deliberately ignores the size and timing of your contributions. That is the point — it isolates investment skill from savings behaviour, which is why fund managers are judged on it. If instead you want a number that does reward well-timed deposits — your personal money-weighted return — you want the internal rate of return (IRR). The two answer different questions, and confusing them is the most common mistake after adding percentages. We unpack exactly when to use each in our companion piece on TWR vs IRR.
If tracking July valuations by hand for two or three brokers sounds like a chore, it is — which is why StackViewer records a dated value for every account every day and chains the sub-periods for you. See it on the live demo portfolio →
The same calculation in a spreadsheet
You do not need software to do this every quarter — a spreadsheet handles it cleanly, and building it once teaches you what the number means. Set up one row per valuation date, in chronological order, with the combined portfolio value across all brokers in each row.
Lay out four columns. In column A put the date. In column B put the total portfolio value on that date, before any cash flow that day. In column C put the net cash flow on that date (positive for a deposit, negative for a withdrawal, zero for a plain valuation point). In column D, the sub-period growth factor, put this formula from the second data row (row 3, say) downward:
=B3 / (B2 + C2)
That divides each row's opening value by the previous row's value after its cash flow — exactly the sub-period growth factor from the manual method. Using our figures: the first data row is 1 January with B = 60,000, C = 0; the second is 1 July with B = 67,000, C = +5,000; the third is 31 December with B = 81,000, C = 0. Column D on the 1 July row returns 67000 / (60000 + 0) = 1.11667, and on the 31 December row returns 81000 / (67000 + 5000) = 1.125. Finally, in a summary cell, multiply the growth factors and subtract one:
=PRODUCT(D3:D4) - 1
That returns 0.25625, or 25.6% — identical to the hand calculation, and it will stay correct no matter how many dates or cash flows you add, as long as you record a valuation on every day money moves. If you would rather not build the sheet yourself, StackViewer takes the same inputs and does the chaining for you. The maths is the same; only the typing changes.
The one discipline this demands is the mid-period valuation. If you deposit into Broker A on 1 July, you must record what all your accounts were worth on 1 July, not just wait for the year-end statement. Miss that snapshot and you are back to guessing. This is the single reason a running record of balances beats reconstructing the year from statements in April.
What this doesn't tell you
Time-weighted return answers "how did my investments perform?" — it does not tell you how much money you made in your pocket, because it deliberately strips out the size and timing of your contributions. For the pounds-in-your-pocket figure you need money-weighted return (IRR), and the two can differ sharply in years when you added a lot near a market bottom or top. TWR also says nothing about risk: a 25.6% return earned through a stomach-churning drawdown is not the same as a smooth 25.6%, which is why Sharpe, Sortino and maximum drawdown exist alongside it. And note the practical limits of any tracker built on this method, including StackViewer: portfolio values sync a few times a day and refresh roughly every half hour — they are not real-time, so this is unsuitable for day traders who need live intraday marks. Read-only broker connections cover 31 brokers via SnapTrade, but some EU brokers are not yet supported, and custom or off-platform assets (physical gold, private equity, a friend's startup) will not appear and must be added manually if at all. Treat the number as a considered monthly-to-yearly review figure, not a live scoreboard.
Frequently asked
- Can I just add the percentage returns from each broker together?
- No. Adding percentages assumes every account holds the same amount of money and that neither of them received a deposit or withdrawal during the year, which is almost never true. If one broker holds £40,000 and another holds £20,000, a 10% gain on the larger account is worth twice as much in pounds as a 10% gain on the smaller one, so a simple sum or average overstates the account that moved most and ignores the size of each pot. Combine at the total-portfolio level using time-weighted return instead.
- Why does a deposit make my return look bigger than it really is?
- Because a naive (end value minus start value, divided by start value) calculation treats new cash you paid in as if it were investment profit. If you started with £40,000, added £10,000 mid-year, and ended at £60,000, the naive method reports a 50% gain even though £10,000 of that increase was your own money, not growth. Time-weighted return removes the effect of your deposits and withdrawals by breaking the year into sub-periods around each cash flow, so it measures how your investments performed rather than how much you paid in.
See your true blended return, without the spreadsheet
StackViewer connects your brokers read-only, records a dated value for every account, and chains the sub-periods into one honest time-weighted return across all of them.
See the live demo or start freeNo credit card · Read-only broker access · Free forever plan
This article is for information only. It is not financial, investment or tax advice, and nothing here is a recommendation to buy or sell any security. StackViewer analyses decisions you have already made; it does not predict returns. Past performance does not indicate future results.