Home Docs XIRR & TWR

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 17.8% annualised.

Time-Weighted Return (TWR)

TWR strips out the effect of your deposit and withdrawal timing. It chains sub-period returns together (each period ending 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.

Comparing a personal XIRR directly to an unadjusted index percentage return is technically invalid because static indices aren't affected by cash flow timing. Omnicogi solves this with the Do Nothing Test: we run a parallel synthetic ledger investing your exact deposit amounts on the exact same dates into the index, enabling a mathematically valid money-weighted benchmark gap. For strategy-only comparisons without deposit timing, TWR is used.

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.