# ROI and CAGR calculator

> Calculate ROI (total return) and CAGR (compound annual growth rate) from an investment's start and end values, over years or between two dates.

Interactive version: https://www.calcopenly.com/finance/roi-cagr-calculator
Subject: Finance calculators

ROI is the total gain as a share of the amount invested: (final value + income − amount invested) ÷ amount invested. CAGR turns that into a steady yearly rate, (ending value ÷ amount invested)^(1/years) − 1: the rate that, compounded every year, would reach the same end value. Between two dates, the holding period is the actual number of days divided by 365.25, or by 365 as Excel's XIRR does.

With the defaults, 10,000 growing to 16,500 in 5 years is a 65% total return and a CAGR of 10.53% a year. Dividing 65% by 5 years gives 13%, which overstates the yearly rate because it ignores compounding.

Both figures treat the investment as one payment in and one value out. If you added or withdrew money along the way, use the XIRR calculator, which weights each cash flow by its date.

## Inputs

- **Amount invested**
- **Final value**
- **Income received along the way**: Dividends, interest or rent you took out. It is added to the final value.
- **Holding period from** (options: Years, Dates)
- **Years held**
- **Bought on**
- **Valued on**
- **Days per year** (options: 365.25 (average year), 365 (as Excel XIRR))

## Results

- CAGR (annualized return) — main result
- Total return (ROI)
- Gain
- Growth multiple (×)
- Holding period (years)

## Formula

$$
ROI = \frac{V_{end} + I - V_0}{V_0},\qquad CAGR = \left(\frac{V_{end} + I}{V_0}\right)^{1/t} - 1
$$

## Worked examples

### 10,000 to 16,500 in 5 years

- Amount invested: 10,000
- Final value: 16,500
- Income received along the way: 0
- Holding period from: Years
- Years held: 5 years
- **Total return (ROI): 65%**
- **CAGR (annualized return): 10.53423%**
- **Gain: 6,500.00**
- Checked against: Python decimal: 1.65^(1/5) − 1 = 10.5342296%

### Doubling between two dates

- Amount invested: 10,000
- Final value: 20,000
- Income received along the way: 0
- Holding period from: Dates
- Bought on: 2020-01-01
- Valued on: 2025-01-01
- Days per year: 365.25 (average year)
- **Holding period: 5.002053 years**
- **CAGR (annualized return): 14.863299%**
- **Total return (ROI): 100%**
- Checked against: Python datetime: 1,827 days / 365.25 = 5.0020534 years; 2^(1/5.0020534) − 1 = 14.8632986%

### Exactly one year, 365-day basis

- Amount invested: 100
- Final value: 110
- Income received along the way: 0
- Holding period from: Dates
- Bought on: 2023-01-01
- Valued on: 2024-01-01
- Days per year: 365 (as Excel XIRR)
- **Holding period: 1 year**
- **CAGR (annualized return): 10%**
- **Total return (ROI): 10%**
- Checked against: 365 days / 365 = 1 year, so CAGR equals ROI (definition)

### Income taken out counts toward the return

- Amount invested: 1000
- Final value: 1100
- Income received along the way: 50
- Holding period from: Years
- Years held: 2 years
- **Total return (ROI): 15%**
- **CAGR (annualized return): 7.238053%**
- Checked against: Python decimal: √1.15 − 1 = 7.2380529%

### Microsoft RRI example

- Amount invested: 10,000
- Final value: 11,000
- Income received along the way: 0
- Holding period from: Years
- Years held: 96 years
- **CAGR (annualized return): 0.099331%**
- Checked against: Microsoft RRI documentation: RRI(96, 10000, 11000) = 0.0009933; Python decimal 0.0993307376%

### Total loss

- Amount invested: 1000
- Final value: 0
- Income received along the way: 0
- Holding period from: Years
- Years held: 3 years
- **CAGR (annualized return): -100%**
- **Total return (ROI): -100%**
- **Growth multiple: 0.0000 ×**
- Checked against: 0^(1/3) − 1 = −1 (definition)

## Questions

### How do you calculate ROI?

Divide the gain by the amount invested and multiply by 100: ROI = (final value + income − cost) ÷ cost × 100. An investment of 10,000 now worth 16,500 has an ROI of 6,500 ÷ 10,000 = 65%. Income you took out counts too: 1,000 that grew to 1,100 and paid 50 of dividends returned 15%.

### How do you calculate CAGR?

Divide the ending value by the starting value, raise the result to the power 1 ÷ years, and subtract 1. For 10,000 growing to 16,500 in 5 years, 1.65^(1/5) − 1 = 10.53% a year. In Excel, =RRI(5, 10000, 16500) returns the same rate.

### What is the difference between ROI and CAGR?

ROI measures the whole gain and ignores time; CAGR spreads it over the years as a compound rate. A 65% ROI is a CAGR of 10.53% if it took 5 years but only 5.14% if it took 10 years. Use CAGR to compare investments held for different lengths of time.

### Is CAGR the same as the average annual return?

No. The average of yearly returns ignores compounding, so it overstates the growth whenever returns vary. An investment that gains 50% one year and loses 50% the next has an average return of 0%, but it ends at 75% of its starting value, a CAGR of −13.40% a year.

### Should I use CAGR for a holding period under a year?

With care, because CAGR assumes the same return would repeat for a full year. A 5% gain in 3 months annualizes to 1.05^4 − 1 = 21.55% a year, which says little about what the next nine months will bring. For short holdings the total return is the plainer figure.

### How accurate is the ROI and CAGR calculator?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 6 worked examples whose answers come from independent sources; for example, “10,000 to 16,500 in 5 years” is checked against Python decimal: 1.65^(1/5) − 1 = 10.5342296%.

### Where does the method come from?

Microsoft Excel RRI function (equivalent interest rate for growth); CFA Institute — Quantitative Methods: The Time Value of Money (annualized returns).

## Sources

- [Microsoft Excel RRI function (equivalent interest rate for growth)](https://support.microsoft.com/office/rri-function-6f5822d8-7ef1-4233-944c-79e8172930f4)
- CFA Institute — Quantitative Methods: The Time Value of Money (annualized returns)

_Note: financial information, not professional advice._
