Function InvestmentConstantNumberPeriods(PresentValue, FutureValue, Payment, InterestRate, Type)

InvestmentConstantNumberPeriods

The function InvestmentConstantNumberPeriods returns the number of periods for an investment based on periodic, constant payments and a constant interest rate.

InvestmentConstantNumberPeriods(
PresentValue,            ! (input) numerical expression
FutureValue,             ! (input) numerical expression
Payment,                 ! (input) numerical expression
InterestRate,            ! (input) numerical expression
Type                     ! (input) numerical expression
)


Arguments

PresentValue

The total amount that a series of future payments is worth at this moment. PresentValue must be a real number.

FutureValue

The cash balance you want to attain after the last payment is made. FutureValue must be a real number.

Payment

The value of the periodic payment for the investment. Payment must be a real number. Payment and InterestRate cannot both be $$0$$.

InterestRate

The interest rate per period for the investment. InterestRate must be a numerical expression in the range $$(-1, 1)$$.

Type

Indicates when payments are due. $$Type = 0$$: Payments are due at the end of each period. $$Type = 1$$: Payments are due at the beginning of each period.

Return Value

The function InvestmentConstantNumberPeriods returns the number of periods for an investment based on periodic, constant payments and a constant interest rate.

Note

Example

InvestmentConstantNumberPeriods is used here to determine how long it takes to save up for an investment, or pay back on a loan, given a certain amount of money that can be reserved per period.

! How long does it take to save up 100
! when paying 10 each period and an interest rate of 4%?
_p_nperSavingUp :=
InvestmentConstantNumberPeriods(
PresentValue :  0,
FutureValue  :  -100,
Payment      :  10,
InterestRate :  0.04,
type         :  0);

! How long does it take to reimburse 100
! when paying 10 each period and an interest rate of 4%?
_p_nperReimbursing :=
InvestmentConstantNumberPeriods(
PresentValue :  -100,
FutureValue  :  0,
Payment      :  10,
InterestRate :  0.04,
type         :  0);
block where single_column_display := 1, listing_number_precision := 6 ;
display { _p_nperSavingUp, _p_nperReimbursing};
endblock ;


The results in the listing file state that saving up requires less time than paying back.

_p_nperSavingUp     :=  8.578942 ;
_p_nperReimbursing  := 13.024384 ;


References

• General equations for investments with constant, periodic payments.