Total return %, profit, and annualized CAGR for an investment.
ROI = (final − fees − initial) / initial. CAGR = (final/initial)^(1/years) − 1. CAGR strips out the holding period so two investments with different timelines become comparable.
Return on Investment (ROI) is the question every investor asks first: did this make money, and how much? The headline number is a simple percentage — (final − initial) / initial — but it hides the holding period. A 50 % return over 6 months is excellent; a 50 % return over 10 years is mediocre. The fix is CAGR (Compound Annual Growth Rate): the constant annual rate that would have produced the same final value. CAGR strips out the time dimension and lets you compare a real-estate deal against a stock against a side hustle on a level field. This calculator returns both the headline ROI and the annualized CAGR, plus a verdict band that translates the ROI into an everyday word ("modest", "solid", "strong"), and accepts an optional fees-and-taxes deduction so the result is a net return rather than a gross.
Total ROI = (final − fees − initial) / initial × 100. Net result is the value after deducting any selling fees, capital-gains tax, transaction costs. CAGR = (final_net / initial)^(1/years) − 1, expressed as a percentage. CAGR is undefined when net ≤ 0 (you can't take an n-th root of a non-positive number meaningfully); the calc shows "–" in that case and falls back to the headline ROI for reasoning. The verdict bands: ROI < 0 → Loss; 0 → Break-even; 0–15 % → Modest; 15–50 % → Solid; > 50 % → Strong. These are pure totals, not annualized — a 50 % total return over 30 years is still labelled "Strong" by total but its CAGR (1.36 %) tells the real story.
Enter the initial investment, the final value (what the asset is worth or sold for), the holding period in years, and any fees and taxes to deduct. The calc returns: total ROI %, annualized CAGR %, net profit in your currency, the net-of-fees value, and a one-word verdict. Toggle between the example presets (a stock, a real-estate deal, a side hustle) to see how each metric behaves at different scales.
Stock investment: 5 000 € initial, 8 200 € final after 5 years, 80 € in transaction fees. - Net: 8 200 − 80 = 8 120 €. - Profit: 8 120 − 5 000 = 3 120 €. - ROI: 3 120 / 5 000 = 62.4 % ("Strong"). - CAGR: (8 120 / 5 000)^(1/5) − 1 = 1.6240^0.2 − 1 = 10.2 %.
Real-estate: 200 000 € purchase, sold for 280 000 € after 8 years, 12 000 € in agent fees and capital-gains tax. - Net: 268 000. Profit: 68 000. ROI: 34 % ("Solid"). CAGR: (268 / 200)^(1/8) − 1 = 3.74 % annualized.
Time matters, ROI hides it. A naive ROI doesn't tell you whether a 30 % return came after 1 year or 10. Always show CAGR alongside ROI, especially when comparing investments with different horizons. The calc does this by default.
Sequence of returns and dividends. A buy-and-hold final value implicitly rolls up all dividends and intermediate distributions — but only if you reinvested them. If you spent the dividends, the "final value" should be just the price; you should add the dividends as a separate cash flow (which this calc does not handle). For stocks with high dividends (REITs, utilities), this matters a lot.
Inflation. CAGR is nominal. A 5 % CAGR at 3 % inflation is a 2 % real CAGR. If the goal is preserving purchasing power (retirement, long-horizon savings), subtract inflation — or better, use real returns from the start.
Fees that aren't one-time. Annual management fees (0.5–2 % for funds) compound against you year after year. The fees field here is meant for one-time selling costs and CGT. For ongoing fees, compute the after-fee CAGR by subtracting the fee rate from the gross CAGR — that's the standard "expense-ratio drag" in fund analysis.
Survivor bias in benchmarks. "The S&P returned 10 % a year on average" is true only over very long horizons and with the survivor companies. Comparing your single-asset CAGR against an index CAGR is informative but not the whole story.
Currency. If you invested in foreign currency and converted back, the FX move is part of the return — re-enter both numbers in the same currency at the actual conversion rates used.