ROI Calculator
This ROI calculator answers the question behind every investment decision: for the money you put in, how much came back? Fill in the initial investment, the final value and — when you want the time-based readings — the holding period in years and any extra cost per year, and the tool returns the return on investment as a percentage, the ROI multiple, the annualized ROI over the holding period, the average net gain per year, the payback period and a Profit, Loss or Break-even badge. The last two fields are optional: leave the years blank and nothing is annualised, leave the annual cost blank when there is no upkeep to add. It works as a plain return on investment calculator for a fund or a savings bond, as an investment return calculator that puts two proposals on one scale, and as a check on a campaign or a piece of equipment — the arithmetic is identical, and this ROI calculator online needs no account and nothing to install.
Investment
Result
Return on investment
—
ROI| — | — |
|---|---|
| — | — |
| — | — |
| — | — |
| — | — |
| — | — |
What an ROI Calculator Measures
Return on investment is a ratio, not an amount. Profit tells you how many dollars are on top; ROI tells you how large that gain is relative to what it took to produce it, which is the only way to compare a small gain on a small outlay with a larger gain on a much larger one. The calculator keeps the raw gain in the breakdown and puts the ratio in the headline, and it reads every one of its outputs from the same four inputs.
| Reading in the result card | What it tells you |
|---|---|
| ROI (the headline) | the net gain as a percentage of the total cost — 5000 on 10000 is 50%, and the reading turns negative when the final value falls below the total cost |
| ROI multiple | what each unit invested came back as: a 1.5× reading means every 1 in returned 1.5 |
| Annualised ROI (CAGR) | the single compound yearly rate that would take the total cost to the final value over the holding period — 14.471424% a year in the 3-year example below |
| Average net gain per year | the net gain spread evenly across the holding period — 1666.666667 a year in that example |
| Payback period | how long the average yearly net gain needs to return the initial investment — 6 yr in that example, and the word Never when the net gain is not positive |
| Profit / Loss / Break-even badge | Profit when the net gain is positive, Loss when it is negative, Break-even when the final value exactly equals the total cost |
Two limits are worth stating before the numbers. First, this is a snapshot model: it assumes the money goes in at the start and comes back at the end, and it spreads the net gain evenly across the holding period rather than following the dates on which cash actually arrived. Second, ROI is not risk-adjusted and not inflation-adjusted. A 50% return earned with no chance of losing the capital and a 50% return on a coin toss read identically here; the percentage describes the size of the result, not its quality. An ROI calculation is still the fastest way to see whether a decision cleared its own cost, which is why it is the first line of most business cases — and why the same four inputs are enough for a fund, a marketing campaign, a machine or a hire.
The ROI Formula and Conventions
The return on investment formula has one denominator behind every row: the total cost, which is the initial investment plus the extra cost per year multiplied by the holding period. Both ratios are built on that number — the ROI percentage against the net gain, the multiple against the final value — so a misread cost changes every row on the card at once.
| Symbol | Meaning | Where it comes from |
|---|---|---|
| C₀ | initial investment | the first field; must be greater than zero |
| FV | final value | the second field; 0 is a legitimate total loss, not a missing value |
| T | holding period in years | optional; 0 or blank means no annualisation |
| AC | extra cost per year | optional; blank means 0 |
| Total cost | what the position cost in total | C₀ + AC × T, the denominator of both ratios |
| Net gain | what is left after the cost | FV − total cost, the numerator of the ROI percentage |
| ROI | the headline percentage | net gain ÷ total cost × 100 |
| Multiple | the return as a factor | FV ÷ total cost |
| CAGR | the annualised compound rate | (FV ÷ total cost)^(1 ÷ T) − 1, only when T is greater than 0 |
| Payback | time to recover the initial investment | C₀ ÷ (net gain ÷ T), only when T is greater than 0; the row shows Never when the net gain is zero or negative |
The two ratios. The headline divides the net gain by the total cost; the multiple divides the final value by it. They are the same comparison read from a different zero point, and the card always shows both:
\[ \text{Total cost} = C_0 + \text{AC} \times T, \qquad \text{Net gain} = FV – \text{Total cost} \]
\[ \text{ROI} = \frac{FV – (C_0 + \text{AC} \times T)}{C_0 + \text{AC} \times T} \times 100 \]
\[ \text{ROI multiple} = \frac{FV}{C_0 + \text{AC} \times T} \]
The annualised line. A 50% return is not the same thing over 3 years as over 10, and the CAGR row is what makes the two comparable. It solves for the single steady yearly rate that reproduces the multiple, which is why it only exists once you give the tool a holding period:
\[ \text{Annualised ROI} = \left( \frac{FV}{C_0 + \text{AC} \times T} \right)^{1/T} – 1 \]
The payback line. This one asks a different question — how quickly the position pays for itself — and it divides the initial investment by the average net gain per year:
\[ \text{Payback period} = \frac{C_0}{\text{Net gain} \div T} \]
Read that row carefully. It assumes the net gain arrives evenly over the holding period, so it measures speed rather than the length of the investment, and a payback period longer than the holding period is normal rather than a mistake. When the net gain per year is zero or negative there is nothing to pay the investment back with, and the row prints Never — which means it never recovers the outlay on these inputs, not that the tool failed.
Boundaries and errors. Only real numbers are accepted and the initial investment must be greater than zero, because ROI divides by the total cost and the result is undefined at zero. The final value, the holding period and the annual cost cannot be negative, and a final value of 0 is allowed — it describes a position that lost everything rather than a field you forgot to fill in. Each refusal comes with its own reason instead of one generic warning:
| What went in | Message the tool prints |
|---|---|
| An investment or final value that is empty or not a number | Please enter a valid number in the investment and final value fields. |
| An investment of exactly 0 | The initial investment must be greater than zero — ROI divides by it, so it is undefined at zero. |
| A negative number in any of the four fields | The investment, final value, holding period and annual cost cannot be negative. |
| Numbers so large that the ratios overflow the display | The result is out of range for these inputs. |
Precision and formatting. Every figure is rounded to at most six decimal places and trailing zeros are dropped, so a repeating value keeps its useful tail (1666.666667, 14.471424%) while a clean one stays short (1.5×, 6 yr). No thousands separators are used anywhere in the results, so a total cost of 10000 is printed as 10000 and never with a comma, which keeps every string easy to copy into a spreadsheet or a note. Negative results carry a minus sign rather than parentheses: the losing example below prints -1000, -500 and -20%. Leave the holding period blank or at 0 and the three time-related rows — annualised ROI, average net gain per year and payback period — are removed from the card entirely rather than printed as three dashes: in this tool a dash means “could not be computed”, and a row that was simply not requested should not be able to look like a failure. The calculator is unit-agnostic, so dollars, euros or pounds all work as long as both amounts use the same currency, and it does not matter whether the underlying asset was bought by the square feet or the square metres — only the two money figures enter the formula.
How to Use the ROI Calculator
- Enter the initial investment: the full amount committed at the start, including any fees you paid to get in. It must be greater than zero.
- Enter the final value: what the position was worth or returned at the end, including anything you sold or cashed out. If the money was lost entirely, enter 0 — that is a valid total loss, not an empty field.
- Add the holding period in years if you want the time-based readings. Leave it blank (or 0) when the elapsed time is irrelevant and the headline percentage is all you need.
- Add the extra cost per year if the position costs money to hold — maintenance on a machine, a subscription, storage, hosting. Leave it blank when there is none; a blank is read as 0, and the amount is added into the total cost that the ratios divide by.
- Read the result card top to bottom: the badge first, then the headline percentage and the equation line, which repeats the arithmetic with your own numbers so you can calculate ROI by hand and check the total.
- Press Reset to return to the example the form opens with, or use the copy buttons to take the headline figure or the summary line away with you.
Two habits make the output easier to trust. Check the equation line against your own arithmetic — it prints the exact values that went into the ratios, so a misread input shows up immediately instead of quietly changing the percentage. And compare proposals only on rows that answer the same question: two investments held for different lengths of time belong next to each other on the annualized ROI line, because the plain percentage gives no credit to the one that earned its return faster.
Worked Examples
Example 1 — 10000 in, 15000 back after 3 years
This is the case the calculator opens with: 10000 invested, 15000 returned after 3 years, no extra cost. The card labels the run Return on 10000 over 3 yr and reports ROI 50% — net gain 5000 on a total cost of 10000, annualised 14.471424%. The equation line reads (15000 − 10000) ÷ 10000 × 100 = 50%, and the breakdown underneath it is:
| Line in the result card | Value |
|---|---|
| Net gain (FV − total cost) | 5000 |
| Total cost (C₀ + AC × T) | 10000 |
| ROI multiple (FV ÷ total cost) | 1.5× |
| Annualised ROI (CAGR over 3 yr) | 14.471424% |
| Average net gain per year | 1666.666667 |
| Payback period (to recover C₀) | 6 yr |
| Badge | Profit |
Two rows deserve a second look. The annualised figure is not 50 ÷ 3 = 16.7%: a compound rate applies to the balance at the start of each year, so 1.5× over 3 years works out at 14.471424% a year, and the tool solves that exponent for you. The payback period is 10000 ÷ 1666.666667 = 6 yr — the average net gain per year spreads the 5000 of profit across the 3 years, and at that pace the 10000 outlay takes six years to come back, which is longer than the holding period and is not an error.
Example 2 — 5000 in, 4000 back after 2 years (a loss)
The same rows on a losing position: 5000 invested, 4000 returned after 2 years. The label is Return on 5000 over 2 yr and the summary reads ROI -20% — net gain -1000 on a total cost of 5000, annualised -10.557281%, from the equation (4000 − 5000) ÷ 5000 × 100 = -20%.
| Line in the result card | Value |
|---|---|
| Net gain (FV − total cost) | -1000 |
| Total cost (C₀ + AC × T) | 5000 |
| ROI multiple (FV ÷ total cost) | 0.8× |
| Annualised ROI (CAGR over 2 yr) | -10.557281% |
| Average net gain per year | -500 |
| Payback period (to recover C₀) | Never |
| Badge | Loss |
The multiple is 0.8×, so each 1 unit put in came back as 0.8. The annualised line is negative for the same reason the headline is: the steady compound rate that turns 5000 into 4000 over two years is -10.557281% a year, a gentler-looking number than the headline -20% because the headline measures the loss over the whole period while the annualised rate spreads it out. With an average net gain per year of -500 there is no profit to pay the investment back with, so the payback row prints Never.
A deeper loss behaves the same way on the same rows: 11000 in and 6000 back over 2 years gives a net gain of -5000 on a total cost of 11000, a multiple of 0.545455×, an annualised ROI of -26.145105% and an average net gain per year of -2500, with the payback row reading Never again. The headline for that run is (6000 − 11000) ÷ 11000 × 100 = -45.454545%. Nothing changes shape at larger numbers; every row is the same ratio recomputed from the total cost.
Example 3 — no holding period, so nothing is annualised
Leave the years field blank and the tool reports the plain return on investment. With 10000 in and 15000 back, the label is Return on 10000 and the summary is ROI 50% — net gain 5000 on a total cost of 10000 — no annualised clause, because no period was given. The card keeps three rows and drops the rest:
| Line in the result card | Value |
|---|---|
| Net gain (FV − total cost) | 5000 |
| Total cost (C₀ + AC × T) | 10000 |
| ROI multiple (FV ÷ total cost) | 1.5× |
| Badge | Profit |
Three rows, not six with three dashes beside them. The annualised ROI, the average net gain per year and the payback period are collapsed rather than blanked, because a dash in this tool already means “these inputs could not be computed” and reusing it for “this was not requested” would blur the difference. The moment you type a holding period, all three rows come back.
ROI Calculator FAQ
What is an ROI calculator?
An ROI calculator turns an initial investment and a final value into the return on investment — the net gain expressed as a percentage of what the position cost. This one also prints the ROI multiple, the annualized ROI when you supply a holding period, the average net gain per year and the payback period, plus a Profit, Loss or Break-even badge, so one pair of numbers answers several questions.
What is the ROI formula?
The ROI formula is (final value − total cost) ÷ total cost × 100, where the total cost is the initial investment plus any extra cost per year multiplied by the holding period. In the opening example the equation line reads (15000 − 10000) ÷ 10000 × 100 = 50%, and a position that costs 1000 a year to hold over 3 years would carry that 3000 inside the denominator instead of hidden outside it.
What is annualized ROI, and when should I use it?
Annualized ROI is the steady compound yearly rate that would take the total cost to the final value over the holding period, computed as (FV ÷ total cost)^(1 ÷ T) − 1. Reach for it whenever the options you are comparing were held for different lengths of time, because the plain percentage gives no credit to the investment that earned its return faster — the same 50% is worth far more over 3 years than over 10.
Why does the payback period say “Never”?
“Never” means the average net gain per year is zero or negative, so the returns being reported never repay the initial investment. In the loss example above the average net gain per year is -500, so there is no profit stream with which the 5000 could come back — the answer is not “wait longer”, it is that this position does not pay for itself on these numbers.
Can the ROI be negative, and is a final value of zero allowed?
Yes to both. A final value below the total cost produces a negative ROI and a Loss badge, and entering 0 as the final value is treated as a legitimate total loss rather than a field you left empty. What the tool refuses is an investment of zero, because ROI divides by the total cost and the result would be undefined.
Does ROI account for the time value of money or for risk?
The headline ROI does not: it compares two amounts and ignores when they arrived, so money returned early counts the same as money returned late, and inflation is nowhere in the arithmetic. The annualized ROI line restores the time dimension by restating the result as a compound yearly rate. Nothing in the tool measures risk, so treat the percentage as one input to a decision rather than the decision itself.
Which numbers should I use for a marketing campaign or an equipment purchase?
Use the total spend as the investment and the money the campaign or machine brought back as the final value, with its yearly running cost in the annual cost field. Be honest about attribution: the tool cannot know which sales the campaign caused, so revenue that would have arrived anyway inflates the result. For a machine, the same discipline applies — count the maintenance you will actually pay, and remember that a purchase decision also depends on risk and on the alternatives you did not choose.
Related Tools
ROI is the widest of the return measures on this site, and three narrower calculators split the same question into its parts. If the money came from advertising, the ROAS calculator reports revenue per unit of ad spend and can compare it against a break-even ratio for your margin; if the question is what it costs to win a customer, the CAC calculator puts a figure on acquisition cost; and if you want to know what that customer is worth over time, the LTV calculator turns monthly revenue, margin and churn into a lifetime value — the three numbers that decide whether a campaign’s ROI is repeatable or lucky.
Used together, they answer the follow-up question that a single ROI percentage cannot: a campaign can show a healthy return and still be unprofitable if the customers it bought churn before the acquisition cost is repaid.