What is net present value?

The sum of future cash flows, each reduced by a discount rate to its value today, minus the upfront cost.

Net present value diagram example

Public diagram from the Machinations Community. Open it on its own page

Net present value, or NPV, is the total of all expected future cash flows from a project, each converted into today's money, minus what you spend up front. A positive NPV means the project is expected to earn more than the required return, and a negative NPV means it falls short. It matters because it lets you compare options that pay out at different times on one common scale.

How it works

The idea is that money received later is worth less than money received now, because you could invest today's money and earn a return, and because the future is uncertain. To account for this, each cash flow is divided by (1 + r) raised to the number of periods until it arrives, where r is the discount rate. NPV is then the sum of these discounted flows minus the initial investment: NPV = −C0 + Σ CFt / (1 + r)^t.

The result is sensitive to two things. A higher discount rate shrinks distant cash flows the most, so projects that pay late look worse. And the forecast cash flows themselves are uncertain, so a single NPV number hides a range. That is why NPV is best read alongside how much it moves when the inputs change.

Example

Say a company can buy a machine for 1,000 that saves 400 per year for three years, and it requires a 10% return. The discounted savings are 400 / 1.10 = 363.64, 400 / 1.21 = 330.58 and 400 / 1.331 = 300.53, which add up to about 994.75. NPV is 994.75 − 1,000 = −5.25, so at a 10% rate the machine is marginally not worth buying. At an 8% rate, the same savings are worth about 1,031, so the NPV turns positive. These are illustrative numbers only.

How to model it in Machinations

Model the up-front cost as a Drain from a cash Pool at step zero, and the savings as a Source feeding that Pool each step. Add a Register that divides each step's cash flow by (1 + rate) to the power of the step number, and a second Register that accumulates the total. Make the discount rate a Lever. Play, then move the rate up and down and watch the final NPV cross zero, and use many Plays at once if the savings are uncertain.

See net present value in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.