Home Docs XIRR & TWR
Methodology

XIRR & TWR: your real returns explained

Two lenses on the same portfolio — what you earned, and how good your strategy is.

Money-Weighted Return (XIRR)

XIRR (Extended Internal Rate of Return) is your annualised return accounting for when you invested. It uses the algorithm XIRR() — Newton-Raphson iteration on your actual cash flows — to find the single discount rate that makes the net present value of all flows equal to zero.

In plain terms: if you deposited £10,000 at a market peak and £10,000 at a trough, XIRR reflects the timing of both. Your return is a function of your money and your timing.

Worked example

DateEventAmount
Jan 2023Deposit−£10,000
Jul 2023Deposit−£5,000
Dec 2023Portfolio value+£17,200

XIRR solves for the rate r such that: −10,000 / (1+r)^0 − 5,000 / (1+r)^0.5 + 17,200 / (1+r)^1 = 0. Result: approximately 19.2% annualised.

Time-Weighted Return (TWR)

TWR strips out the effect of your deposit and withdrawal timing. It chains sub-period returns together — each period ends when a cash flow occurs — and compounds them. The result answers: "How well did the strategy perform, regardless of when I put money in?"

TWR is the standard metric fund managers report. It lets you compare your strategy's performance against a benchmark index on equal terms.

Use XIRR when asking…

  • "What did I actually earn?"
  • "Did I make money overall?"
  • "What's my actual return on the cash I invested?"

Use TWR when asking…

  • "Is my strategy beating the index?"
  • "How good a stock picker am I?"
  • "Should I just buy an index fund instead?"

Gap charts & benchmarks

Omnicogi plots your portfolio return alongside benchmark indices over the same period, for example:

  • FTSE 100 — large-cap UK equities
  • S&P 500 — large-cap US equities (in GBP)
  • MSCI World — global developed-market equities

The "gap" is the difference between your return and the benchmark. A positive gap means you outperformed. A negative gap means an index fund would have done better — useful information for deciding whether active stock picking is worth the effort.

Benchmark comparisons use TWR (not XIRR), because indices aren't affected by cash flow timing. Comparing XIRR to an index total return figure is technically incorrect — always compare like for like.

When metrics show as unreliable

XIRR and TWR require complete transaction data. If your ledger is missing a deposit, a dividend, or a corporate action, the calculation is based on incomplete inputs. Omnicogi surfaces this with a reliability badge on each metric:

  • Reliable — at least one reconciled snapshot and no known data gaps.
  • Caveated — minor gaps (e.g. a single unresolved ticker) that may affect the result slightly.
  • Unreliable — significant missing data (no snapshot, large unmatched cash flows).

Adding a reconciled snapshot (see the Snapshots guide) is the fastest way to move from Unreliable to Reliable.