sifting/io
Quant Research & Backtesting
8 min readSiftingIO Team

CAGR vs Average Annual Return: Formula and Examples

Compare CAGR with arithmetic average annual return using worked examples, Excel formulas and clear checks for dates, cash flows and historical price data.

CAGR vs Average Annual Return: Formula and Examples

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.

MeasureCalculationWhat it tells you
Cumulative returnEnding value ÷ starting value − 1Growth across the entire stated period
Arithmetic average annual returnSum of annual returns ÷ number of annual returnsMean of the yearly percentage observations
CAGR(Ending value ÷ starting value)^(1 ÷ years) − 1Constant 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.

ObservationValueReturn since the previous observation
Start100.00Not applicable
End of year 1120.00+20.00%
End of year 290.00−25.00%
End of year 3108.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 rangeContents
A2:A5Start, Year 1, Year 2, Year 3
B2:B5100, 120, 90, 108
C2Leave blank; there is no preceding observation
C3=B3/B2-1
C4=B4/B3-1
C5=B5/B4-1

Then calculate the three different outputs:

OutputExcel formulaExpected result
Arithmetic average annual return=AVERAGE(C3:C5)5.0000%
Cumulative return=B5/B2-18.0000%
CAGR=POWER(B5/B2,1/3)-12.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 issueWhy the result can misleadWhat to establish first
Dividends or distributions excludedPrice growth is presented as a holder's total returnWhether income and reinvestment are represented
Share split changes the price unitA per-share price change is interpreted as an equivalent change in wealthA consistent split treatment or holding-value series
Different quote currenciesCurrency movement is mixed into an asset comparison unintentionallyOne stated reporting currency and aligned valuation times
External deposits or withdrawalsAccount growth includes money supplied or removed by the investorA suitable cash-flow-aware performance method
Missing or shortened historyThe stated period differs from the data actually usedActual 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.

Keep reading

Related posts