XIRR Calculator
Get the true annualised return across investments and withdrawals made on any dates — the same calculation Excel's XIRR function performs, for SIPs, top-ups, or any irregular cash flow history.
Enter every investment (negative amount) and every return or current value (positive amount), with the date each happened. Needs at least one of each.
| Date | Amount (₹) |
|---|
Why XIRR, not CAGR
Real investing isn't two clean points
SIPs, top-ups, partial withdrawals — XIRR accounts for the exact date and size of every single cash flow, not just a start and end value.
No algebraic shortcut exists
XIRR is the rate that makes the present value of all your cash flows net to zero — that equation can't be solved directly, so this tool iterates toward the answer the same way Excel's XIRR function does.
Enter your current value as the last "return"
If you haven't sold yet, add one more row: today's date, and the current value of your investment, as a positive amount. This lets XIRR measure your return as of today.
What is XIRR?
XIRR (Extended Internal Rate of Return) is the annualised rate of return for a series of cash flows that happen on irregular, specific dates — exactly the pattern most real investors actually have, with SIPs, top-ups, partial withdrawals, and lumpsum additions scattered across different dates rather than one clean start and end point.
It's the same calculation Excel's built-in XIRR() function performs, and for good reason: it's the most accurate way to answer "what annual rate of return did I actually earn across all of this?" when your investment history isn't a single tidy lumpsum.
Why ordinary returns fall apart with multiple cash flows
CAGR and simple absolute return both assume one investment made on one date, held until one exit date. The moment you add a second contribution — another SIP instalment, a top-up, a partial withdrawal — those formulas no longer have a well-defined answer, because they have no way to account for money that arrived or left partway through the holding period.
Invest ₹50,000 today and it becomes ₹55,000 in a year: that's a clean 10% return, fine for CAGR. Now invest ₹50,000 today, add another ₹50,000 six months later, and the total becomes ₹1,10,000 a year after the first contribution. CAGR has no defined way to handle the mid-year addition. XIRR does — it discounts each cash flow back by the exact number of days it was actually invested.
How XIRR is actually solved
XIRR is defined as the rate r that makes the net present value of every cash flow, discounted back to the date of the first cash flow, equal to exactly zero:
∑ CFi ÷ (1+r)(daysi/365) = 0
Unlike CAGR, this equation has no algebraic solution — there's no rearrangement of terms that isolates r directly. Instead, this calculator (like Excel's XIRR function) uses an iterative numerical method called Newton-Raphson: it starts with a guess (10%), checks how far off that guess is from making the equation balance to zero, and repeatedly refines the guess using the equation's slope until the result stabilises to within a tiny tolerance, typically in under 20 iterations.
A worked example, step by step
Suppose you invest ₹50,000 on 1 Jan 2021, another ₹50,000 on 1 Jan 2022, a third ₹50,000 on 1 Jan 2023, and the whole position is worth ₹2,00,000 on 1 Jan 2024.
| Date | Cash flow |
|---|---|
| 1 Jan 2021 | −₹50,000 |
| 1 Jan 2022 | −₹50,000 |
| 1 Jan 2023 | −₹50,000 |
| 1 Jan 2024 | +₹2,00,000 |
| XIRR | 15.09% per year (approx.) |
Notice this isn't simply "₹50,000 became ₹66,667 on average" — XIRR correctly recognises that the first ₹50,000 had three full years to grow, the second had two, and the third had only one, weighting each contribution's return by the time it actually had to compound.
XIRR vs CAGR vs absolute return
| Metric | Best suited for |
|---|---|
| Absolute return | Quick "did I make money" check on a single transaction |
| CAGR | Single lumpsum, single entry and exit date |
| XIRR | SIPs, top-ups, partial withdrawals — any irregular cash flow history |
If your investment history is genuinely a single lumpsum in and a single value out, CAGR and XIRR will actually return the same number — XIRR is a strict generalisation of CAGR, not a competing alternative. Use the CAGR Calculator directly when you only have two points; reach for XIRR the moment a third cash flow enters the picture.
The sign convention: the part everyone gets wrong
XIRR requires every outflow (money leaving your pocket: investments, purchases) to be entered as negative, and every inflow (money returning to you: redemptions, dividends, or your current holding's present value if you haven't sold yet) to be entered as positive. Getting this backward is the single most common reason an XIRR calculation returns a nonsensical or wildly wrong result.
If you haven't sold yet, add one final row: today's date, and the current market value of your holding, entered as a positive number. This lets XIRR treat your unrealised position as if you "exited" today, giving you an accurate as-of-today annualised return.
What XIRR doesn't tell you
- It needs at least one inflow and one outflow. A list of only negative (or only positive) cash flows has no valid XIRR — there's no rate that can make that equation balance to zero.
- Multiple sign changes can theoretically produce more than one mathematically valid answer. This is rare for typical SIP-and-redemption patterns but can occur with complex, frequently alternating cash flow histories.
- It doesn't separately show you which contributions performed well. XIRR gives one blended annualised rate across the whole history, not a breakdown by individual contribution.
How to use this calculator
- Add a row for every investment you made, with its exact date, entered as a negative amount.
- Add a row for every withdrawal or redemption, entered as a positive amount.
- If you still hold the investment, add a final row with today's date and its current value, as positive.
- Read the XIRR — your true annualised return across the entire, irregular history.
- For a single lumpsum with no other cash flows, the simpler CAGR Calculator will give you the identical answer with less data entry.
Frequently asked questions
XIRR's entire purpose is to account for exactly how long each individual cash flow was invested. Two identical sets of amounts with different dates between them will produce different XIRR values, because the time each rupee had to compound is different. Without dates, there's no calculation XIRR can perform — you'd just have a simple sum.
The calculation will fail or return a meaningless result, since XIRR mathematically requires at least one negative (outflow) and one positive (inflow) value to have a solution. If your result shows as unavailable, the most common cause is a sign error — double check that every investment you made is entered as negative.
It should, for the same underlying transactions, since most Indian broker and mutual fund platforms calculate portfolio XIRR using the identical method (Newton-Raphson on the same discounted cash flow equation) that Excel's XIRR function and this calculator both use. Small differences can arise from which transactions are included (e.g., whether dividends are reinvested or paid out) or rounding.
Yes. If the total value of your inflows is less than what you invested, accounting for time, XIRR will correctly return a negative annualised return, the same way CAGR can be negative for a lumpsum that lost value.
Not necessarily. A fund's published CAGR or point-to-point return describes the fund's own NAV performance, assuming a single lumpsum investment held for the full period. Your personal XIRR reflects your own specific transaction history — if you invested via SIP or made several purchases at different times, your XIRR will differ from the fund's headline return, even though you're invested in the exact same scheme.
This is rare but can happen with unusual cash flow patterns — for example, all cash flows happening on the same date, or extreme amounts that push the iterative solver outside a stable range. Double-check your dates and amounts are realistic; if the issue persists, try removing any clearly erroneous entries and recalculating.