Time-Weighted Return (TWR) for Trading Accounts, Explained With Real Numbers
Updated 13-07-2026 · 6 min read · by the TradeStats team
Take an account that starts at $1,000, doubles to $2,000, receives a $10,000 deposit, then loses 10%. Balance: $10,800. Naive math says +880% on the first grand, or −10% if you anchor on the deposit. Which is the trader's skill? Neither. The honest answer — time-weighted return — says +80%: doubled once (+100%), then lost 10%, chained: 2.0 × 0.9 = 1.8.
The algorithm in four lines
- Rebuild the balance timeline from every deal.
- Cut it into sub-periods at every external flow (deposit or withdrawal).
- Compute each sub-period's return on its own starting balance.
- Multiply the growth factors; subtract 1. That's the gain.
Deposits can never masquerade as profit because they land exactly on a cut: the next sub-period starts from the post-deposit balance and is judged only on what trading does from there.
The subtleties implementations get wrong
- What counts as a flow? Only genuine external money — deposits and withdrawals. Copy-trading performance fees, broker credits and dividend adjustments are results of the strategy, not funding; count them as flows and you launder costs out of the track record. (TradeStats also computes a before-fees variant where copy fees are treated as flows — useful for judging the raw strategy vs what a fee-paying follower receives.)
- Same-moment ordering.When P&L and a withdrawal share a timestamp, settle the P&L first — otherwise the withdrawal dilutes the sub-period's base and skews the return.
- Zero or negative bases. An account trading on credit after a full withdrawal has no meaningful return base for that stretch; honest implementations skip the period and disclose it instead of dividing by zero.
- Reconstruction drift. If the rebuilt end balance doesn't match the broker's live balance (incomplete history), the gain deserves an "approximately" marker — silently presenting it as exact is how track records rot.
Drawdown comes free
The same chained index yields the TWR max drawdown: the worst percentage fall from any peak of the growth curve — the number to read next to any gain, and the denominator of the MAR ratio (gain ÷ drawdown) that separates edge from luck-so-far. It's central to verifying anyone's results, including your own.
Where to see yours
Connect an account to TradeStatswith a read-only investor password and the gain block computes all of it from raw deals: chained TWR, monthly gains that multiply back to the total, max drawdown, gross-vs-net of copy fees, and the ≈ marker when history doesn't fully reconstruct. The same numbers power the public profile page — so when someone asks for proof, you send a link, not a screenshot.
FAQ
Why not just divide profit by what I deposited?
Because timing distorts it. Profit ÷ total deposits punishes you for adding funds after gains and rewards adding funds before them. TWR removes deposit timing from the number entirely.
Is TWR the same as Myfxbook's 'Gain'?
Same family. The 'gain %' on Myfxbook-style trackers is a time-weighted figure: the timeline splits at every deposit/withdrawal and sub-period returns are chained.
Can TWR be negative while my balance grew?
Yes — deposit $10,000 into an account that then loses 5% and your balance is far above where it started, but TWR honestly reads -5%. That's the point: it measures trading skill, not funding.