Skip to main content

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.

Sponsored

This space is reserved for a sponsor.

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.

years

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.

% a year

is the US long-run average.

% a year

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 atEnding valueVersus 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

StartYr 3.6Yr 7
Your path Benchmark path What you put in

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.
Sponsored

This space is reserved for a sponsor.

How to use

  1. 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. 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. 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. 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. 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

Sponsored

This space is reserved for a sponsor.