Net Present Value Calculator

Enter your discount rate and cash flows to calculate NPV with a row-by-row present value breakdown.

Cash flow timing
Net present value
Cash flow present value breakdown
Discounting means turning future money into today's value. The running value shows how each row changes the NPV.
First future cash flow present valueThis is the discounted value of the earliest cash flow after period 0 or after the value-as-of date.
Present value of future cash flowsThis includes only cash flows later than period 0 or the value-as-of date.
Cash in minus cash out before discountingA negative number means total cash out is greater than total cash in before discounting.
Calculation note
Did we solve your problem today?


How to use our Net Present Value Calculator

  1. Choose Cash flow timing: use Period numbers for simple period 0, period 1 entries, or Calendar dates for real payment dates.
  2. Enter Discount rate (%) as your target return; in Period numbers mode it is per period, and in Calendar dates mode it is per year.
  3. Fill the matching cash flow box: Period cash flows (period, $) or Dated cash flows (date, $), with one period or date and one dollar amount per row.
  4. If using dates, set Value as of date and Day count for dates so the calculator knows how far each cash flow is from today.
  5. Click Calculate, then sanity-check the Cash flow present value breakdown: period 0 or same-day cash flows should have a discount factor of 1, and later inflows should usually have smaller present values than their entered cash amounts when the rate is positive.
Example inputs for Net Present Value Calculator
Example inputs for Net Present Value Calculator

Definitions

Net present value: The total value today of all entered cash flows after discounting future amounts.

Discount rate: The return you want the cash flows to beat, entered as a percent.

Discounting: Turning future money into today's value by reducing it for time and the chosen discount rate.

Cash flow: Money moving in or out. Positive amounts are inflows, and negative amounts are outflows.

Period number: The timing number used in Period numbers mode. Period 0 means today, period 1 means one full period later, and so on.

Value as of date: The date that all dated cash flows are discounted back to.

Day count: The rule used to turn calendar days into part of a year for dated cash flows.

Discount factor: The multiplier applied to a cash flow to convert it into present value.

Running present value: The step-by-step total after each row's present value is added.


NPV interpretationPositive or negative net present value on one dollar scale. Values above zero add value at the chosen discount rate.NPV interpretationPositive or negative net present value on one dollar scaleNegativePositive-100000 $0 $100000 $Net present value ($)
NPV interpretation
Values above zero add value at the chosen discount rate.

Common mistakes and quick fixes

Mistake: Putting a percent sign or text in Discount rate (%) in a way that creates more than one number.
Fix: Enter one rate such as 10 or 7.5 in Discount rate (%).

Mistake: Using Calendar dates but leaving Dated cash flows (date, $) blank.
Fix: Enter rows like 2025-01-01,-10000; 2026-01-01,6000 in Dated cash flows (date, $).

Mistake: Using Period numbers but entering a date in Period cash flows (period, $).
Fix: Enter a nonnegative period number and a dollar amount, such as 0,-10000 or 2,4000.

Mistake: Setting Value as of date after a cash flow date without realizing that the row is before the valuation date.
Fix: Check Value as of date and each Dated cash flows (date, $) row so the timing matches your decision date.

Mistake: Choosing the wrong Day count for dates and expecting the same answer.
Fix: Use Actual days / 365 when you want real calendar days, or 30/360 estimate when you need the simplified 30-day-month method.

Mistake: Reading Cash in minus cash out before discounting as the same thing as Net present value.
Fix: Use Net present value for the discounted answer and Cash in minus cash out before discounting only as the simple total before discounting.


Limitations & Key Assumptions / Boundary Conditions

  • The calculator uses the cash flow signs you enter. Costs are usually negative, and money received is usually positive.
  • In Period numbers mode, Discount rate (%) is per period. If your periods are years, enter an annual rate; if your periods are months, enter a monthly rate.
  • In Calendar dates mode, Discount rate (%) is treated as an annual rate.
  • Actual days / 365 divides the real day difference by 365. It does not make a special leap-year adjustment.
  • 30/360 estimate uses a simplified 30-day-month, 360-day-year method, so it can differ from actual calendar-day timing.
  • Duplicate periods or duplicate dates are allowed and are shown as separate rows in the breakdown.
  • A positive Net present value means the entered cash flows beat the chosen discount rate, not that a project is risk-free or guaranteed.
  • Taxes, inflation changes, financing costs, reinvestment returns, and uncertain future cash flows are not modeled unless you include them directly as cash flow rows.

Methodology

How the calculator discounts cash flows

The calculator first converts Discount rate (%) to a decimal rate by dividing by 100. Discounting means each future cash flow is multiplied by a discount factor so it is stated in today's dollars.

r = discount_rate_percent / 100

discount_factor_i = 1 / (1 + r) ^ t_i

PV_i = CF_i * discount_factor_i

CF_i is the cash flow in row i. t_i is the timing for that row. In Period numbers mode, t_i is the period number. In Calendar dates mode, t_i is the year fraction from Value as of date to the row date.

Period numbers mode

For period-based cash flows, the calculator adds the present value of every entered row.

NPV = sum(CF_i / (1 + r) ^ p_i)

p_i is the period number for row i. Period 0 is not discounted because the exponent is 0, so the discount factor is 1.

Calendar dates mode

For dated cash flows, the calculator uses the row date and Value as of date to find a year fraction, then applies the same present value idea.

XNPV = sum(CF_i / (1 + r) ^ y_i)

y_i = actual_days_between_dates / 365

y_i = days360 / 360

Actual days / 365 uses the real calendar day difference. The 30/360 estimate uses this structure:

days360 = 360 * (year2 - year1) + 30 * (month2 - month1) + (day2_adjusted - day1_adjusted)

If the start day is 31, it is adjusted to 30. If the end day is 31 and the adjusted start day is 30, the end day is adjusted to 30.

Supporting totals

The present value breakdown table shows each entered cash flow, its timing, discount factor, present value, and running present value. The first future cash flow present value is the first row after period 0 or after the Value as of date.

future_pv_total = sum(PV_i where t_i > 0)

undiscounted_net_cash_flow = sum(CF_i)

Mini example

With Discount rate (%) = 10 and Period cash flows (period, $) = 0,-10000; 1,3000; 2,4000; 3,5000, the present values are -10000.00, 2727.27, 3305.79, and 3756.57. Their total Net present value is -210.37. The Present value of future cash flows is 9789.63, and Cash in minus cash out before discounting is 2000.00.


Sources