NPV Calculator

Calculate net present value for uneven cash flows, subtract the initial cost outside NPV, and match the spreadsheet function.

Enter the rate as a percent (10 for 10%). The cost is paid today and is not discounted. The listed flows are end of period 1, 2, 3, … — the same convention as Excel’s NPV. Numbers stay in your browser.

Quick answer: with a cost paid today and inflows starting at the end of year 1:

=NPV(0.10,4000,3000,2000,2000)-10000

Do not put the −10000 inside NPV as the first value. That discounts the cost by one period and overstates NPV.

10% on 4,000, 3,000, 2,000, 2,000, cost 10,000

In Google Sheets on 12 November 2026, =NPV(0.10,4000,3000,2000,2000) returned 8984.358991872139. Subtracting the 10,000 paid today gives -1015.6410081278609. The project does not earn 10% — it is about 1,016 short in present-value terms.

The incorrect form =NPV(0.10,-10000,4000,3000,2000,2000) returned -923.310007388965, which looks less bad because the cost was treated as a year-1 outflow. The difference is exactly the missing one-period discount on the 10,000.

The same inflows, undiscounted, are the 3.5-year payback example on this site. Payback ignores the 10% rate; NPV does not. A regular annuity belongs in the present value calculator instead of a four-cell NPV.

Rate and timing

The rate and the spacing of the flows have to match. Annual inflows use an annual rate; monthly inflows use a monthly rate. A flow of 0 is a year with no cash and still occupies a period. This page does not mid-year the first outflow or apply a mid-period convention; it follows NPV as the spreadsheet defines it.

Questions that come up

What is the NPV formula in Excel or Google Sheets?

Use =NPV(rate, value1, value2, …) minus the time-zero cost. NPV discounts the first value as the end of period 1, not as time zero. For a 10,000 cost paid today and inflows of 4,000, 3,000, 2,000, and 2,000, the correct form is =NPV(0.10,4000,3000,2000,2000)-10000.

Why should I not put the initial cost inside NPV?

If you write =NPV(0.10,-10000,4000,3000,2000,2000), the 10,000 is discounted as if it were paid at the end of year 1. In the test workbook that returned -923.310007388965, not the correct -1015.6410081278609. Subtract the cost outside the function, undiscounted.

Is NPV the same as present value or as ROI?

NPV is for uneven future flows plus a cost today. PV is for a regular annuity or a single future lump sum. ROI here is an undiscounted (ending − cost)/cost and ignores timing. Use the matching calculator for each.

Oscar

Spreadsheet formulas and troubleshooting. See each article for its actual verification environment and pending author checks.

Tested in Google Sheets on 12 November 2026 (NPV(0.10,4000,3000,2000,2000) = 8984.358991872139; subtracting a 10000 cost at time zero = -1015.6410081278609. Putting the -10000 inside NPV as the first value incorrectly returned -923.310007388965). The same NPV function is in Excel 365; I did not re-run these cases in Excel this session.