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.
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.
The CAGR curve — not the actual price path
| Year | Smoothed value | Cumulative return | vs beginning |
|---|---|---|---|
| Y0 · start | $100 | 0.00% | 1.000× |
| Y1 | $107 | 7.18% | 1.072× |
| Y2 | $115 | 14.87% | 1.149× |
| Y3 | $123 | 23.11% | 1.231× |
| Y4 | $132 | 31.95% | 1.320× |
| Y5 | $141 | 41.42% | 1.414× |
| Y6 | $152 | 51.57% | 1.516× |
| Y7 | $162 | 62.45% | 1.625× |
| Y8 | $174 | 74.11% | 1.741× |
| Y9 | $187 | 86.61% | 1.866× |
| Y10 · endpoint | $200 | 100.00% | 2.000× |
What if the period were 1 or 2 years longer or shorter?
What would the ending value be at nearby CAGRs?
| Shift | CAGR | Ending value | Multiple | vs actual |
|---|---|---|---|---|
| -400 bps | 3.18% | $137 | 1.37× | $-63.3 |
| -200 bps | 5.18% | $166 | 1.66× | $-34.3 |
| -100 bps | 6.18% | $182 | 1.82× | $-17.9 |
| Base | 7.18% | $200 | 2.00× | — |
| +100 bps | 8.18% | $219 | 2.19× | +$19.5 |
| +200 bps | 9.18% | $241 | 2.41× | +$40.6 |
| +400 bps | 11.18% | $289 | 2.89× | +$88.5 |
- beginning = 100 × ones = 100.00 USD
- ending = 200 × ones = 200.00 USD
- total_period_years = 10 + 0/12 = 10.0000 y
- multiple = ending / beginning = 2.000000×
- cagr = (ending / beginning)^(1 / period) − 1 = (2.0000)^(1/10.0000) − 1 = 7.1773%
- absoluteReturn = multiple − 1 = 100.0000%
- gainLoss = ending − beginning = 100.00 USD
- doublingYears = ln(2) / ln(1 + cagr) = 10.000 y
- 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.
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.
calculate_cagr