7.6.3 Present Value

The b P (calc-fin-pv) [pv] command computes the present value of an investment. Like fv, it takes three arguments: pv(rate, n, payment). It computes the present value of a series of regular payments. Suppose you have the chance to make an investment that will pay $2000 per year over the next four years; as you receive these payments you can put them in the bank at 9% interest. You want to know whether it is better to make the investment, or to keep the money in the bank where it earns 9% interest right from the start. The calculation pv(9%, 4, 2000) gives the result 6479.44. If your initial investment must be less than this, say, $6000, then the investment is worthwhile. But if you had to put up $7000, then it would be better just to leave it in the bank.

Here is the interpretation of the result of pv: You are trying to compare the return from the investment you are considering, which is fv(9%, 4, 2000) = 9146.26, with the return from leaving the money in the bank, which is fvl(9%, 4, x) where x is the amount of money you would have to put up in advance. The pv function finds the break-even point, ‘x = 6479.44’, at which fvl(9%, 4, 6479.44) is also equal to 9146.26. This is the largest amount you should be willing to invest.

The I b P [pvb] command solves the same problem, but with payments occurring at the beginning of each interval. It has the same relationship to fvb as pv has to fv. For example pvb(9%, 4, 2000) = 7062.59, a larger number than pv produced because we get to start earning interest on the return from our investment sooner.

The H b P [pvl] command computes the present value of an investment that will pay off in one lump sum at the end of the period. For example, if we get our $8000 all at the end of the four years, pvl(9%, 4, 8000) = 5667.40. This is much less than pv reported, because we don’t earn any interest on the return from this investment. Note that pvl and fvl are simple inverses: fvl(9%, 4, 5667.40) = 8000.

You can give an optional fourth lump-sum argument to pv and pvb; this is handled in exactly the same way as the fourth argument for fv and fvb.

The b N (calc-fin-npv) [npv] command computes the net present value of a series of irregular investments. The first argument is the interest rate. The second argument is a vector which represents the expected return from the investment at the end of each interval. For example, if the rate represents a yearly interest rate, then the vector elements are the return from the first year, second year, and so on.

Thus, npv(9%, [2000,2000,2000,2000]) = pv(9%, 4, 2000) = 6479.44. Obviously this function is more interesting when the payments are not all the same!

The npv function can actually have two or more arguments. Multiple arguments are interpreted in the same way as for the vector statistical functions like vsum. See Single-Variable Statistics. Basically, if there are several payment arguments, each either a vector or a plain number, all these values are collected left-to-right into the complete list of payments. A numeric prefix argument on the b N command says how many payment values or vectors to take from the stack.

The I b N [npvb] command computes the net present value where payments occur at the beginning of each interval rather than at the end.