# pv¶

`numpy_financial.``pv`(rate, nper, pmt, fv=0, when='end')

Compute the present value.

Given:
• a future value, fv

• an interest rate compounded once per period, of which there are

• nper total

• a (fixed) payment, pmt, paid either

• at the beginning (when = {‘begin’, 1}) or the end (when = {‘end’, 0}) of each period

Return:

the value now

Parameters
ratearray_like

Rate of interest (per period)

nperarray_like

Number of compounding periods

pmtarray_like

Payment

fvarray_like, optional

Future value

when{{‘begin’, 1}, {‘end’, 0}}, {string, int}, optional

When payments are due (‘begin’ (1) or ‘end’ (0))

Returns
outndarray, float

Present value of a series of payments or investments.

Notes

The present value is computed by solving the equation:

```fv +
pv*(1 + rate)**nper +
pmt*(1 + rate*when)/rate*((1 + rate)**nper - 1) = 0
```

or, when `rate = 0`:

```fv + pv + pmt * nper = 0
```

for pv, which is then returned.

References

WRW

Wheeler, D. A., E. Rathke, and R. Weir (Eds.) (2009, May). Open Document Format for Office Applications (OpenDocument)v1.2, Part 2: Recalculated Formula (OpenFormula) Format - Annotated Version, Pre-Draft 12. Organization for the Advancement of Structured Information Standards (OASIS). Billerica, MA, USA. [ODT Document]. Available: http://www.oasis-open.org/committees/documents.php?wg_abbrev=office-formula OpenDocument-formula-20090508.odt

Examples

```>>> import numpy as np
>>> import numpy_financial as npf
```

What is the present value (e.g., the initial investment) of an investment that needs to total \$15692.93 after 10 years of saving \$100 every month? Assume the interest rate is 5% (annually) compounded monthly.

```>>> npf.pv(0.05/12, 10*12, -100, 15692.93)
-100.00067131625819
```

By convention, the negative sign represents cash flow out (i.e., money not available today). Thus, to end up with \$15,692.93 in 10 years saving \$100 a month at 5% annual interest, one’s initial deposit should also be \$100.

If any input is array_like, `pv` returns an array of equal shape. Let’s compare different interest rates in the example above:

```>>> a = np.array((0.05, 0.04, 0.03))/12
>>> npf.pv(a, 10*12, -100, 15692.93)
array([ -100.00067132,  -649.26771385, -1273.78633713]) # may vary
```

So, to end up with the same \$15692.93 under the same \$100 per month “savings plan,” for annual interest rates of 4% and 3%, one would need initial investments of \$649.27 and \$1273.79, respectively.