Interest rate calculation with payment increases - Payment beginning of period vs. Payment end of Period

StanZA

New Member
Joined
Apr 17, 2014
Messages
3
Hi All,

I would like to calculate the interest rate of a Capital Lease for a situation where the the rental/instalment amounts increases annually by a certain percentage over the term of the lease.

I do not want to draw up full tables to achieve this.

In the case of payments at the end of the period I have found a solution for this provided by joeu2004 under a similar posted under:
http://www.mrexcel.com/forum/excel-questions/761879-interest-rate-calculation-payment-increases.html

However I am unable (lack the knowledge/skills) to change this VBA function to accomodate payments in advance at the beginning of the period.

Please help.



For ease of reference the solution to the payments at the end of the period was as follows:

If you would like to avoid enumerating the IRR input in column D, you could replace the IRR formula in B8 with =varpmtRate(B2,B1,B6,B7). You can also delete the array-entered formula in B11. The <acronym title="visual basic for applications" style="border-width: 0px 0px 1px; border-bottom-style: dotted; border-bottom-color: rgb(0, 0, 0); cursor: help;">VBA</acronym> function varpmtRate is:
Code:

Function varpmtRate(npmt As Long, myPV As Double, _ ByVal myPmt As Double, ByVal pmtIncr As Double) As DoubleDim i As LongReDim v(0 To npmt) As DoublemyPmt = -Abs(myPmt)pmtIncr = 1 + pmtIncrv(0) = Abs(myPV)v(1) = myPmtFor i = 2 To npmt If (i - 1) Mod 12 = 0 Then myPmt = myPmt * pmtIncr v(i) = myPmtNextvarpmtRate = WorksheetFunction.IRR(v)End Function</pre>
For comparison, download the updated file "varpmt int rate.xls" (click here) [1]. I left the IRR formula in B8, and I put the varpmtRate formula into B14.
 

Excel Facts

What is the fastest way to copy a formula?
If A2:A50000 contain data. Enter a formula in B2. Select B2. Double-click the Fill Handle and Excel will shoot the formula down to B50000.
I would like to calculate the interest rate of a Capital Lease for a situation where the the rental/instalment amounts increases annually by a certain percentage over the term of the lease.
[....]
In the case of payments at the end of the period I have found a solution for this provided by joeu2004 under a similar posted under: http://www.mrexcel.com/forum/excel-questions/761879-interest-rate-calculation-payment-increases.html [1]

However I am unable (lack the knowledge/skills) to change this VBA function to accomodate payments in advance at the beginning of the period.

My apologies, first, for not seeing your follow-up responses in the previous thread, and second, for the mistakes in "varpmt int rate.xls". Thanks for pointing out the latter.

(As I explained in a later tbarnett thread, I had focused on how Tyler said he calculated interest and overlooked the fact that this was a capital lease problem.)

The redesigned varpmtRate function below behaves more like RATE. Note that parameters have been changed to be more like RATE: varpmtRate(nper, pmt1, pmtPctIncr, pv, [fv], [type]). The defaults are also like RATE, namely: fv=0 and type=0 (in arrears).

Code:
Function varpmtRate(ByVal npmt As Long, ByVal myPmt As Double, _
    ByVal pmtIncr As Double, myPV As Double, _
    Optional myFV As Double = 0, _
    Optional ByVal pmtInAdv As Long = 0) As Double
    
    Dim i As Long
    
    myPmt = -Abs(myPmt)
    pmtIncr = 1 + pmtIncr
    If pmtInAdv <> 0 Then pmtInAdv = 1
    
    If pmtInAdv Then
        ' 1st pmt is part of 1st cash flow
        npmt = npmt - 1
        ReDim v(0 To npmt) As Double
        v(0) = Abs(myPV) + myPmt    ' subtract myPmt
    Else
        ' 1st pmt is 2nd cash flow
        ReDim v(0 To npmt) As Double
        v(0) = Abs(myPV)
    End If
    
    For i = 1 To npmt - 1
        v(i) = myPmt
        If (i + pmtInAdv) Mod 12 = 0 Then myPmt = myPmt * pmtIncr
    Next
    v(npmt) = myPmt - Abs(myFV)
    varpmtRate = WorksheetFunction.IRR(v)
End Function

The file "varpmtRate.xls" (click here) [2] demonstrates its use for both payment in advance and payment in arrears.

The simplified table below demonstrates that varpmtRate and the Excel IRR model return about the same results as Excel RATE for fixed payments both in advance and in arrears.

(In order to compare with Excel RATE, of course the payments must be fixed. The file "varpmtRate.xls" allows for payments that vary by a percentage every 12 months. It also includes a complete amortization schedule.)


A
B
C
D
E
1


Pmt In Advance
Cash Flows

Pmt In Arrears
Cash Flows
2
Principal$75,000,000.00

$75,000,000.00
3
1st Pmt$600,000.00$74,400,000.00
-$600,000.00
4
#Pmts144-$600,000.00
-$600,000.00
5
End_Principal$0.00-$600,000.00
-$600,000.00
6


-$600,000.00
-$600,000.00
7

Lease Pmt In Advance
-$600,000.00Loan Pmt in Arrears
-$600,000.00
8
varpmtRate0.203076972837080%-$600,000.000.200131944514848%-$600,000.00
9
IRR
0.203076972837080%-$600,000.000.200131944514848%-$600,000.00
10
RATE
0.203076972837116%-$600,000.000.200131944514909%-$600,000.00
11


-$600,000.00
-$600,000.00
12
Last CF row146-$600,000.00
-$600,000.00
::::
:::::::::::::
:::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::
146


-$600,000.00
-$600,000.00

<tbody>
</tbody>

Formulas:
B8: =varpmtRate(B4,-B3,0%,B2,-B5,1)
B9: =IRR(C3:INDEX(C:C,B12))
B10: =RATE(B4,-B3,B2,-B5,1)
B12: {=MATCH(2,1/C1:C362)}
C3: =B2-B3
C4: =IF(ROWS($C$3:C4)>$B$4,"",-$B$3-IF(ROWS($C$3:C4)=$B$4,$B$5))

D8: =varpmtRate(B4,-B3,0%,B2,-B5)
D9: =IRR(E2:INDEX(E:E,B12))
D10: =RATE(B4,-B3,B2,-B5)
E2: =B2
E3: =IF(ROWS($E$3:E3)>$B$4,"",-$B$3-IF(ROWS($E$3:E3)=$B$4,$B$5))

C4 is copied down through C362, and E3 is copied down through E362.


-----
[1] http://www.mrexcel.com/forum/excel-questions/761879-interest-rate-calculation-payment-increases.html

[2] https://app.box.com/s/gncoio8ejkwjf25pcxb7
 
Upvote 0

Forum statistics

Threads
1,216,102
Messages
6,128,846
Members
449,471
Latest member
lachbee

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top