CAGR is the constant annual growth rate that connects a starting value to an ending value. The arithmetic average of annual returns answers a different question: what was the mean of the individual yearly percentages? When returns vary, those two numbers usually differ because gains and losses compound.
Consider a value that rises from 100 to 110 in one year, then falls to 99 in the next. The annual returns are +10% and −10%. Their arithmetic average is 0%, but the ending value is 1% below the start. The compound annual growth rate is about −0.5013%.
That small example explains why a return calculation can look reasonable in a spreadsheet and still fail to reproduce the actual ending value.
Throughout this guide, average annual return means the arithmetic mean of annual observations. Read a report's definition before applying that meaning elsewhere. For example, the SEC's Form N-1A uses "average annual total return" for a compounded calculation. The label alone does not establish the method.
All numbers below are invented teaching examples, not observed market prices, investment results or forecasts.
CAGR, cumulative return and arithmetic average return#
These measures can describe the same series without agreeing numerically.
| Measure | Calculation | What it tells you |
|---|---|---|
| Cumulative return | Ending value ÷ starting value − 1 | Growth across the entire stated period |
| Arithmetic average annual return | Sum of annual returns ÷ number of annual returns | Mean of the yearly percentage observations |
| CAGR | (Ending value ÷ starting value)^(1 ÷ years) − 1 | Constant annual rate that reproduces the ending value |
Use positive, comparable starting and ending values and a positive duration for the ordinary CAGR calculation. Assume no external deposits or withdrawals unless their effects have already been handled by an appropriate performance method.
The distinction is visible in the formula. An arithmetic average adds returns. Compounded growth multiplies their growth factors: 1.10 for a 10% gain, or 0.90 for a 10% loss.
For equal annual periods, the geometric calculation is:
CAGR = [(1 + r1) × (1 + r2) × ... × (1 + rn)]^(1/n) − 1
The endpoint formula and the growth-factor formula agree when they describe the same complete series on the same basis. Do not take the geometric mean of the signed percentages themselves; use the positive growth factors.
A three-year example: 5% average, 2.5986% CAGR#
Start with 100. Apply a 20% gain, a 25% loss and another 20% gain, each over one year.
| Observation | Value | Return since the previous observation |
|---|---|---|
| Start | 100.00 | Not applicable |
| End of year 1 | 120.00 | +20.00% |
| End of year 2 | 90.00 | −25.00% |
| End of year 3 | 108.00 | +20.00% |
The arithmetic average is:
(20% − 25% + 20%) ÷ 3 = 5%
The cumulative return is 108 ÷ 100 − 1 = 8%. CAGR spreads that growth over the actual three-year span:
(108 ÷ 100)^(1/3) − 1 = 2.5985568...% per year
There is a useful reconciliation test. Compounding 2.5985568% for three years takes 100 back to approximately 108. Compounding the 5% arithmetic average produces 115.7625 instead. That second calculation describes a different path, not the observed result.
The two-year +10%/−10% example works the same way: 1.10 × 0.90 = 0.99. Averaging the percentages hides the change in the base to which the second percentage applies.
Calculate both measures in Excel#
Enter the three-year example into a worksheet using this layout:
| Cell range | Contents |
|---|---|
| A2:A5 | Start, Year 1, Year 2, Year 3 |
| B2:B5 | 100, 120, 90, 108 |
| C2 | Leave blank; there is no preceding observation |
| C3 | =B3/B2-1 |
| C4 | =B4/B3-1 |
| C5 | =B5/B4-1 |
Then calculate the three different outputs:
| Output | Excel formula | Expected result |
|---|---|---|
| Arithmetic average annual return | =AVERAGE(C3:C5) | 5.0000% |
| Cumulative return | =B5/B2-1 | 8.0000% |
| CAGR | =POWER(B5/B2,1/3)-1 | 2.5986% |
| Equivalent CAGR using RRI | =RRI(3,B2,B5) | 2.5986% |
Format the results as percentages. Entering 20% stores 0.20 in a normal percentage cell; entering 20 without percentage formatting represents a different input.
Microsoft documents AVERAGE as an arithmetic mean, POWER as exponentiation, and RRI as an equivalent growth rate per specified period. RRI is annual here because its three periods are years. If those periods were months, the output would be monthly.
Check the return count as well as the value. AVERAGE ignores blank cells, so an accidentally missing year can change the sample silently. Do not replace a missing observation with a 0% return merely to make the formula run.
Count elapsed years, not rows#
Four observations in the example span three years. The starting observation establishes the base; it does not add another completed return period.
Historical market data makes this distinction more important. A file can contain thousands of daily or intraday bars without spanning thousands of years. Adding bars inside an unchanged start-to-end window does not change endpoint CAGR.
For irregular dates, choose and disclose a year-fraction convention, using the actual timestamps of the observations you selected. An Excel date calculation can use YEARFRAC with an explicit basis; its default basis is a 30/360 convention, so leaving that argument blank is a methodological choice. Do not present one day-count convention as universal.
If a requested start date has no observation, report the actual selected date. Do not quietly describe a shorter available history as the full requested period. The guide to detecting missing candles and incomplete history explains the data checks behind that decision.
Establish what the values measure#
A correct formula cannot repair mismatched inputs.
| Input issue | Why the result can mislead | What to establish first |
|---|---|---|
| Dividends or distributions excluded | Price growth is presented as a holder's total return | Whether income and reinvestment are represented |
| Share split changes the price unit | A per-share price change is interpreted as an equivalent change in wealth | A consistent split treatment or holding-value series |
| Different quote currencies | Currency movement is mixed into an asset comparison unintentionally | One stated reporting currency and aligned valuation times |
| External deposits or withdrawals | Account growth includes money supplied or removed by the investor | A suitable cash-flow-aware performance method |
| Missing or shortened history | The stated period differs from the data actually used | Actual start, end and coverage completeness |
For stocks and ETFs, a close-price column alone does not establish total return. Consult the price-return and total-return guide before choosing adjustments. For comparisons involving FX conversion, use a documented base-currency valuation method.
Keep external cash flows as a separate performance question. Starting wealth, ending wealth and a contribution amount do not identify one investment return without knowing when the cash moved and which method is appropriate. The GIPS Standards Handbook distinguishes time-weighted and money-weighted returns. This article does not implement a compliant reporting methodology or claim GIPS compliance.
Prepare a historical series with SiftingIO#
SiftingIO Market Data Export downloads historical OHLCV data for US stocks, forex, commodities and crypto as CSV or Excel. For a multi-year study, sign in and connect your API key; the account-free preview covers recent intraday bars, not a multi-year sample.
Choose one instrument and a historical interval appropriate to the study. Keep its quote currency, actual timestamps and dataset details with the downloaded values, and check any partial-result warning before calculating growth. Use completed observations with a consistent price basis.
The export identifies US stock prices as as-traded, without split or dividend adjustments. Establish the adjustments or holding-value series your research requires before interpreting an endpoint ratio as investment performance. Available stock history varies by instrument and depends on the ticker and its listing date; an ETF cannot have history before its own inception.
SiftingIO also provides real-time market data through REST and WebSocket. For this historical CAGR calculation, use the documented historical series rather than mixing a live quote into a completed-bar comparison. The API documentation and plan and usage details describe access; create a free account to evaluate the available data.
Questions worth answering beside the number#
Can CAGR be negative?#
Yes. With a positive start and a lower positive end, the usual formula produces a negative CAGR. The 100-to-99 example gives about −0.5013% over two years. A zero starting value makes the ratio undefined. Zero ending wealth means total loss; negative values need separate treatment rather than blindly applying a fractional power.
Does CAGR show the risk of the path?#
No. It uses endpoints and elapsed time. Two paths can have identical CAGR and very different interim losses. Inspect the return series and drawdowns as separate measurements.
Can a short period be annualized?#
An exponent can mathematically annualize a short window, but that does not turn the observed change into a reliable forecast. State the actual holding period and observed return prominently. Formal performance-reporting frameworks can impose additional rules on short-period presentation.
What should a comparison table disclose?#
Include the actual start and end dates, elapsed-year convention, currency, price or total-return basis, and cash-flow treatment. Label an arithmetic mean explicitly. That gives another reader enough information to reproduce the number and understand what it represents.
This guide is educational. The examples are synthetic and do not recommend an investment or imply future performance.



