Next: Related Financial Functions, Previous: Future Value, Up: Financial Functions

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.