Jul 01 2022 02:28 PM - edited Jul 01 2022 03:06 PM
Hello All!
This relates to a Mortgage Payment scenario. Calculation of the payment ( PMT(Int/12,Term,-Bal.) ) then illustrating the effects of an additional dollar amount being applied to the principle only on a monthly basis to accelerate the payoff term. I have built entire spreadsheets to accomplish this and they work beautifully. In this case I need a one formula in one cell solution to accomplish this as it will need to be available to hundreds, maybe thousands of rows each with its own specific criteria under which this calculation will need to be applied. I have included an attachment of a sample of the more spread out version of the calculation with the cheat of using my HP 17BII+ to calculate the right answer. The additional payment made each month is to be applied directly to principle as opposed to as a prepayment applied to both principle & interest.
I really appreciate your collective assistance with this one!
Douglas
Jul 01 2022 05:32 PM - edited Jul 02 2022 03:39 AM
Solution@Douglas997t wrote: ``The additional payment made each month is to be applied directly to principle as opposed to as a prepayment applied to both principle & interest.``
Ostensibly, the Excel formula is: =NPER(D66/12, D68 + D69, -D64)
But that results in 200.466253023484, which rounds to 200.47, not 200.48.
And IMHO, NPER should be rounded up because humans cannot count non-integer periods.
So the formula should be: =ROUNDUP(NPER(D66/12, D68 + D69, -D64), 0)
Mathematically, the amount of periodic interest is always prevBal*intRate. It is not affected by the amount of the payment.
So, any additional payment does indeed reduce only principal.
However, as principal is reduced periodically, so is the amount of interest each period.
This is demonstrated below. See the attached Excel file for formulas.
Jul 02 2022 09:04 AM
Modern Excel can look very different.
Balanceλ
= LAMBDA(p, r₀,
LAMBDA(bf, f, MAX(bf * (1 + r₀) - p, 0)
)
)
Jul 02 2022 11:39 AM
Jul 02 2022 02:05 PM
I accept that the calculation I presented is a mathematical abstraction of the problem and does not capture practical considerations; no business practice is going to work with millionths of a cent. The calculation produces an array of balance figures (columns H and M) and the other columns form no part of the calculation; they are derived for information only.
The 'simplicity' I set out to achieve is to generate each table from a single formula rather than the original 2240 individual formulas. The method is far closer to the world of professional programmer than it is to that of a normal spreadsheet end-user.
You found the use of Lambda functions off-putting. All a Lambda function does is allow one to write a formula in terms of parameters passed to it as variables. The idea is that such a formula is less prone to errors of consistency than a traditional formula copied across a range.
The end of the Einstein quote you mentioned was "... and no simpler". The challenge to be answered by traditional spreadsheet methods is "does an excess of simplicity itself create impenetrable and error-prone solutions?"
Jul 02 2022 05:52 PM - edited Jul 02 2022 10:39 PM
I apologize for the several deleted attempts to express my thoughts about your implementation. I struggled with suggestions that might make it work.
Re: ``The method is far closer to the world of professional programmer``
Speaking as a professional programmer with 40 years experience in compiler and operating system design, I can say with impunity that there is nothing about our two implementations that makes one more "professional" than the other.
On the contrary, as a professional, I pride myself on creating the simplest implementations that are readable, maintainable, efficient and, most importantly, correct.
Your implementation reminds of the challenges in the 1960-70s to write one-line APL expressions that would do the calculation of a multiline function in any other language. They were never considered "professional". In fact, the more obscure they were the better in order to challenge the reader, or so the game went.
Jul 02 2022 10:31 PM
Jul 02 2022 11:44 PM - edited Jul 03 2022 03:38 AM
@Douglas997t wrote: ``we are say 8 yrs 3 mos into the amortization schedule of a 30 yr loan``
Not a problem. We simply treat it as a new loan.
See the image and explanation below. See the attached Excel file for formulas.
(Aarrgghh! The lefthand table title has a copy-and-paste error (it should be "without" not "with"), and I am inexplicably unable to replace the image the way I want to. But I was able to update the attached file.)
As you can see, I copied the relevant data for the original loan into C75:D78.
And I added D80, which calculates the number of pmts made already. You might need to modify that formula, since your description ``we are say 8 yrs 3 mos`` is vague.
Then I redefined the data in C64:D71 for the new loan.
I also replaced the formulas in columns F:I to be similar to the more flexible formulas in columns K:N. The only difference is the pmt expression: $D$68 in column G; and $D$68+$D$69 in column L.
(I could have done that the first time. But I wanted to keep the formulas in the lefthand table simple, like what I thought you might be used to.)
The new loan in D64 is the remaining balance of the original loan after the number of payments in D80. Verify that that matches your actual numbers.
If it does not match and you want help to understand why not, I will need actual numbers for D75, D78, D80 and D64. Or you could try the most common remedy: use =ROUND(PMT(...),2) in D68 and D78.
(Errata.... I always use ROUNDUP, not ROUND (typo), for the payment to ensure that the last payment is less. It's a legal disclosure issue. You might try it both ways, just to see if you can get a match.)
Also note that the "min pmt" in D68 and D78 should the same, or nearly so, if the interest rates in D66 and D76 are the same.
In my example, they differ by 2.73E-12, an infinitesimal and usually insignificant difference due to binary arithmetic anomalies.
Jul 03 2022 03:08 AM
No need to apologise, I am perfectly happy to take positive suggestions or even criticism on board. I freely admit that I had not taken rounding into account, both because the rules to be implemented had not been specified and because I didn't want to add complexity to what is already a somewhat alien approach to spreadsheet usage.
Your background as a compiler writer did come as a little bit of a surprise, my background was scientific programming using Fortran IV, so not as fundamental in IT terms. My point in describing the approach as 'closer to the world of professional programmer' was not as a comment of professionalism but a recognition of the task as a programming exercise rather than merely the manipulation of numbers that tends to characterise normal spreadsheet use.
The formulas I had in mind were those that underpin the PMT function that, itself, generates an unrounded value. Rounding it up generates an over-payment which accumulates but I could adjust the calculation within the final payment period to compensate. I think that will happen automatically but I will check.
Something I aim to achieve, is to create a formula that can be modified to give results for variable interest rates or periods of grace etc, without touching the spreadsheet itself, other than creating a lookup table to show the changes against the period for which they scheduled. I certainly do not prioritise 'concise'; in general I am for 'readability' and avoid direct cell referencing despite it being the industry standard for spreadsheets.
Jul 03 2022 08:42 AM
This workbook shows the base payment rounded up and the interest charged rounded down to the nearest dollar. The final period adjustments are pretty large but I assume that is normal.
Nov 17 2022 02:23 PM - edited Nov 19 2022 04:56 PM
Ok, now I see I might get a specialist to help me with that. I tried to calculate how much money I would have to return to the bank if I took a five-year loan with an APR of 5-6%. If it turns out I would have to pay the bank too much money additionally, I will probably consider taking a loan from a nonbank financial organization. I want to buy a house with the help of Mortgage Advisor London, but I lack about 30% of the sum, so I want to take a loan to cover it and pay the full price to the owner. I don’t have time to save some more money because someone else will definitely buy the house.
Nov 17 2022 04:04 PM - edited Nov 18 2022 02:19 AM
@halleyhalligan wrote: ``Ok, now I see I might get a specialist to help me with that.``
Who are you referring? And what exactly do you need help with: the loan problem, or a LAMBDA solution per se?
-----
@halleyhalligan wrote: ``I tried to calculate how much money I would have to return to the bank if I took a five-year loan with an APR of 5-6%. ``
That is not sufficient information for anyone to offer a solution.
But as I commented in another late "reply" that you posted in another discussion (click here), it would be better for you to start a new discussion.
When you do, we will need to know:
1. The principal amount of the loan.
2. The actual annual interest rate. "5 to 6%" is not specific enough. Also note: APR is not necessarily the same as the annual interest rate. (I know: the terminology is confusing. Sigh.)
3. The payment frequency. Typically, it is monthly. But there are a lot of other ways to structure a loan.
4. How to convert an annual interest rate to a periodic rate (i.e. rate per payment period). If you are unsure, at least tell us the lender's country.
But in very general terms, the following works in most countries for loans with monthly payments:
=PMT(monthlyRate, numberOfMonths, -loanAmount)
Jan 12 2023 05:48 PM - edited Jan 15 2023 04:53 AM
Feb 03 2023 07:02 PM
Feb 04 2023 02:22 AM
"Essentially, I am developing a spreadsheet that acts more like full functioning coded software but done in a way that I can use somewhat simplistic Excel formulae"
Do not think of Excel formulae as, in any way, 'simplistic'. May sure you only use 365 and the formulas are expressed in terms of LAMBDA/LET combinations to create your 'apps'. Though an individual formula may become more complicated, the overall complexity of the app reduces and the workbooks can be made far more flexible in the way they adapt to new datasets.
Feb 07 2023 07:49 AM