0

I'm playing around with Australian house sales and rental data, and I've noticed that over the last couple of years, more than half of all renters are paying more than the entire owners mortgage (in March it was 77%, and so far this month a whopping 97% of renters are paying more than the whole mortgage !)

Interest rates are about to rise, which got me wondering: how would I express their rent amount, as an APR for a 30-year loan on the house sale price? I can figure it out trial-and-error manually:-

For example: Palm Beach, Gold Coast, QLD. Sold Apr 2022 $667,000. Rent=$600/week. APR=2.41%

Another example: Townsville, QLD. Sold Apr 2022 $330,000 rent= $420/week. APR=5.25%

I then tried using the formula:-

rent= principal * rate * ((1+rate)**n / ( (1+rate)**n -1 ))

in a computer iterative loop to guess the APRs, where n is the number of payments (52 weeks times 30 years = 1560) and rate is the annual % rate/52weeks ... however... doing exponentiation with big numbers on tiny numbers fails a lot (half the answers come out wrong), and "guessing in a loop" isn't the right approach anyhow :-)

I think I need a formula that includes terms which are logarithms ?

Any idea how to re-arrange a mortgage formula to the interest rate on one side ? [Yes, I spent hours in google - can't find anyone having done this before - and my high-school-math recollection of dealing with complicated exponents on one side of an equation fails me].

I need either pointers to how to simplify or re-express "irritating exponential terms" so I can shuffle things around the way I know how (e.g. divide both sides by blah), or any pointers to either answers or examples or whathaveyou that will help me figure this out correctly.

Thanks!

  • I found this: https://www.1728.org/annuity-presval-formulas.htm - except when it comes to the bit I want ("solving for rate"), they stated "forget it - use trial and error" (to paraphrase)... looks like this is harder than I thought? – OceanHydro Apr 27 '22 at 11:51

2 Answers2

0

I think you will find this question asked here before more than once over the years. And the answer is always: there is no closed form in terms of standard functions. You cannot solve
rent= principal * rate * ((1+rate)**n / ( (1+rate)**n -1 ))
for rate in closed form.

Theoretically you can do it when $n=1,2,3$ or $4$, but even for $n=3$ the answer (from Cardano's formula) is a very long formula.

The advice—to solve it numerically—is correct.


Just for "fun", when $n=3$, it is

rate =
1/6/principal*4^(1/3)*(rent*(3*3^(1/2)*(3*rent^2+14*rent*principal+27*principal
^2)^(1/2)*principal+2*rent^2+9*principal*rent+27*principal^2))^(1/3)+1/6*rent*(
3*principal+rent)/principal*4^(2/3)/(rent*(3*3^(1/2)*(3*rent^2+14*rent*
principal+27*principal^2)^(1/2)*principal+2*rent^2+9*principal*rent+27*
principal^2))^(1/3)+1/3*(rent-3*principal)/principal

and for $n=4$ it is

rate=
-1/4*(-rent+4*principal)/principal+1/12/principal*(-3*(4*rent^2*4^(2/3)*
principal+24*rent*4^(2/3)*principal^2-2*4^(1/3)*(rent*(3*3^(1/2)*(rent*(16*rent
^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-\
45*principal*rent))^(2/3)*principal-3*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent
^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*
principal*rent))^(1/3)*rent^2-8*principal*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*
rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*
principal*rent))^(1/3)*rent)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(1/3))^(1/2)+1/12*6^(1/2)/principal*((2*4^(2/3)*(-3*(4*rent^2*4^(2/3)*
principal+24*rent*4^(2/3)*principal^2-2*4^(1/3)*(rent*(3*3^(1/2)*(rent*(16*rent
^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-\
45*principal*rent))^(2/3)*principal-3*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent
^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*
principal*rent))^(1/3)*rent^2-8*principal*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*
rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*
principal*rent))^(1/3)*rent)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(1/3))^(1/2)*rent^2*principal+12*4^(2/3)*(-3*(4*rent^2*4^(2/3)*principal
+24*rent*4^(2/3)*principal^2-2*4^(1/3)*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*
rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*
principal*rent))^(2/3)*principal-3*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(1/3)*rent^2-8*principal*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(1/3)*rent)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*
rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3))^(
1/2)*rent*principal^2-4^(1/3)*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(2/3)*(-3*(4*rent^2*4^(2/3)*principal+24*rent*4^(2/3)*principal^2-2*4^(1
/3)*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+
256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(2/3)*principal-3*(rent*(
3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*
principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3)*rent^2-8*principal*(
rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*
principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3)*rent)/(rent*(3*3^(1/2)*
(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/
2)-20*rent^2-45*principal*rent))^(1/3))^(1/2)*principal+3*(rent*(3*3^(1/2)*(
rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2
)-20*rent^2-45*principal*rent))^(1/3)*(-3*(4*rent^2*4^(2/3)*principal+24*rent*4
^(2/3)*principal^2-2*4^(1/3)*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(2/3)*principal-3*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+
203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3
)*rent^2-8*principal*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*
rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3)*
rent)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^
2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3))^(1/2)*rent^2+8*
principal*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*rent*
principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3)*(-3*(4*
rent^2*4^(2/3)*principal+24*rent*4^(2/3)*principal^2-2*4^(1/3)*(rent*(3*3^(1/2)
*(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1
/2)-20*rent^2-45*principal*rent))^(2/3)*principal-3*(rent*(3*3^(1/2)*(rent*(16*
rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent
^2-45*principal*rent))^(1/3)*rent^2-8*principal*(rent*(3*3^(1/2)*(rent*(16*rent
^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-\
45*principal*rent))^(1/3)*rent)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(1/3))^(1/2)*rent+9*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*
principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*
rent))^(1/3)*rent^3+36*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+
203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3
)*rent^2*principal+72*(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203
*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3)*
rent*principal^2)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*
rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*principal*rent))^(1/3)/(-\
3*(4*rent^2*4^(2/3)*principal+24*rent*4^(2/3)*principal^2-2*4^(1/3)*(rent*(3*3^
(1/2)*(rent*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3
))^(1/2)-20*rent^2-45*principal*rent))^(2/3)*principal-3*(rent*(3*3^(1/2)*(rent
*(16*rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20
*rent^2-45*principal*rent))^(1/3)*rent^2-8*principal*(rent*(3*3^(1/2)*(rent*(16
*rent^3+88*rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*
rent^2-45*principal*rent))^(1/3)*rent)/(rent*(3*3^(1/2)*(rent*(16*rent^3+88*
rent^2*principal+203*rent*principal^2+256*principal^3))^(1/2)-20*rent^2-45*
principal*rent))^(1/3))^(1/2))^(1/2)
GEdgar
  • 111,679
  • The problem here is that with n = 1560, a modern machine's floating point math cannot solve when the principal goes beyond a million or so for ~ 2% APR. While no error results, the scale of the problem simply generates wrong answers. – OceanHydro Apr 27 '22 at 12:46
-1

"I think I need a formula that includes terms which are logarithms"

*Edit: What follows is wrong!: Indeed, take logs on both sides once you isolated the terms involving your variable in the exponents. This is because there is no algebraical way to solve for the rate.

You also may want to look up the terminus 'annuity'.

starrin
  • 62
  • 2
  • I don't know how to reduce "((1+rate)n / ( (1+rate)n -1 ))" using logs: how do I do that? – OceanHydro Apr 27 '22 at 11:38
  • Terminus annuity was a nice pointer (thanks!). It basically the exact same formula of course: C = P * r / [(1 - (1 + r)**-n)] .. and I still can't find anyone who's made the left side into " r = " ... – OceanHydro Apr 27 '22 at 11:45
  • This link: https://math.libretexts.org/Bookshelves/Applied_Mathematics/Business_Math_(Olivier)/11%3A_Compound_Interest_Annuities/11.06%3A_Annuity_Interest_Rates will teach you some insights into why there is no algebraical way to solve for the rate – starrin Apr 27 '22 at 12:08
  • You might want to look up how the MS.excels RATE function works around - or just use it. - Glad 'annuity' helped. – starrin Apr 27 '22 at 12:18