Calculation & Conversion / Calculators
ROI Calculator
This calculator takes what an investment cost you and what it is worth now and reports the return in three separate ways, because those three answers are genuinely different numbers. Total return on invested capital is your profit divided by every dollar you put in. Annualized return is the steady yearly rate that reproduces your ending value over the period you held it; when you added money along the way there is no closed formula for it, so it is solved numerically as the internal rate of return on your exact cash flows, and you can check the answer by compounding that rate back through your own schedule and landing on the ending value you typed in. The benchmark takes the identical cash flows and grows them at a rate you set, 10.0 percent a year by default, which is the long-run nominal total return of the S&P 500 with dividends reinvested; because the cash flows on both sides are the same, a higher ending value and a higher annualized rate always appear together, and the page never shows one without the other. Add an inflation rate and it also reports the real return, computed as (1 plus nominal) divided by (1 plus inflation) minus one rather than by simple subtraction, which is the difference between what your statement shows and what the money actually buys. Fractional holding periods are rounded to whole months and the page says when it does. Every amount is held in whole cents and every column comes off a single contribution schedule, so what you put in plus your profit is exactly your ending value. Nothing is sent anywhere: the whole thing runs in your browser.
This space is reserved for a sponsor. Every tool on this site stays free and runs locally in your browser.
Start from an example
What you put in on day one. Use 0 if you started from nothing.
What it is worth today, before tax and fees.
Fractions are allowed. The model works in whole months — this run uses 7 years.
per month. Use 0 if you never added anything.
Assumed level and exactly on schedule.
One period of compounding separates the two.
is the US long-run average.
is the S&P 500 long-run total return.
$21,000 added across 84 payments.
What the investment returned
Annualized is the steady yearly rate that reproduces your ending value.
Annualized return
9.00%
Over 7 years
Everything you put in
$31,000
Starting amount plus 84 additions
Ending value
$47,000
As entered
Profit
+$16,000
Ending value minus everything you put in
Total return on capital
+51.61%
Not an annual rate — later contributions had less time to work
After 3.1% inflation
Real annualized return
5.72%
(1 + nominal) ÷ (1 + inflation) − 1
Ending value in today's money
$37,957
What the ending value buys
Purchasing power lost
$9,043
The gap between the two columns above
Against a 10.00% benchmark
The same cash flows, grown at a steady 10.00% a year.
Behind the benchmark
Putting in $31,000 and ending with $47,000 works out to 9.00% a year. The same money at 10.00% would have reached $49,231, so you finished $2,231 behind.
Your ending value
$47,000
As entered
Benchmark ending value
$49,231
Same money at 10.00%
Difference
−$2,231
Behind the benchmark
Your annualized rate
9.00%
Benchmark rate
10.00%
Gap
−1.00 pts
Percentage points, not percent
| If it had grown at | Ending value | Versus yours |
|---|---|---|
| 4.00% | $37,286 | +$9,714 |
| 6.00% | $40,903 | +$6,097 |
| 8.00% | $44,875 | +$2,125 |
| 10.00%benchmark | $49,231 | −$2,231 |
| 12.00% | $54,004 | −$7,004 |
Every row is the same money on the same dates — only the rate changes. That is what makes the comparison meaningful: because the cash flows are identical, a higher rate always means a higher ending value.
The path between the two dates
Both curves are drawn at one steady monthly rate, because no calculator can know how your balance actually moved in between.
You put in
$31,000
Your path ends at
$47,000
Benchmark path ends at
$49,231
Vertical axis runs from $10,000 to $49,231. The dashed line is cumulative contributions, so the gap between it and your curve is growth.
Read this before you act on the number
The 10% benchmark is a long-run average, not a promise
The S&P 500 has compounded at about 10.0% a year since 1928 with dividends reinvested, but individual years have ranged from -43.8% (1931) to +52.6% (1954). Comparing yourself to the average says nothing about whether your result was luck, timing, or skill, and it says nothing about what comes next.
This is a money-weighted return, not a time-weighted one
The annualized figure here is the internal rate of return on the exact dollars you put in, so a large contribution made just before a good year counts for more than an equal one made earlier. Fund managers report time-weighted returns, which strip out the effect of when you happened to add money. The two can differ a lot for the same investment, and the money-weighted number is the one that describes what your account actually did.
5 more assumptions behind these figures
No fees, taxes, or currency effects
Everything here is gross. Advisory fees, fund expense ratios, bid-ask spreads, and capital gains tax all come out of the number your statement shows, so a real-world comparison should be made after them. On a taxable account the gap matters most for holdings you have owned for under a year.
The benchmark uses your cash flows, not the index path
The benchmark column asks what your contributions would have grown to at a steady 10.0% a year. It is not what you would actually have made in an index fund — that depends on the specific days each contribution landed, which is exactly the sequence-of-returns effect this model cannot see.
Contributions are assumed level and exactly on schedule
The model puts in the same amount every month, at the end of each period. Real contributions vary, and money that arrived mid-period gets a slightly different answer. Lump sums and irregular top-ups will not match this exactly.
The chart is a steady-rate path, not your actual one
Both curves are drawn at a single constant monthly rate, because a calculator cannot know how your balance moved in between. Your real path was lumpier. Two investments with the same annualized rate can look completely different along the way, and the order of the good and bad years changes how much risk you actually carried.
Real returns are compounded, not subtracted
The after-inflation figure is (1 + nominal) ÷ (1 + inflation) − 1, which at 3.1% inflation is not the same as subtracting 3.1 points from the nominal rate. The nominal column is what your statement shows; the real column is what that money buys.
How this is calculated
- Your money goes in as a starting amount plus a level contribution at the start or end of every month, quarter, or year. A fractional holding period is rounded to whole months, and the page says so when it happens.
- The annualized figure is the internal rate of return: the single steady monthly rate that turns your exact cash flows into your ending value. It is found by bisection, then converted with (1 + monthly)¹² − 1 — not by multiplying the monthly rate by 12.
- Total return on invested capital is (ending value − everything you put in) ÷ everything you put in. It is not comparable with an annual rate, because the contributions you made later had less time to compound.
- The benchmark takes the same cash flows and grows them at the rate you set — 10.0% a year by default, the long-run nominal total return of the S&P 500 with dividends reinvested. Because the cash flows are identical, a higher annualized rate always means a higher ending value, and the page never shows one without the other.
- After-inflation figures use (1 + nominal) ÷ (1 + inflation) − 1. Simply subtracting inflation would overstate the damage when inflation is low and understate it when inflation is high.
- Every amount is held in whole cents and all columns come off the same contribution schedule, so what you put in plus your profit is exactly your ending value.
This space is reserved for a sponsor. Every tool on this site stays free and runs locally in your browser.
How to use
- 1
Enter what you started with
Type the amount you invested on day one. Use 0 if the position began with nothing and was built up entirely through contributions.
- 2
Enter what it is worth now
Type the current value before tax and fees. If the investment is worth nothing, enter 0 — the calculator treats that as a total loss and reports minus 100 percent.
- 3
Set the holding period
Enter the number of years you held it. Fractions are allowed; the model works in whole months and tells you which period it used.
- 4
Add any recurring contributions
Enter the amount you added and how often, and whether it landed at the start or the end of each period. Leave it at 0 if you never added anything.
- 5
Read the annualized figure and the comparison
The annualized rate is solved from your cash flows and can be checked by compounding it back to your ending value. The benchmark block shows the same money grown at a rate you set, and a table of what it would have become at 4, 6, 8, 10 and 12 percent.
Key facts
- S&P 500 long-run returnAbout 10.0% a year nominal, or roughly 6.9% after inflation, since 1928Source:NYU Stern (Damodaran) dataset, S&P 500 total return with dividends reinvested, 1928-2025
- US long-run inflationAbout 3.1% a year since 1928Source:NYU Stern (Damodaran), US inflation series, 1928-2025
- How wide a single year can swingBest calendar year +52.6% (1954); worst -43.8% (1931)Source:NYU Stern (Damodaran) dataset, S&P 500 annual total returns
- Real return formula(1 + nominal) / (1 + inflation) - 1, not nominal minus inflationSource:Standard practice; at 10% nominal and 3.1% inflation it gives 6.69% rather than 6.90%
- Advertising rates for finance keywords$15-50 RPM, among the highest of any content categorySource:Industry medians for finance and investing ad placements
How this calculator works
Three returns are reported because they answer three different questions. Return on invested capital is profit divided by every dollar put in. The annualised return is the constant yearly rate that would reproduce your ending value over the holding period, and it is well defined only when no money was added or withdrawn along the way. Where cash flows did occur, an internal rate of return is solved iteratively instead, because a single annualised figure does not exist for an irregular stream.
Money-weighted and time-weighted returns diverge whenever contributions are large relative to the balance, and neither is wrong: one measures the experience of the investor, the other the performance of the asset. Returns here are nominal unless you supply an inflation figure, and no fees, taxes or dividends are assumed unless you entered them as part of the cash flows.
Sources and standards
Disclaimer
This is an educational calculator, not financial advice. The result is an arithmetic projection of the figures you enter: it does not know your full circumstances, the terms of a specific offer, or the tax and regulatory rules that apply where you live. Confirm any figure against the terms of the product itself, or with a licensed professional, before acting on it.
Last reviewed:
Frequently asked questions
What is the difference between CAGR and a simple return?
A simple return divides your profit by everything you put in, with no regard for when each dollar arrived. CAGR, or the annualized rate, is the steady yearly rate that would carry your exact cash flows to the same ending value. They diverge whenever money went in at different times: 31,000 dollars invested over seven years and ending at 47,000 dollars is a 51.6 percent total return but only 9.00 percent annualized, because the contributions made in year six had one year to work and the ones made in year one had seven. Comparing the 51.6 percent against a 10 percent index return is the single most common way this pair of numbers gets misread — they are not in the same units.
How do you calculate a return when you kept adding money?
You have to solve for it. With a single deposit the answer is just (ending value divided by starting amount) raised to the power of one over the number of years, minus one. Once you add contributions there is no closed formula, so this calculator finds the internal rate of return instead: it searches for the one monthly growth rate at which your deposits, compounded forward to the end, add up to your ending value. That rate is then converted to an annual one with (1 plus monthly) to the twelfth power minus one — not by multiplying by twelve, which would overstate it. Because every contribution carries its own date, this is a money-weighted return: money added just before a strong year counts for more than an equal amount added earlier.
How do I strip inflation out of my return?
Divide, do not subtract. The real rate is (1 plus your nominal rate) divided by (1 plus the inflation rate), minus one. At a 10 percent nominal return and 3.1 percent inflation that gives 6.69 percent, not the 6.90 percent you get by subtracting; the gap widens as inflation rises, reaching nearly 1.7 percentage points at 20 percent inflation. The same rule applies to the ending value: divide it by (1 plus inflation) raised to the number of years to see what it buys in the money you started with. The nominal figure is what appears on your statement; the real figure is what that money is worth.
Is 10 percent a fair benchmark for the S&P 500?
It is the right long-run average and a poor one-year expectation. The S&P 500 has compounded at roughly 10.0 percent a year since 1928 with dividends reinvested, which is about 6.9 percent after inflation, but individual calendar years have ranged from minus 43.8 percent in 1931 to plus 52.6 percent in 1954, and only a handful of years landed anywhere near the average. This calculator uses it as a steady-rate yardstick on your cash flows, which is a clean comparison of rates, but it is not what you would actually have earned in an index fund — that depends on the specific days each contribution landed, which no calculator can reconstruct.
Why is my annualized return different from what my brokerage app shows?
Most likely because the two are measuring different things. Brokerages usually report a time-weighted return, which strips out the effect of when you happened to add or withdraw money and measures the investment itself. This calculator reports a money-weighted return, which measures what your account did given the timing of your actual deposits. If you added a large sum right before a strong stretch, your money-weighted figure beats the time-weighted one, and vice versa. Fees, dividend withholding, and whether your app counts cash sitting uninvested will also move the number.
Related tools
Retirement Savings Calculator
See what your savings become by retirement, the monthly income they support, how that compares with the 4% rule, and what Social Security covers.
Debt Consolidation Calculator
See whether folding card balances into one loan saves money: compare the blended card rate with the loan rate, and weigh term against interest.
Rent vs Buy Calculator
Compare renting with buying the same home over the same period — mortgage, taxes, maintenance, opportunity cost — and find your break-even year.
This space is reserved for a sponsor. Every tool on this site stays free and runs locally in your browser.