I've been investing in the Australian stock market for over 10 years. I've sat through the GFC, the Covid crash, and every "this time it's different" headline in between. And for most of that time, I had one question I couldn't properly answer: how have I actually performed?
Not how the ASX 200 performed. Not how one stock I own performed. Me. My money, my timing, my decisions.
The finance commentary you see online doesn't help much here. It's usually one of two things: a quarterly wrap-up of how the index did, or a deep dive into one company's results. Nobody seems to spend much time on the boring but important question — how does an everyday investor track their own performance, especially once you're not just parking a lump sum and walking away?
There's no shortage of jargon thrown around — CAGR, IRR, XIRR, TWR — and for a long time I genuinely wasn't sure which one actually mattered for someone like me. This article is my attempt to explain the one I've landed on, and why I think most retail investors should know it too.
This is purely educational — it's how I think about measuring performance, not advice on what to invest in.
Why standard returns lie to you
Here's a problem that trips a lot of people up.
The problem: an investor buys $10,000 of a stock. It drops 20%. Feeling nervous but seeing an opportunity, they buy another $50,000 at what turns out to be the bottom. The stock then rallies 15%.
Did they make money or lose money?
If you just look at "the stock is down 20% then up 15%", it looks like a loss. But that ignores the fact that most of their money went in after the drop, right before the rally. In dollar terms, they're almost certainly ahead. The stock's price movement and the investor's actual outcome are two different stories — and most simple return metrics only tell you the first one.
This is where CAGR falls apart. CAGR (Compound Annual Growth Rate) and simple percentage returns assume one thing: you put in a lump sum on day one, and you didn't touch it again. No extra deposits, no dollar-cost averaging, no withdrawals. The moment real life happens — you add a monthly contribution, top up after a dip, or pull some cash out — CAGR stops describing what actually happened to your money. It's still measuring the investment's performance, not yours.
This is exactly the gap XIRR is built to close.
What XIRR actually is
In plain terms, XIRR is your personal rate of return. It's a money-weighted return, meaning it accounts for when and how much cash you put in or took out — not just the price at the start and the price at the end.
Here's the simplest way I think about it:
If my portfolio were a savings account paying one fixed annual interest rate, what rate would that account need to pay to end up with exactly my balance today, given every deposit and withdrawal I actually made, on the actual dates I made them?
That's it. That's the whole idea. XIRR reverse-engineers the single interest rate that explains your real cash flow history.
The cash flow sign rule (the bit beginners trip up on)
XIRR treats every transaction as either money leaving your wallet or money coming back into it:
- Outflows (negative,
-) — money leaving your wallet and going into the market: purchases, deposits, brokerage fees. - Inflows (positive,
+) — money coming back to you: dividends paid out in cash, units sold, and — importantly — the terminal value, which is simply what your whole portfolio is worth today, treated as if you cashed it all out on that date.
That last point catches people out. You haven't actually sold anything, but XIRR needs a final number to solve for, so today's portfolio value is plugged in as a hypothetical inflow.
The maths, briefly
Underneath, XIRR is solving this equation for the rate that makes it true:
Where Cᵢ is each cash flow (negative for money out, positive for money in) and dᵢ is the date of that cash flow, measured in days from the first transaction.
You don't need to solve this by hand — software (FolioTrack included) uses an iterative method to find the rate that balances the equation. The formula is here so you know what's happening under the hood, not because you'll ever need to compute it yourself.
A worked example — based on the shape of my CMC - Race Car portfolio
To make this concrete, here's a simplified set of cash flows modelled on how my CMC - Race Car portfolio has actually behaved — an initial buy, a top-up, a dividend, and where things stand today. (The numbers are rounded for teaching purposes, not the exact ledger.)
| Date | Transaction | Cash flow ($) | Notes |
|---|---|---|---|
| 1 Jan 2025 | Initial buy | −10,000 | Outflow — capital deployed |
| 15 Jun 2025 | Top-up deposit | −2,500 | Outflow |
| 10 Nov 2025 | Cash dividend received | +150 | Inflow — retained as cash |
| 1 Jan 2026 | Portfolio value today | +14,550 | Terminal value — hypothetical cash-out |
Feed those four cash flows and dates into an XIRR solver, and it works out to roughly 19–20% p.a.
What that number is telling you: given exactly when you put money in and exactly what it's worth now, your money grew at an annualised rate of around 19–20% — not the return of the underlying stock, not a simple "final value divided by total invested" calculation, but the actual rate your specific dollars, on their specific dates, compounded at.
That's the number that reflects your decisions — including the decision to top up when you did.
Where XIRR gets weird — the edge cases
XIRR is powerful, but it has some quirks worth knowing before you trust it blindly.
Short time horizons blow up the annualisation. XIRR always annualises, even over tiny windows. A genuine 5% gain over 15 days, run through the same formula, comes out as an eye-watering ~220% annualised return. Mathematically correct, practically meaningless — you haven't actually made 220% of anything, the formula is just projecting a 15-day result out to a full year. Treat any XIRR calculated over a period under about 12 months with real caution.
Cash buffers and missing checkpoints cause convergence errors. XIRR is solved by an iterative method (commonly Newton-Raphson) hunting for the rate that balances the equation. If your data has gaps — unlinked cash sitting in the account, deposits that were never recorded, or long stretches with no price checkpoints — the solver can fail to converge, or return a wildly non-finite result. Clean transaction data isn't optional here; it's the whole input.
XIRR measures timing skill, not stock-picking skill. This is the big one. XIRR is money-weighted — it rewards or punishes you for when you added or removed cash, on top of how the underlying assets performed. That's exactly what you want for tracking your own wealth. But it's the wrong tool for judging a fund manager, because a manager doesn't control when investors add or withdraw money — someone with terrible timing (all in at the top, panic-selling at the bottom) can make a genuinely skilled manager's XIRR look bad, and vice versa. That's why funds report TWR (Time-Weighted Return) instead — it strips out the timing of cash flows and isolates pure investment performance. As a personal investor, you want XIRR because your timing decisions are part of the story you're trying to measure. FolioTrack shows you both, side by side, for exactly this reason.
Unpriced assets can wreck the calculation. If you hold something without a reliable price feed — pre-IPO shares, an illiquid private holding, a newly listed ticker with no data yet — and its price is silently treated as zero or missing, XIRR can read that as a −100% loss on that position. Always sense-check unpriced or thinly-traded holdings before trusting the headline number.
Takeaways
Use XIRR when you're:
- Tracking your own wealth growth over time, deposits and withdrawals included
- Evaluating how a regular contribution strategy (dollar-cost averaging) has actually worked out for you
- Comparing your personal return against a benchmark yield or savings rate
Don't lean on XIRR when you're:
- Judging a fund manager's skill (use TWR instead — it's built for that job)
- Looking at a portfolio less than about 12 months old (the annualisation math gets unstable)
- Working with assets that have missing or unreliable price data
The short version: if you want to know how well you've actually done — not the market, not one stock, but your own money, on your own timeline — track your portfolio properly and look at your XIRR. It's the closest thing to an honest answer.
— The FolioTrack Team