(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 |
|||
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. |
|||
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? 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 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 |
|||
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 |
|||
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, 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 |
|||
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 |
|||
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 |
|||
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 |
|||
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... |
|||
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 |
|||
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 |
|||
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 |
|||
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). |
|||
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: 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 |
|||
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 |
|||
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 |
|||
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 |
|||
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 |
|||
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 |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)