CAGR vs XIRR

Both give a yearly return, but they answer different questions. CAGR is for one investment; XIRR is for many dated investments.

In short
  • CAGR: the steady yearly rate that turns a starting value into an ending value.
  • XIRR: the yearly rate that fits a series of investments made on different dates.
  • For SIPs and real portfolios, XIRR is the honest number.

CAGR

Compound annual growth rate = (ending value ÷ starting value) ^ (1 ÷ years) − 1. If ₹1 lakh grows to ₹2 lakh in 5 years, CAGR = 2^(1/5) − 1 = about 14.9% a year. It assumes one investment at the start and smooths out the ups and downs along the way.

XIRR

Extended internal rate of return finds the single yearly rate that makes all your cash flows, each on its own date, add up to today's value. It is what you need when money goes in at different times, as in a SIP, or when you add and withdraw.

Example: with a ₹10,000 monthly SIP for 3 years, ₹3.6 lakh goes in. If it is worth ₹4.4 lakh at the end, the gain is 22%, but the money was invested for only about 1.5 years on average, so the XIRR is around 13% a year, not 7%.

Which one to use

  • One lump sum, one start and end date: CAGR.
  • SIPs, top-ups, partial sales, a whole portfolio: XIRR.
  • Comparing with an index: use the same method and the same dates for both. The Portfolio Tracker shows a Nifty 500 XIRR on your exact buy dates.

Common mistakes

  • Dividing the total gain by the number of years. That ignores compounding and the timing of SIP instalments.
  • Calling a SIP's absolute return its yearly return.
  • Comparing a fund's CAGR with your own XIRR on different dates.

Common questions

Is XIRR better than CAGR?

Neither is better; they answer different questions. CAGR suits a single investment held for a period. XIRR suits several investments made on different dates, such as a SIP.

Why is my SIP XIRR higher than its absolute return divided by years?

Because SIP instalments were invested for less time on average. XIRR accounts for when each rupee went in.

Can XIRR be negative?

Yes. If the current value is less than what you put in, XIRR is negative.