Siebel VB Language Reference > VB Language Reference >

Rate Function

This standard VB function returns the interest rate per period for an annuity or a loan.


Rate(nper, pmt, pv, fv, due, guess)



The total number of payment periods


The constant periodic payment per period


The present value of the initial lump sum amount paid (as with an annuity) or received (as with a loan)


The future value of the final lump sum amount required (as with a savings plan) or paid (0 as with a loan)


0 if due at the end of each period

1 if due at the beginning of each period


An estimate for the rate returned


The interest rate per period.


In general, a guess of between 0.1 (10 percent) and 0.15 (15 percent) would be a reasonable value for guess.

Rate is an iterative function: It improves the given value of guess over several iterations until the result is within 0.00001 percent. If it does not converge to a result within 20 iterations, it signals failure.


This example finds the interest rate on a 10-year $25,000 annuity that pays $100 per month.

Sub Button_Click
   Dim aprate
   Dim periods
   Dim payment, annuitypv
   Dim annuityfv, due
   Dim guess
   Dim msgtext as String
   periods = 120
   payment = 100
   annuitypv = 0
   annuityfv = 25000
   guess = .1
   ' Assume payments are made at end of month
   due = 0
   aprate = Rate(periods,-payment,annuitypv,annuityfv, _
   due, guess)
   aprate = (aprate * 12)
   msgtext = "The percentage rate for a 10-year $25,000 _
   msgtext = msgtext & "that pays $100/month has "
   msgtext = msgtext & "a rate of: " & Format(aprate, _
End Sub

See Also

FV Function
IPmt Function
IRR Function
NPV Function
Pmt Function
PPmt Function
PV Function

Siebel VB Language Reference