Number of Periodic Payments (NPER)

nper(rate, pmt, pv[, fv, when])

Compute the number of periodic payments.

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

Compute the number of periodic payments.

decimal.Decimal type is not supported.

Parameters:
  • rate (array_like) – Rate of interest (per period)

  • pmt (array_like) – Payment

  • pv (array_like) – Present value

  • fv (array_like, optional) – Future value

  • when ({{'begin', 1}, {'end', 0}}, {string, int}, optional) – When payments are due (‘begin’ (1) or ‘end’ (0))

Note

The number of periods nper is computed by solving the equation::

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

but if rate = 0 then::

fv + pv + pmt*nper = 0

Examples:

If you only had $150/month to pay towards the loan, how long would it take to pay-off a loan of $8,000 at 7% annual interest?

import numpy as np
import syse as syse
print(np.round(syse.nper(0.07/12, -150, 8000), 5))
Output = 64.07335

So, over 64 months would be required to pay off the loan. The same analysis could be done with several different interest rates and/or payments and/or total amounts to produce an entire table:

syse.nper(*(np.ogrid[0.07/12: 0.08/12: 0.01/12,
                    -150: -99: 50,
                    8000: 9001: 1000]))
Output = array([[[ 64.07334877,  74.06368256],
         [108.07548412, 127.99022654]],
         [[ 66.12443902,  76.87897353],
         [114.70165583, 137.90124779]]])