A net present value (NPV) includes all cash flows including initial cash flows such as the cost of purchasing an asset, whereas a present value does not. The simple present value is useful where the negative cash flow is an initial one-off, as when buying a security (see DCF valuation for more detail)
A discount rate needs to be used to adjust for risk and time value, and it is applied like this:
NPV = CF0 + CF1/(1+r) + CF2/(1+r)2 + CF3/(1+r)3 ...
where CF 1 is the cash flow the investor receives in the first year, CF2 the cash flow the investor receives in the second year etc.
and r is the discount rate.
The series will usually end in a terminal value, which is a rough estimate of the value at that point. It is usual for this to be sufficiently far in the future to have only a minor effect on the NPV, so a rough estimate,usually based on a valuation ratio, is acceptable.
Periods other than an year could be used, but the discount rate needs to be adjusted. Assuming we start from an annual discount rate then to adjust to another period we would use, to get a rate i, given annual rate r, for a period x, where x is a fraction (e.g., six months = 0.5) or a multiple of the number of years:
i + 1 = (r + 1)x
To use discount rates that vary over time (so r1 is the rate in the first period, r2 = rate in the second period etc.) we would have to resort to a more basic form of the calculation:
NPV = CF0 + CF1/(1+r1) + CF2/((1+r1) ×(1+r2)) + CF3/((1+r1) ×(1+r2) ×(1+r3)) ...
This would be tedious to calculate by hand but is fairly easy to implement in a spreadsheet.
Weaknesses of NPV
The NPV calculation is very sensitive to the discount rate: a small change in the discount rates causes a large change in the NPV. As the estimate of the appropriate discount rate is uncertain, this makes NPV numbers very uncertain (see CAPM and WACC).
An NPV also often relies on uncertain forecasts of future cash flows. How much of a problem this is obviously depends on how uncertain the forecasts are. One solution to both problems is to calculate a range of NPV numbers using different discount rates and forecasts, so that one can generate, for example, best, worst and median case NPV numbers, or even a probability distribution for the NPV (possibly using something like a Monte-Carlo approach).