Post Reply 
(17B/19B) GPM: initial payment
05-30-2024, 12:24 AM
Post: #21
RE: (17B/19B) GPM: initial payment
Hi, Gil

We need bank APY because payment growth is on yearly basis, but compounding is monthly.
If payment growth is also on a monthly basis, we don't need effective rate.

lua> s, i, pv = 1.075, 0.01, 6e4
lua> USPV = fn'i,n: -expm1(log1p(i)*-n) / i' -- = 1 / cn
lua> s1 = tvm(12, nil, -1, 0, s) -- APY to monthly rate

q = (1+s1)/(1+i) --> q-1 = (s1-i)/(1+i)

pv/pmt = (1 + q + q^2 + ... + q^59) / -c1 + q^60 / -c300

lua> tvm(60, (s1-i)/(1+i), USPV(i,300), USPV(i,1), nil) -- = pv/pmt
-128.065884851857
lua> pv / _ -- = pmt
-468.50884659412856
Find all posts by this user
Quote this message in a reply
05-30-2024, 01:08 AM (This post was last modified: 05-30-2024 01:37 AM by Gil.)
Post: #22
RE: (17B/19B) GPM: initial payment
Sorry, Albert, but I am starting to be confused now!

PV 60000
FV 0
IG%YR 7.5%
with growth of the payments during 5 years, from years 2-6, then all the following payements
remain constant at level of year 6.

But, in your example, what is your compounding/YR, C/YR?
And what is here, for your calculation, the annual nominal interest, I%/YR?
And payments always at the end/beginning of the period?

For C/Yr = 3, P/yr=12, end-payments,
I find -468.087113114.

Until your last reply, Albert, I was pretty sure of my way of calculating, only using — based on the annual given nominal rate I%YR — the corresponding effective rate, in my case here r=[(1 + 12/3/100)^3]^(1/12)=1.00985340655, for monthly payments.
Find all posts by this user
Quote this message in a reply
05-30-2024, 02:11 AM
Post: #23
RE: (17B/19B) GPM: initial payment
(05-30-2024 01:08 AM)Gil Wrote:  But, in your example, what is your compounding/YR, C/YR?
And what is here, for your calculation, the annual nominal interest, I%/YR?
And payments always at the end/beginning of the period?

P/Yr = C/Yr = 12 --> bank rate = APR 12% --> monthly rate i = 1%
Payment mode = END

(s-1) = APY 7.5%, converted to monthly rate s1 = 1.075^(1/12) - 1 ≈ 0.6045%

pmt1 = pmt = -468.50884659412856 (calculated from my previous post)
pmt2 = pmt * (1+s1)
pmt3 = pmt * (1+s1)^2
...
pmt60 = pmt * (1+s1)^59

Mortgage compounding and payment growth are in sync, with equivalent rate:

(q-1) = (1+s1)/(1+i) - 1 = (s1-i)/(1+i)

pmt61 = pmt * (1+s1)^60, and stay there until loan get paid off (pmt360).

(05-25-2024 08:40 PM)Albert Chan Wrote:  lua> r = -1 / c300 -- = pv6/pmt6
lua> for loops=1,5 do r = (d12*r*s - 1) / c12 end
lua> pv / r -- = pmt
-474.82512976281373

Confirm pmt (grow monthly until pmt61) without using (q-1), simply loops.

lua> i, s1
0.01    0.006044919024291704

lua> r = tvm(300,i,nil,1,0) -- = -1 / c300
lua> d1 = 1
lua> c1 = d1 + i
lua> for loops=1,60 do r = (d1*r*(1+s1)-1) / c1 end
lua> r
-128.06588485185708
lua> pv / r -- = pmt
-468.5088465941283
Find all posts by this user
Quote this message in a reply
05-30-2024, 03:14 AM (This post was last modified: 05-30-2024 03:55 AM by Gil.)
Post: #24
RE: (17B/19B) GPM: initial payment
Understood.

I thought wrongly that, in graduated approach,
during first year payments Pi (P1, P2... P12) = fix amount =P
during the 2nd year P13, P14... P24=fix amount = P. 1.075
etc
But, as I deduce from your explanations, it's not the case.

I have no experience on the matter, but I am surprised that the sum to be paid back should increase regularly by 7.5% during 59 (or 60) months (very complicated for the client to see the amount change every months).

Regards
Find all posts by this user
Quote this message in a reply
05-30-2024, 12:23 PM
Post: #25
RE: (17B/19B) GPM: initial payment
(05-30-2024 03:14 AM)Gil Wrote:  I thought wrongly that, in graduated approach,
during first year payments Pi (P1, P2... P12) = fix amount =P
during the 2nd year P13, P14... P24=fix amount = P. 1.075
etc
But, as I deduce from your explanations, it's not the case.

You are right, that was how GPM is normally setup.
I was just showing what happen if compounding and payment growth are in sync (monthly)

We could also solve GPM payment by assuming payment is in yearly basis.
This setup, compounding and payment growth are now in sync (yearly)

lua> K = fn'i,n: expm1(log1p(i)*n)' -- = (1+i)^n - 1
lua> USFV = fn'i,n: K(i,n)/i' -- = 1 / dn
lua> USPV = fn'i,n: -USFV(i,-n)' -- = 1 / cn

lua> s, i, pv = 1.075, 0.01, 6e4
lua> I = K(i,12) -- = APY
lua> tvm(5, (s-1-I)/(1+I), USPV(I,25), USPV(I,1), nil) -- = pv/pmt
-9.96351503776498
lua> pmt = pv / _

lua> pmt -- yearly payment
-6021.971138958528
lua> pmt / USFV(i,12) -- equivalent monthly payment
-474.82512976281373
Find all posts by this user
Quote this message in a reply
05-30-2024, 01:25 PM
Post: #26
RE: (17B/19B) GPM: initial payment
Solving the Negative Amortization problem of Graduated-Payment Loans, is an interesting read.

BEST!
SlideRule
Find all posts by this user
Quote this message in a reply
05-31-2024, 01:21 PM
Post: #27
RE: (17B/19B) GPM: initial payment
Indeed. What the article fails to mention though, is what should be done if you want both Graduated Payments and have a minimum payment equal to the interest due?
The above equations can be used to solve for any of the other parameters, so if the initial PMT is set, we can vary another one, like G% or N (the number of times the payment grows)
For the problem with
M = 30 years
PV = 60'000
I%Y = 12 per year
N=5 (growth periods)
we set
PMT = -PV*I%/12 = -600

Solve for G% to see 0.80% (0.8053452), so the last 300 payments are -600*(1+G%/100)^5 = -624.55

or, take instead
N=30 (let payments grow annually all through the loan - N=29 is the same BTW)
Now G%= 0.40% (0.3973548653), bringing the last 12 payments to
-600*(1+G%/100)^29 = -673.13

As a regular annuity, this mortgage has a constant monthly PMT of -617.17
(which, incidentally, you can also determine using this equation, setting N or G% to 0)

Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
06-01-2024, 01:12 AM
Post: #28
RE: (17B/19B) GPM: initial payment
(05-25-2024 11:52 PM)Gil Wrote:  [PMT] is plain and easy. Trickier is to find i.

Inspired by Werner's post of finding growth rate, we have the formula for i too.

x = ((s-1)-APY) / (1+APY)

tvm(N, x, USPV(i,300), USPV(i,12), nil) --> PV/PMT

Now, do this in reverse, with nil replaced by PV/PMT, solve for rate x

x = s / (1+APY) - 1
(1+x) * (1+APY) = s            // formula for x and APY have same form!

--> APY = ((s-1)-x) / (1+x)
--> (s-1) = x*(1+APY) + APY

To confirm math, we redo Werner's previous post, solve for growth rate (s-1)

lua> K = fn'i,n: expm1(log1p(i)*n)'
lua> USPV = fn'i,n: -K(i,-n)/i'
lua> i = 0.01
lua> APY = K(i,12)

lua> tvm(5, nil, USPV(i,300), USPV(i,12), -1/i) * (1+APY) + APY
0.008053452004141717
lua> tvm(30, nil, 0, USPV(i,12), -1/i) * (1+APY) + APY
0.003973548652941375
Find all posts by this user
Quote this message in a reply
06-01-2024, 10:43 AM (This post was last modified: 06-01-2024 10:49 AM by Gil.)
Post: #29
RE: (17B/19B) GPM: initial payment
Yes, Chan.

The "trouble" is that I don't think that I have some of the mentioned functions as USPV in my HP50G calculator.

And what if I included payments growth every two months in a year, but payments every month, but having quarterly compounding?

I know: it should never happen...
Find all posts by this user
Quote this message in a reply
06-01-2024, 11:19 AM (This post was last modified: 08-29-2024 11:50 AM by Werner.)
Post: #30
RE: (17B/19B) GPM: initial payment
(06-01-2024 10:43 AM)Gil Wrote:  The "trouble" is that I don't think that I have some of the mentioned functions as USPV in my HP50G calculator.

'SPFV(I%,N)=EXP(LNP1(I%/100.)*N)' DEFINE

'SPPV(I%,N)=EXP(-LNP1(I%/100.)*N)' DEFINE

'USFV(I%,N)=IFTE(I%,EXPM(LNP1(I%/100.)*N)/I%*100.,N)' DEFINE

'USPV(I%,N)=IFTE(I%,-EXPM(-LNP1(I%/100.)*N)/I%*100.,N)' DEFINE

Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
06-01-2024, 11:57 AM
Post: #31
RE: (17B/19B) GPM: initial payment
Sorry, I did not pay attention initially to your formulae.

Thanks, Werner.

Gil
Find all posts by this user
Quote this message in a reply
06-17-2024, 07:38 PM (This post was last modified: 06-18-2024 06:23 AM by Werner.)
Post: #32
RE: (17B/19B) GPM: initial payment
(05-27-2024 11:29 AM)SlideRule Wrote:  Professional Real Estate Problem Solving Using the HP 12C {2e}, © 1993, 1997

In this (excellent) book, the initial payment in a Gradual Payment Mortgage is determined using the Cash Flows functionality of the 12C. There is another way, using the basic TVM functionality:

[f] [CLEAR FIN]
[g] [END]

NP [N]
I% [i]
[STO] [PMT]
G% [CHS] [FV]
[PV] [STO] [i]
NG [N]
0 [PV]
1 [PMT]
[FV] [STO] [PMT]
NP [N]
I% [i]
0 [FV]
[PV] [STO] 0

NG [N]
G% [i]
1 [PV]
0 [PMT]
[FV] STO [PMT]
N NG NP * - [N]
I% [i]
0 [PV]
[FV]
N [N]
0 [PMT]
[PV]

[RCL] 0 [-] PV [X<>Y] [/]

An example:
Suppose you need to determine the initial payment for the following Mortgage:

N: 360 - number of payments (30 years, 12 payments per year)
PV: 60000 - present value
I%: 1 - periodic rate (annual rate I%YR=12 divided by NP=12)
NP: 12 - number of payments per growth period (a year)
G%: 7.5 - growth rate per growth period
NG: 5 - number of growth periods = number of times the payment grows

[f] [CLEAR FIN]
[g] [END]

12 [N]
1 [i]
[STO] [PMT]
-7.5 [FV]
[PV] -> -4.599208284 [STO] [i]
5 [N]
0 [PV]
1 [PMT]
[FV] -> -4.560749934 [STO] [PMT]
12 [N]
1 [i]
0 [FV]
[PV] -> 51.33159384 [STO] 0

5 [N]
7.5 [i]
1 [PV]
0 [PMT]
[FV] -> -1.435629326 STO [PMT]
300 [N]
1 [i]
0 [PV]
[FV] -> 2697.327316
360 [N]
0 [PMT]
[PV] -> -75.03071565

[RCL] 0 [-] 60000 [X<>Y] [/] -> -474.8251297 is the initial payment.

A bit more involved, but less keystrokes ;-)

Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
06-17-2024, 08:32 PM (This post was last modified: 06-17-2024 08:33 PM by Gil.)
Post: #33
RE: (17B/19B) GPM: initial payment
I find, Werner, your formulation —certainly correct — somewhat confusing:

N: 360 - number of payment periods (30 years, 12 payments per year)
PV: 60000 - present value
I%: 1 - periodic rate (annual rate I%YR=12 divided by NP=12)
NP: 12 - number of payment periods per growth period (a year)
G%: 7.5 - growth rate per growth period
NG: 5 - number of growth periods

We might think wrongly NG=5 months, instead of 5 years, with frequency change in a year = 1.

I suppose your result -474.8251297 is due to rounding, as the correct one should be -474.8251298 (-474.825129768).
Find all posts by this user
Quote this message in a reply
06-18-2024, 06:22 AM
Post: #34
RE: (17B/19B) GPM: initial payment
(06-17-2024 08:32 PM)Gil Wrote:  I find, Werner, your formulation —certainly correct — somewhat confusing:

N: 360 - number of payment periods (30 years, 12 payments per year)
PV: 60000 - present value
I%: 1 - periodic rate (annual rate I%YR=12 divided by NP=12)
NP: 12 - number of payment periods per growth period (a year)
G%: 7.5 - growth rate per growth period
NG: 5 - number of growth periods

We might think wrongly NG=5 months, instead of 5 years, with frequency change in a year = 1.

I would've thought you'd find the calculation procedure confusing ;-)
But you are right: the word 'periods' should not be used for payments. I'll change it in the post.
So, it's 'total number of payments', 'number of payments per growth period' etc. I just did not want to be tied down to payments that grow each year only.

Quote:I suppose your result -474.8251297 is due to rounding, as the correct one should be -474.8251298 (-474.825129768).

The 12C only carries 10 digits. I'd say that 1 ULP off is not bad for a 40-year old calculator? It is a rather involved calculation, after all.

Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
06-18-2024, 08:03 AM (This post was last modified: 06-18-2024 08:04 AM by Gil.)
Post: #35
RE: (17B/19B) GPM: initial payment
The 12C only carries 10 digits. I'd say that 1 ULP off is not bad for a 40-year old calculator? It is a rather involved calculation, after all.

Yes, incredible, but one has to be an expert like you to use the right procedure and get the final result, Werner.

Regards,
Gil
Find all posts by this user
Quote this message in a reply
06-19-2024, 10:09 AM
Post: #36
RE: (17B/19B) GPM: initial payment
Made the 12C procedure a lot simpler, using an alternate version of the equation (without BEG or FV):

0 = PV/USFV(K%,NG) + PMT*(USPV(I%,NP) + USPV(I%,N-NP*NG)/USPV(K%,NG))

P := USPV(I%,NP);
K% := G%*SPPV(I%:NP)-I%*P;
PMT := -PV/(USFV(K%,NG)*(P + USPV(I%:N-NP×NG)/USPV(G(K%):NG));

17B equation:
Code:
GPM:PV/USFV(L(K%:G%×SPPV(I%:NP)-I%×L(P:USPV(I%:NP))):NG)+PMT×(G(P)+USPV(I%:N-NP×NG)/USPV(G(K%):NG))

12C procedure (reuses values on the stack, so make sure to follow it to the letter):

 variable value key            result        description
               [f] [CLEAR FIN]
               [g] [END]
 NP        12  [N]
 I%        1   [i]
               [STO] [PMT]
 G%       7.5  [CHS] [FV]
               [PV]           -4.599208284   K%
               [STO] [i]
 NG        5   [N]
           0   [PV]
           1   [PMT]
               [FV]           -4.560749934  -USFV(K%:NG)
           0   [FV]
               [PV]           -5.771336094  -USPV(K%:NG)
 N-NP*NG  300  [N]
 I%        1   [i]
               [PV]          -94.94655125   -USPV(I%:N-NP*NG)
               [X<>] [/]      16.45139872
 NP        12  [N]
               [PV]          -11.25507747   -USPV(I%:NP)
               [-] [x]      -126.3623095
 PV     60000  [X<>Y] [/]   -474.8251297    PMT


Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
06-20-2024, 07:15 AM
Post: #37
RE: (17B/19B) GPM: initial payment
to calculate on the 12C, the following equation is actually much simpler:

0 = PV + PMT*(USPV(I%,NP)*USFV(K%,NG) + SPFV(K%,NG)*USPV(I%,N-NP*NG))

to calculate the part after PMT, look at the standard TVM equation:
 PV*SPFV(I%,N) + PMT*USFV(I%,N) + FV = 0

so we can calculate that without having to form USFV(K%,NG) or SPFV(K%,NG) explicitly, taking
i = K%
PMT = USPV(I%,NP)
PV = USPV(I%,N-NP*NG)
and solving for FV, resulting in this short procedure:

 variable value key            result        description
               [f] [CLEAR FIN]
               [g] [END]
 NP        12  [N]
 I%        1   [i]
               [STO] [PMT]
 G%       7.5  [CHS] [FV]     -7.5
               [PV]           -4.599208284   K%
          -1   [PMT]
           0   [FV]
               [PV]           11.25507747    USPV(I%:NP)
 N-NP*NG  300  [N]
               [PV]           94.94655125    USPV(I%:N-NP*NG)
               [Rv] [STO] [PMT]
               [Rv] [STO] [i]
 NG        5   [N]
               [FV]         -126.3623095
 PV     60000  [X<>Y] [/]   -474.8251297     PMT


a second example, from 'Programs for Financial Calculations' by Christian de Lisle:
'Assume a loan of £50'000 over a term of 10 years. The rate of interest is 12.5% and the annual increments are at 5%. Find the first payment if the payments are annual and rise each year for the full term of 10 years.'

 variable value key            result        description
               [f] [CLEAR FIN]
               [g] [END]
 NP         1  [N]
 I%       12.5 [i]
               [STO] [PMT]
 G%         5  [CHS] [FV]     -5
               [PV]           -6.666666667   K%
           -1  [PMT]
            0  [FV]
               [PV]            0.888888889   USPV(I%:NP)
 N-NP*NG    0  [N]
               [PV]            0             USPV(I%:N-NP*NG)
               [Rv] [STO] [PMT]
               [Rv] [STO] [i]
 NG        10  [N]
               [FV]           -6.645175663
 PV     50000  [X<>Y] [/]     -7524.255571   PMT



I guess I'm done now ;- I would be surprised if it could be simplified any further.
Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
06-20-2024, 01:28 PM (This post was last modified: 06-20-2024 01:29 PM by Gil.)
Post: #38
RE: (17B/19B) GPM: initial payment
Great!, but in a hurry we might not remember how to solve the problem so "simply" and — without checking with Excel, for instance — have doubts regarding the found result.

Of course, there are exceptions with some HP 12 calculator masters.

Thanks, Werner, for sharing this elegant insight.

PS
With more digit precision on my HP50G, I find ...70.

Regards,
GIL
Find all posts by this user
Quote this message in a reply
06-20-2024, 02:44 PM
Post: #39
RE: (17B/19B) GPM: initial payment
To perhaps better see what I did to solve the problem on the 12C, here's an equivalent Plus42 equation, using its built-in TVM functions:

G42: PV-PMT×FV(NG:PV(NP:I%:I%:-G%:1:0):USPV(I%,N-NP×NG):USPV(I%,NP):1:0)

The PV() part calculates K%, the effective rate of applying the growth factor G% and dividing by (1+I%/100)^NP combined;
The FV() part then calculates the Present Value (yes.. even if it's FV) of a PMT of 1.00

Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 2 Guest(s)