TWR vs IRR vs CAGR — Which Performance Metric Tells the Truth?
TWR, IRR, and CAGR can show very different numbers for the same account. Here is what each measures, when to use it, and why TWR wins for managers.
- TWR measures the return on the assets a manager controlled, removing the effect of deposit and withdrawal timing.
- IRR is the discount rate that zeroes out the NPV of every cash flow — it is sensitive to when capital arrived.
- CAGR is just the annualization of a single start-to-end ratio; it ignores intra-period volatility and any flows.
- On the same account, the three numbers can differ by 10+ percentage points depending on flow patterns.
- GIPS, the global manager-performance standard, requires TWR. NakedPnL publishes TWR for the same reason.
Three metrics dominate published performance numbers: time-weighted return (TWR), internal rate of return (IRR), and compound annual growth rate (CAGR). They are routinely treated as interchangeable in marketing material — they are not. On the same trading account, they can produce three substantially different numbers, each of which is correct for a different question.
Confusing them is one of the easiest ways for a track record to be either accidentally misleading or deliberately inflated. This article works through the precise definition of each, walks a numeric example where the three diverge, and explains why NakedPnL publishes TWR specifically.
Definitions, with no hand-waving
Each metric answers a different question. Treat the question, not the formula, as the canonical definition — once you know which question is being asked, the formula falls out naturally.
Time-weighted return (TWR)
Question: how would $1 invested at the start of the period have grown if the manager had received no further deposits and made no withdrawals? TWR breaks the period at every external cash flow, computes a sub-period return that uses only the NAVs the manager actually controlled, and chain-links the sub-periods geometrically.
TWR = product over i of (1 + r_i) - 1
where r_i = (NAV_end_i - NAV_start_i) / NAV_start_i
and the start/end of each sub-period i are bounded by external flowsInternal rate of return (IRR)
Question: what single annualized discount rate makes the net present value of every cash flow into and out of this account equal zero? IRR is the rate r that solves the polynomial equation below for a given series of dated flows. It does not separate skill from timing — it deliberately bundles both, which is exactly what a single investor wants to know about their own outcome.
0 = sum over t of CF_t / (1 + r)^t
where CF_t are the dated cash flows (deposits negative, withdrawals positive,
final NAV positive) and t is in years from a chosen reference dateCompound annual growth rate (CAGR)
Question: at what constant annual rate would a single starting balance grow to a single ending balance over n years? CAGR ignores everything between the two endpoints — every flow, every drawdown, every winning month — and reports only the geometric annualization of the start-to-end ratio.
CAGR = (NAV_end / NAV_start)^(1/n) - 1
where n is the number of years between start and endA worked example where they diverge
Consider a trader who runs a $100,000 account for one calendar year. They have a brutal first half — the account drops to $50,000 by June 30. On July 1 they deposit another $400,000. The portfolio then rallies and ends the year at $540,000. The flows look like this:
| Date | External flow | NAV after flow |
|---|---|---|
| 2026-01-01 | +$100,000 | $100,000 |
| 2026-06-30 | — | $50,000 |
| 2026-07-01 | +$400,000 | $450,000 |
| 2026-12-31 | — | $540,000 |
Now compute each metric.
TWR
Sub-period 1 (Jan 1 -> Jun 30):
r_1 = (50000 - 100000) / 100000 = -0.50 (-50%)
Sub-period 2 (Jul 1 -> Dec 31):
r_2 = (540000 - 450000) / 450000 = 0.20 (+20%)
TWR = (1 - 0.50) * (1 + 0.20) - 1
= 0.50 * 1.20 - 1
= 0.60 - 1
= -0.40 => -40%IRR
IRR solves for r in the equation -100000 - 400000/(1+r)^0.5 + 540000/(1+r)^1 = 0. Numerically, r ≈ 0.083, or about +8.3% annualized. That positive number reflects the fact that 80% of the trader's capital arrived after the loss, so on a dollar-weighted basis the account ended up modestly above water.
CAGR
CAGR ignores the mid-year flow entirely. Naively comparing the $100,000 starting NAV to the $540,000 ending NAV over one year produces (540000/100000)^(1/1) − 1 = 4.40, or +440%. That number is unambiguously wrong: most of the ending balance was contributed capital, not investment growth.
Side-by-side comparison
| Criterion | TWR | IRR | CAGR (naive) |
|---|---|---|---|
| Reported number on example | −40% | +8.3% | +440% |
| What it measures | Manager skill on assets controlled | Investor's blended dollar-weighted outcome | Endpoint-only ratio annualized |
| Removes effect of cash-flow timing? | Yes | No (incorporates timing) | No (ignores flows) |
| Required by GIPS for fund reporting? | Yes | Only for closed-end private vehicles | No |
| Sensitive to intra-period drawdowns? | Yes | Indirectly via flow timing | No |
| Useful for comparing two managers? | Yes | No (depends on each investor's flows) | No (ignores flows) |
| Useful for one investor's personal outcome? | Imperfect | Yes | No |
| Can be inflated by clever deposit timing? | No | Yes | Yes |
When each metric is the right one
There is no universally best metric. There is only the right metric for the question.
- Use TWR when comparing managers, evaluating whether to track a public trader, or publishing a track record where capital additions are uncontrolled.
- Use IRR when an investor wants to know what their personal outcome was, given the specific dates they put money in and pulled it out.
- Use CAGR only when reporting the smoothed annualized growth of a series with no cash flows — for example, a static index level.
Why GIPS chose TWR
The Global Investment Performance Standards have required TWR as the primary reporting metric for composite performance since their inception. The CFA Institute's reasoning is published explicitly: comparability between managers requires controlling for variables the manager did not choose, and cash-flow timing is the most consequential of those variables.
“Time-weighted returns must be used to remove the effects of external cash flows, which are generally client-driven. By removing the effects of external cash flows, time-weighted returns reflect the firm's investment management decisions.”
GIPS does permit money-weighted return (a generalization of IRR) for closed-end private vehicles where the manager controls the timing of capital calls. Open-ended public-facing track records, including the kind NakedPnL publishes, do not qualify for that exception.
Common pitfalls when reporting any of these metrics
Even with the right metric chosen, a few recurring errors corrupt published numbers. Watch for these in any track record you encounter.
- Annualization from sub-annual windows. A 6-month return of 25% does not annualize to 50%; annualizing a noisy short-window return inflates apparent performance and widens the confidence interval invisibly.
- Mixing TWR for the manager and CAGR for the headline. Reporting a 'CAGR of 40%' that was secretly computed by chain-linking sub-period TWRs is technically TWR-annualized — labelling it CAGR is misleading.
- Cherry-picked start dates. Even an honest TWR can be made to look stunning by choosing a start date right before a strong rally. The published track record should always begin at first verified day, not at a marketing-favourable date.
- Geometric vs arithmetic average confusion. Reporting 'average monthly return of 5%' as if it were the same as TWR over the year is a classic error — arithmetic averages exceed geometric ones by roughly variance/2 of the underlying returns.
How a track record gets distorted by the wrong metric
The most common social-media trader brag is some variant of 'turned $X into $Y'. That number is a degenerate case of CAGR, with all the problems discussed above plus the well-documented bias of selectively choosing the start date and only counting the winning account. Even a sincere variant — 'I made 30% this year' — usually means raw account growth divided by starting balance, which is a CAGR-style metric that breaks under any cash flow.
When a trader actually had a 12% TWR but reports a 40% raw growth number because they doubled their deposits mid-year and benefited from a single lucky timing call, that is not skill being shown — it is timing being laundered as skill. TWR is the metric that prevents that laundering.
Why NakedPnL publishes TWR
NakedPnL is a public registry of verified performance. Anyone reading a trader's profile is implicitly comparing them to other traders. That comparison is only meaningful if the underlying number is independent of how each trader's deposits and withdrawals happened to land — which is exactly the property TWR provides and IRR and CAGR do not.
The full TWR computation, with sub-period boundaries set at every detected external flow, is published per-trader on /verify/chain/[handle]. The methodology and code references are at /docs/verification, and any third party can recompute the published number from the raw exchange responses preserved in the hash-chained NavSnapshot table.