🧾

NPV and IRR Calculator

Enter the initial outlay and a stream of cash flows to get NPV, IRR, profitability index and payback period, with a present-value schedule. IRR is sol
Local only 📂 Other 👤 ToolWorld 🏷️ v1.3.0
Inputs
Cash flows, one per line
Initial outlay
CNY
Discount rate
%
Periods per year

Results
Net present value
-
Internal rate of return
-
Total cash inflows
-
Profitability index
-
Payback period
-

How to Use

About this tool

A proposal promises 30k, 40k, 35k and 30k over four years against a 100k outlay. The raw sum looks like a gain, but money arriving later is worth less. Discounting each inflow to today is what answers whether the deal is worth taking.

With a 100k outlay, an 8% discount rate and inflows of 30k, 40k, 35k and 30k, NPV is about 10.6k, IRR about 13.05%, the profitability index about 1.11, and payback falls inside period 3. Raise the discount rate to 13% and NPV approaches zero, which is exactly what IRR means.

What it does

  • EntryOne cash flow per line Every number shown here maps to a field on the form, so changing one value recomputes the rest. The units are printed next to each input, which saves most of the usual mistakes.
  • FrequencyAnnual, semiannual, quarterly or monthly The main figures sit at the top of the result panel and the breakdown sits below it, so you can read the conclusion first and audit the steps afterwards. Nothing you type leaves the browser.
  • IterationIRR solved by bisection All arithmetic runs locally in the page. There is no request to a server, no account, and no saved history once the tab is closed. Use the example button if you want a set of values that is known to work.
  • IndexProfitability index included Intermediate quantities are kept in the detail table. When a total looks wrong, tracing back through those rows is much quicker than staring at the headline number alone.
  • PaybackInterpolated payback period The formula is written out in the notes rather than hidden behind a label, so you can check it against a spreadsheet or a textbook. Values are rounded only for display.
  • No rootExplicit message when IRR has no solution Inputs are validated before any calculation starts. Empty or impossible values produce a short explanation instead of a zero, a NaN, or a made-up answer.

How to use it

  1. Start by filling inenter the initial outlay The main figures sit at the top of the result panel and the breakdown sits below it, so you can read the conclusion first and audit the steps afterwards. Nothing you type leaves the browser.
  2. Next, setpaste each period on its own line All arithmetic runs locally in the page. There is no request to a server, no account, and no saved history once the tab is closed. Use the example button if you want a set of values that is known to work.
  3. Then pressenter the annual discount rate Intermediate quantities are kept in the detail table. When a total looks wrong, tracing back through those rows is much quicker than staring at the headline number alone.
  4. Read thechoose periods per year The formula is written out in the notes rather than hidden behind a label, so you can check it against a spreadsheet or a textbook. Values are rounded only for display.
  5. Finally, usepress Calculate and check the schedule Inputs are validated before any calculation starts. Empty or impossible values produce a short explanation instead of a zero, a NaN, or a made-up answer.

Things to keep in mind

  • Period capup to 120 periods All arithmetic runs locally in the page. There is no request to a server, no account, and no saved history once the tab is closed. Use the example button if you want a set of values that is known to work.
  • Signsinflows may be negative Intermediate quantities are kept in the detail table. When a total looks wrong, tracing back through those rows is much quicker than staring at the headline number alone.
  • Ratethe rate must not zero the denominator The formula is written out in the notes rather than hidden behind a label, so you can check it against a spreadsheet or a textbook. Values are rounded only for display.
  • Single rootIRR may not exist Inputs are validated before any calculation starts. Empty or impossible values produce a short explanation instead of a zero, a NaN, or a made-up answer.
  • Not recovereduncovered payback shows N/A Every number shown here maps to a field on the form, so changing one value recomputes the rest. The units are printed next to each input, which saves most of the usual mistakes.

Related

⏫︎
💬