ROI Calculator

Work out total return on investment and annualized return (CAGR) from an initial investment, final value, and holding period, instantly, in your browser.

runs locally on your browser. Your data never leaves your device.

Total ROI

+50.00%

Over the entire holding period

Annualized Return (CAGR)

+14.47%

Per year, compounded

$1,000.00Initial Investment
$1,500.00Final Value
$500.00Net Profit / Loss
3 yrsHolding Period

Common Use Cases

Check the overall percentage return on a stock, fund, property, or business investment
Convert a multi-year total return into a comparable annualized (CAGR) rate
Compare two investments held for different lengths of time on equal footing
Sanity-check an ROI or CAGR figure quoted in a pitch deck, prospectus, or finance course

About ROI Calculator

Return on investment (ROI) answers the most basic question any investor asks: how much did I actually make, relative to what I put in? This calculator takes an initial investment amount, the investment's final value, and how long it was held, and instantly works out two different, and both useful, answers: the total return over the whole period, and the annualized return you'd need to compound at every year to get the same result.

Total ROI is the simpler of the two: (Final Value − Initial Investment) ÷ Initial Investment × 100. It tells you the overall percentage gain or loss over the entire holding period, with no regard for how long that period was: a 50% total ROI means the same thing whether it took 6 months or 6 years.

Annualized return (CAGR, compound annual growth rate) answers a different, often more useful question: what steady, compounding annual rate would have produced this same total return? The formula is ((Final Value ÷ Initial Investment) ^ (1 ÷ Years) − 1) × 100. This is what actually lets you compare two investments held for different lengths of time on equal footing: a 50% total ROI over 5 years is a much weaker result (roughly 8.4% a year) than the same 50% total ROI over 1 year, even though the total-return figure alone looks identical.

Both figures update live as you type, with no "Calculate" button to press, and the holding period accepts fractional years (like 0.5 for six months or 2.5 for two and a half years) for exact partial-year periods. A negative final value relative to the initial investment is handled the same way as a gain: both figures simply come out negative, correctly reflecting a loss. Every calculation runs as plain JavaScript directly in your browser, so nothing you type is ever sent to a server, logged, or stored anywhere.

Frequently Asked Questions

What is the ROI formula?
Total ROI = (Final Value − Initial Investment) ÷ Initial Investment × 100. It expresses the overall gain or loss as a percentage of what you originally put in, regardless of how long the investment was held.
What is CAGR and how is it different from total ROI?
CAGR (compound annual growth rate) is the steady, compounding annual rate that would produce the same overall result: ((Final Value ÷ Initial Investment) ^ (1 ÷ Years) − 1) × 100. Total ROI tells you the overall percentage change with no regard for time; CAGR normalizes that change to a per-year rate, which is what makes it possible to fairly compare two investments held for different lengths of time.
Why do total ROI and annualized return show different numbers?
Total ROI is the return over the entire holding period, while CAGR spreads that same return evenly across each year (compounding). A 50% total ROI over 5 years works out to roughly an 8.4% annualized return, which is much lower than 50%, because it's asking what steady yearly rate compounds to a 50% total gain over 5 years, not just dividing 50% by 5.
What if my investment lost money?
Enter a final value lower than your initial investment: both the total ROI and the annualized return will come out negative, correctly reflecting the loss as a percentage. If the final value is $0 (a total loss), ROI is -100% regardless of the holding period.
Can I enter a holding period shorter than a year, like 6 months?
Yes. The holding period field accepts decimal years, so 6 months is 0.5, 18 months is 1.5, and so on. Just convert whatever period you have into years (months ÷ 12, or days ÷ 365) before entering it.
Is my financial data sent to a server?
No. Every calculation happens with plain JavaScript directly in your browser. Nothing you type is ever uploaded, logged, or stored anywhere.