Investment Studio > Expressions > Functions > Financial > NPER

float nper(float interest_rate, float periodic_payment, float present_value, float future_value = 0, integer payment_timing = 0)

Returns the number of periodic payments of a fixed amount needed for an investment to have the specified present value.

interest_rate is the interest rate per payment period.

periodic_payment is the fixed amount (e.g. a bond coupon) paid for each payment period. It's positive for inflows, negative for outflows.

present_value is the initial value of the investment, e.g. the amount deposited into a bank account in order to receive a series of interest payments. It's a positive number if it represents an initial payment to the investor, a negative number if it represents a payment made by the investor (e.g. a bank deposit).

future_value is the value of the investment after the last payment period. It's a positive number if it represents an amount owed to the investor, a negative number if it represents an amount owed by the investor. If omitted, future_value defaults to 0.

payment_timing is used to specify whether payments are made at the end of each period (= 0) or at the beginning of each period (= 1). If omitted, it defaults to 0.

Examples

You deposit USD 1000 into a bank account paying 5% annual interest. The number of years before your money has doubled is

=nper(5%, 0, -1000, 2000)

» 14.21

You issue a bond with face value USD 100 and semiannual 7% coupon (i.e. a fixed payment of USD 7 every six months). On expiration, you pay back the face value to the holder. For the bond to have a present value of USD 250, the time to expiration must be

=nper(0, -7, 250, -100)

» 21.43 six-month periods, or 10.7 years.

See also fv, ipmt, pmt, ppmt, pv, rate.