Two lenses on the same portfolio — what you earned, and how good your strategy is.
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
| Date | Event | Amount |
|---|---|---|
| Jan 2023 | Deposit | −£10,000 |
| Jul 2023 | Deposit | −£5,000 |
| Dec 2023 | Portfolio 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.
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…
Use TWR when asking…
Omnicogi plots your portfolio return alongside benchmark indices over the same period, for example:
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.
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:
Adding a reconciled snapshot (see the Snapshots guide) is the fastest way to move from Unreliable to Reliable.