Skip to content
StockMarketAgent
HomeToolsCAGR calculator
§ Tools / Series 03 · Personal finance · Return analysis

CAGR calculator

The inverse-direction calculator. Compound interest asks “given a rate, what's the future value?” — this one asks “given the actual beginning and ending values, what annual rate connects them?” Closed-form, three real inputs, the same transparency layer as every other calculator in the suite.

§ Inverse direction

cagr = (ending / beginning)(1 / period) − 1 — solved directly, no iteration. The companions (absolute return, gain/loss, value multiple, doubling years) are derivatives of the same multiple. Period months are first-class, so 7y 3m is exact; zero ending values are handled cleanly as −100%; and beginning vs ending units scale independently, so 1 lakh → 2 crores works without manual normalization.

3
Real inputs
±400
bps scenarios
±2y
Period sensitivity
7y 3m
Partial-year exact
v1
Methodology
§ Start with a preset
Three baseline cases — including the realistic loss scenario most CAGR calculators omit.
Inputs
Independent units for beginning vs ending · partial-year periods · everything recomputes instantly.
Workbooks Individual+
01Beginning value
02Ending value
03Holding period
Compound annual growth rate
7.1773%
Over 10 years, $100 grew to $200 — an annualized rate of 7.18%. The absolute return was 100.00%.
Value multiple2.00×
Gain / loss+$100
Absolute return100.00%
Doubling time at this rate10.00 y
Beginning value
$100
100 × ones
Ending value
$200
200 × ones
Total period
10.000 y
10y 0m
Rule-of-72 estimate
10.03 y
vs exact 10.00 y
CAGR / absolute
0.718
smoothing factor vs avg/yr
Status
computed
methodology v1
§ Smoothed growth path

The CAGR curve — not the actual price path

Each marker is the value at year y, computed as beginning × (1 + cagr)y. Real markets are messier. The headline rate is correct; this curve is a decoration.
$0.0$50.0$100$150$200Y0Y2Y4Y6Y8Y10
YearSmoothed valueCumulative returnvs beginning
Y0 · start$1000.00%1.000×
Y1$1077.18%1.072×
Y2$11514.87%1.149×
Y3$12323.11%1.231×
Y4$13231.95%1.320×
Y5$14141.42%1.414×
Y6$15251.57%1.516×
Y7$16262.45%1.625×
Y8$17474.11%1.741×
Y9$18786.61%1.866×
Y10 · endpoint$200100.00%2.000×
§ Period sensitivity

What if the period were 1 or 2 years longer or shorter?

Same beginning, same ending — recomputed at nearby periods. Catches off-by-one-year framing (was it 9 or 10 years?).
-2 y
8.00 y
9.05%
CAGR
-1 y
9.00 y
8.01%
CAGR
-0.5 y
9.50 y
7.57%
CAGR
Base
10.00 y
7.18%
CAGR
+0.5 y
10.50 y
6.82%
CAGR
+1 y
11.00 y
6.50%
CAGR
+2 y
12.00 y
5.95%
CAGR
§ Scenario ending values

What would the ending value be at nearby CAGRs?

Beginning held constant, period held constant, CAGR shifted by ±100 / 200 / 400 bps.
ShiftCAGREnding valueMultiplevs actual
-400 bps3.18%$1371.37×$-63.3
-200 bps5.18%$1661.66×$-34.3
-100 bps6.18%$1821.82×$-17.9
Base7.18%$2002.00×
+100 bps8.18%$2192.19×+$19.5
+200 bps9.18%$2412.41×+$40.6
+400 bps11.18%$2892.89×+$88.5
§ Formula trace
every output, derived
  1. beginning = 100 × ones = 100.00 USD
  2. ending = 200 × ones = 200.00 USD
  3. total_period_years = 10 + 0/12 = 10.0000 y
  4. multiple = ending / beginning = 2.000000×
  5. cagr = (ending / beginning)^(1 / period) − 1 = (2.0000)^(1/10.0000) − 1 = 7.1773%
  6. absoluteReturn = multiple − 1 = 100.0000%
  7. gainLoss = ending − beginning = 100.00 USD
  8. doublingYears = ln(2) / ln(1 + cagr) = 10.000 y
§ Input audit
no input silently ignored
beginningUnitused
beginningValueused
currencyused
endingUnitused
endingValueused
periodMonthsused
periodYearsused
§ Warnings
  • CAGR is a smoothed rate — it ignores volatility, drawdowns, and the actual path between beginning and ending.
  • CAGR is the wrong tool for irregular cash flows (deposits + withdrawals along the way). Use XIRR for those.
§ Golden references · locked in tests
Four fixtures pin the engine. The last one — beginning in lakhs, ending in crores — exists specifically to prove independent unit scaling works without manual normalization.
100 → 200 · 10 y
7.1773%
100 → 50 · 5 y
−12.9449%
100 → 100 · 10 y
0.0000%
1 L → 2 cr · 10 y
69.8646%
§ Same engine, headlessly

The closed-form CAGR solve, the period sensitivity, the bps scenarios, and the smoothed growth path are all reachable as a stateless REST endpoint and an MCP tool. Workbook CRUD is authenticated and stored under calculator_id=cagr. Unknown inputs are rejected with 422.

POST/api/v1/financial-calculators/cagr/calculate
POST/api/v1/financial-calculators/cagr/run
GET/api/v1/financial-calculators/cagr/schema
GET/api/v1/financial-calculators/cagr/defaults
GET/api/v1/user/financial-calculator-workbooks?calculator_id=cagr · individual+
MCP toolcalculate_cagr
methodology_version = financial-calculators.v1 · canonical = /en/tools/cagr-calculator
§ FAQ

Five things worth knowing

Q01What does CAGR actually stand for, and how is it different from the percentage I see in my brokerage?+
CAGR is the compound annual growth rate — the single smoothed rate at which the beginning value would have grown to the ending value, year after year. Your brokerage often shows absolute return (ending / beginning − 1), which makes a 5-year and a 15-year double look identical at "+100%". CAGR annualizes both so they are comparable: a 5-year double is 14.87% CAGR; a 15-year double is 4.73% CAGR.
Q02Can CAGR be negative?+
Yes — and that is exactly the "Half in 5y" preset. A portfolio that fell from 100 to 50 over 5 years has a CAGR of −12.9449%. The math is the same in both directions; the calculator surfaces a warning that doubling time is undefined for non-positive rates.
Q03My period is 7 years and 3 months, not a round number. Does that matter?+
Yes. Period months are first-class here, not optional. total_period_years = years + months / 12, so 7y 3m becomes 7.25 and the CAGR is computed exactly — not rounded to "about 7 years". The period-sensitivity table also shows what the rate would be at nearby periods so you can sanity-check off-by-one framing.
Q04When should I not use CAGR?+
Three cases. (1) Irregular cash flows along the way — use XIRR; CAGR assumes no contributions or withdrawals between the endpoints. (2) Sub-1-year holdings — annualizing a 3-month return overstates the rate; report absolute return instead. (3) Path-dependent reasoning — CAGR is smoothed, so it tells you nothing about the volatility, drawdowns, or sequence of returns. The headline rate is correct; the smoothed growth curve is decorative.
Q05Why is independent unit scaling its own feature?+
"1 lakh grew to 2 crores" is a natural way for people to describe a real result. Most calculators force you to normalize first (which is where off-by-100× mistakes happen). Here, beginning_unit and ending_unit are independent, so lakh → crore works directly and the formula trace shows both expansions before the math runs.