Menu

CAGR Formula in Excel: Compound Annual Growth Rate

=(B2/A2)^(1/C2)-1 gives the compound annual growth rate from a start value in A2 to an end value in B2 over C2 years. =RRI(C2,A2,B2) returns the same rate. Format the cell as a percentage.

Every sheet on this page is live: change a number or a formula and it recalculates.

=(B2/A2)^(1/C2)-1 returns the compound annual growth rate (CAGR) from the start value in A2 to the end value in B2 over C2 years. It is the one steady yearly rate that would turn the start value into the end value. =RRI(C2,A2,B2) gives the same result.

Revenue growth over 4 years
D2
ABCDE
1StartEndYearsCAGRRRI
2$50,000$80,000412.47%12.47%
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

Revenue grew from 50,000 to 80,000 in 4 years, a CAGR of 12.47%. Format the result as a percentage (Home > Percent Style, or Ctrl+Shift+%, Control+Shift+% on a Mac), or it shows as a decimal such as 0.1247. Change C2 to 2 and the same growth in half the time is 26.49% a year.

The CAGR formula, step by step

CAGR = (end / start) ^ (1 / years) - 1
  1. end/start is the total growth factor: 80,000 / 50,000 = 1.6, so revenue is 1.6 times what it was.
  2. ^(1/years) takes the 4th root of that factor, the yearly factor that multiplied by itself 4 times gives 1.6. Raising to the power 1/4 is the 4th root.
  3. -1 turns the factor into a rate: 1.1247 becomes 12.47%.

The parentheses matter. =B2/A2^(1/C2)-1 raises only A2 to the power, because ^ is calculated before /, and gives a meaningless result.

RRI (Excel 2013 and later, and Google Sheets) takes the same three numbers in a different order: =RRI(nper, pv, fv), that is years, start, end.

CAGR from a table of yearly values

With one row per year, take the first and last value and count the periods from the years themselves. Six rows from 2021 to 2026 are 5 periods of growth, and a common mistake is to use 6.

CAGR vs the average of yearly growth
F2
ABCDEF
1YearUsersGrowthMeasureRate
2202112,000CAGR16.72%
3202218,00050.0%Average growth18.86%
4202315,300-15.0%
5202419,90030.1%
6202524,50023.1%
7202626,0006.1%
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

The users grew at a CAGR of 16.72%, but the average of the five yearly growth rates is 18.86%. The average is pulled up by the 50% jump in 2022 and does not fully count the fall in 2023. The CAGR is the honest single number: =B2*(1+F2)^5 lands exactly on 26,000. Change B3 to 8000: the average drops sharply, while the CAGR does not move at all, because it depends only on the first and last value. For one year's change on its own, see percent change.

Project a future value with CAGR

Turned around, a growth rate tells you where a value will be: =start*(1+rate)^years. Here 10,000 grows at 8% a year:

Where 8% a year leads
B3
ABCD
1YearValueRate
20$10,0008%
31$10,800
42$11,664
53$12,597
64$13,605
75$14,693
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

After 5 years at 8%, 10,000 becomes 14,693. Put that end value back into the CAGR formula with 5 years and you get 8% again. The same compounding drives savings plans and loans on the PMT page.

CAGR between two dates

When the period is not a whole number of years, use the exact length in years as the exponent. YEARFRAC(start,end,1) returns it from two dates; the 1 counts actual days, while the default counts 30-day months.

CAGR from an investment's dates
F2
ABCDEF
1BoughtSoldPaidSold forYearsCAGR
22022-03-152026-09-30$8,000$11,5004.558.31%
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

From March 2022 to September 2026 is about 4.55 years, a CAGR of 8.31%. With money going in and out along the way (monthly deposits, partial sales), CAGR no longer applies: use XIRR from the NPV and IRR page.

Try it: growth of a city's population

Population 2016 to 2026
D2
ABCD
1YearsPop 2016Pop 2026CAGR
210412,000538,000
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

Your turn: In D2, calculate the compound annual growth rate from the population in B2 to the population in C2, over the number of years in A2.

Hint: (end/start)^(1/years)-1. Keep the parentheses around the division and around the exponent.

CAGR vs average growth vs IRR

You haveUseFormula
A start value, an end value and a number of yearsCAGR=(end/start)^(1/years)-1 or =RRI(years,start,end)
The change from one year to the nextPercent change=new/old-1
A list of yearly rates you want to summariseGeometric mean=GEOMEAN(1+C3:C7)-1, which equals the CAGR
Cash going in and out over timeIRR or XIRR=IRR(values), =XIRR(values,dates)

Avoid reporting the plain AVERAGE of yearly growth rates as "average annual growth" for anything that compounds, such as revenue, prices or investments. After +50% and then -50% the average is 0%, but the value has fallen to 75% of where it started.

Frequently Asked Questions

What is the CAGR formula in Excel?

=(end/start)^(1/years)-1, for example =(B2/A2)^(1/C2)-1. Format the result as a percentage. =RRI(C2,A2,B2) gives the same result in Excel 2013 and later.

How many years do I use for CAGR?

The number of periods between the first and last value, not the number of values. From 2021 to 2026 is 5 years, even though the table has 6 rows.

What is the difference between CAGR and average annual growth?

Average growth is the plain average of each year's percent change. CAGR is the single steady rate that turns the start value into the end value. After a fall and a recovery the average overstates growth: +50% then -50% averages 0% but leaves you at 75% of the start, a CAGR of about -13.4%.

How do I calculate CAGR between two dates in Excel?

Use the exact length in years as the exponent: =(B2/A2)^(1/YEARFRAC(C2,D2,1))-1, where C2 and D2 are the start and end dates. The 1 counts actual days.

Can you calculate CAGR with a negative number?

Not meaningfully. A start value of 0 gives #DIV/0!, and when the start and end have different signs the formula returns #NUM! or a number that means nothing. Report the change in absolute terms instead.

Coddy programming languages illustration

Learn to code with Coddy

GET STARTED