calctube
📊 Σ CFᵢ ÷ (1+r)^(dᵢ/365) = 0 📉 Negative XIRR handled Example9.97%

XIRR Calculator. Every dated flow, one honest rate.

Quick answer

XIRR is the annual rate r that makes every dated cash flow, discounted by its own days from the first date, sum to zero: Σ CFᵢ ÷ (1 + r)(dᵢ ÷ 365) = 0. Invest ₹1,00,000 on 2024-01-01 and receive ₹1,10,000 on 2025-01-01 (366 days, a leap year) and the XIRR is 9.97%. Sign investments negative and redemptions positive. Unlike CAGR, XIRR handles many irregular flows like SIPs, top-ups and partial redemptions, and a negative XIRR simply means a loss.

📊

XIRR Calculator

Your cash flows
invested
invested
invested
invested
invested
received

Negative amount = money you put in (a purchase or SIP instalment). Positive amount = money you got back (a redemption, dividend, or today's value). You need at least one of each.

XIRR (annualised)
18.93%
per year, timing-weighted
Absolute return
30.00%
gain of ₹15,000 in total
Invested vs returned
₹50,000
in, ₹65,000 back over 2.00 yr

Your money grew at 18.93% per year, accounting for the timing of each investment. You committed ₹50,000 across 5 dated flows and received ₹65,000, an absolute gain of ₹15,000 (30.00%). Because the rupees you added earlier compounded for longer than the ones you added last, XIRR is the honest single rate that ties every dated flow together.

How the solver balances your flows at 18.93%
DateDays from startCash flowDiscounted value
2024-01-010-₹10,000-₹10,000
2024-04-0191-₹10,000-₹9,577
2024-07-01182-₹10,000-₹9,172
2024-10-01274-₹10,000-₹8,780
2025-01-01366-₹10,000-₹8,404
2026-01-01731₹65,000₹45,933
Sum of discounted values (target = ₹0)-₹0

XIRR is the one annual rate at which every flow, discounted by its own number of days from the first date, cancels out to zero. The final row shows the sum landing on (near) ₹0, which is what "solved" means. Each day count is the actual gap from your earliest date, so a leap year or an odd-length month is handled exactly, not rounded to whole months.

Why XIRR is not the same as CAGR or absolute return
Absolute return
30.00%
Ignores time entirely. ₹65,000 on ₹50,000.
Naive CAGR
14.00%
Treats all ₹50,000 as one lump on day one. Understates a staggered plan.
XIRR
18.93%
Weights every rupee by how long it actually stayed invested.

Absolute return is just total profit over total outlay with no clock at all. A naive CAGR pretends your whole ₹50,000 arrived on the first date, so for a SIP it typically reads too low, because most instalments were invested for far less than the full span. XIRR fixes both by discounting each dated flow on its own timeline. When there is exactly one investment and one redemption, XIRR and CAGR agree to the decimal.

✨ Live · Solved by bisection on the date-weighted NPV. A negative XIRR is a real loss rate, not a bug. Multiple sign changes can have several answers.
❓ FAQ

XIRR calculator FAQ.

What is XIRR and when should I use it?

XIRR (extended internal rate of return) is the single annualised rate that makes a stream of dated cash flows net to zero. Use it whenever money enters or leaves at irregular times or in irregular amounts: a monthly SIP, a lump-sum top-up mid-year, a partial redemption, a dividend you withdrew, or a portfolio you keep adding to. Because each instalment is discounted by the actual number of days it stayed invested, XIRR is the fair way to judge such plans. It is the number your mutual fund statement quotes as your personal return, and it can be positive or negative depending on how the investment did.

What is the difference between XIRR, CAGR and absolute return?

Absolute return is total profit over total outlay with no reference to time: a 30% gain reads the same whether it took one year or ten. CAGR fixes the time problem but assumes one amount goes in and one value comes out, so it cannot handle a SIP. XIRR generalises CAGR to many dated flows, weighting every rupee by how long it was actually invested. For a single investment and a single redemption, XIRR and CAGR give the identical figure. The moment you add a second contribution or take a partial withdrawal, only XIRR stays honest. Our CAGR calculator at /finance/cagr-calculator/ covers the single-in, single-out case.

How do mutual fund apps and Excel calculate XIRR?

They use exactly the formula on this page. Excel and Google Sheets expose it as =XIRR(values, dates, [guess]), where values holds the signed cash flows and dates holds their dates. Under the hood the function searches for the rate that drives the net present value of those dated flows to zero, the same root this calculator finds by bisection. Fund platforms such as Groww, Zerodha Coin, Kuvera and your CAS statement run the identical calculation on your transaction history, which is why the XIRR they show should match what you get here if you enter every purchase as a negative and the current value as a positive on the valuation date.

What counts as a good XIRR for equity versus debt?

It depends entirely on the asset class and the period, and past returns never guarantee future ones. Broad Indian equity funds have historically delivered roughly 11% to 13% XIRR over long multi-year holding periods, though any single window can be far higher or lower and start-date luck matters a great deal. Debt funds, fixed deposits and bonds typically sit closer to 6% to 8%, reflecting lower risk. A liquid or overnight fund might show 5% to 7%. Rather than chase a headline number, compare your XIRR against a relevant benchmark and against inflation, because a 12% nominal return with 6% inflation is only about 6% in real terms.

Why does the sign convention matter so much?

XIRR only has a solution when the cash flows change sign at least once, so the convention is not cosmetic, it is what makes the maths work. Enter money you put in as negative (a purchase or SIP instalment is cash leaving your pocket) and money you got back as positive (a redemption, a dividend, or the current market value on the valuation date). If you sign everything the same way, there is no rate that balances the flows and the calculator will tell you it cannot compute. A common mistake is forgetting to add the current value as a final positive flow, which leaves an all-negative list with no answer.