CAGR calculator (compound annual growth rate)

Find the CAGR from a start and end value, or the future or start value from a rate. Runs on your device.

How it works

  1. Choose to find the CAGR, a future value or a start value
  2. Type the values and the years, or two dates for the CAGR
  3. Read the answer, the formula and the value at the end of each year

The CAGR formula

CAGR is the steady yearly rate that would take a start value to an end value over a period: CAGR = (end ÷ start)^(1 ÷ years) − 1. If 10,000 grows to 25,000 over 8 years, the growth multiple is 2.5 and the CAGR is 2.5^(1 ÷ 8) − 1 = 12.14%. Doubling in 10 years is 7.18% a year. Years can have decimals: 10,000 to 12,000 over 2.5 years is 7.57%. Instead of years you can give a start date and an end date. The page counts the days and divides by 365, so 1 January 2018 to 1 January 2026 is 2,922 days, or 8.0055 years, and the CAGR is 12.13%.

Future value and required start value

The same formula can be turned round. Choose Future value to grow a start value at a yearly rate: end = start × (1 + rate)^years. At 7% for 10 years, 10,000 becomes 10,000 × 1.07^10 = 19,671.51. Choose Start value needed to work backwards: start = end ÷ (1 + rate)^years. To reach 50,000 in 5 years at 8% you need 50,000 ÷ 1.08^5 = 34,029.16 today. A negative rate works too, down to −99.99%: 10,000 at −10% for 3 years is 7,290.00. The rate is a yearly percentage, the years can go up to 100, and amounts can be typed with commas.

The year-by-year table

Under the answer a table lists the value at the end of each year, with the change in that year, assuming the steady rate. For 10,000 at 7% the first rows are 10,700.00 after year 1 and 11,449.00 after year 2, and the last row is the future value. If the years are not whole, a final row shows the fraction, such as 2.5, and ends at the end value. The table is the smooth path the CAGR describes, not the path the money took. The start value must be more than 0, because growth from nothing has no rate, and a start or end value is refused with a message under the box if it is not valid.

What CAGR hides

CAGR uses only the first and last values. A fund that fell by half and then doubled has the same CAGR as one that did not move, and the figure says nothing about risk. It also leaves out money added or withdrawn along the way, tax, fees and inflation. Results too large to show, such as a rate of 1,000% for 100 years on a large start value, give a short message instead of a number. The result is an estimate, not financial advice, and a past rate does not predict a future one. Nothing you type is stored or sent anywhere.

Frequently asked questions

How do I calculate CAGR?

CAGR = (end ÷ start)^(1 ÷ years) − 1. For 10,000 growing to 25,000 over 8 years that is 2.5^(1 ÷ 8) − 1 = 12.14%. Choose CAGR, type the two values and the years, and the page shows the sum with your numbers.

How do I calculate CAGR between two dates?

Choose Dates and enter a start and an end date. The page divides the days between them by 365 to get years. From 1 January 2018 to 1 January 2026 that is 2,922 days, or 8.0055 years, which gives 12.13% for 10,000 growing to 25,000.

How do I find a future value from a growth rate?

Choose Future value. The formula is start × (1 + rate)^years. At 7% for 10 years, 10,000 becomes 10,000 × 1.07^10 = 19,671.51, and the table shows the value after each year.

How much do I need to start with to reach a target?

Choose Start value needed and enter the target, the yearly rate and the years. The formula is end ÷ (1 + rate)^years. To reach 50,000 in 5 years at 8% you need 34,029.16 at the start.

Why can't the start value be 0 or negative?

CAGR divides the end value by the start value, and growth from zero or from a negative amount has no meaningful yearly rate. A start value of 0 or below shows the message Enter more than 0 under the box and no result.

Are my numbers stored or sent anywhere?

No. The numbers stay in this tab and are not stored on your device or sent anywhere. Reloading the page puts the example back. The page only counts that a result was shown, without any of your numbers.