venta: (Default)
[personal profile] venta
So, sums. I can, broadly speaking, do sums. I have a degree in maths.

However, interest rate calculations have always baffled me. Sure, if you ask me to calculate 3 months compound interest at a monthly rate of x% I know what to do. However, when it comes to real examples of mortgages and credit cards, I can't work out what the sum I need to do is. I'm still slightly baffled about the interest charged me when I was a day late paying my credit card off in full in March.

Today, the BBC carried a story about a loanshark. It includes the following statement about someone who borrowed £1000:

"...to pay £49 a week over 60 weeks, making the total amount he had to
repay £2,940 at 917% APR."

Now, if we approximate 60 weeks to a year, then surely that's an annual interest rate of no more than 294%. The quoted APR isn't even in vaguely the right ballpark.

So... have I completely failed to understand APR ? (Wikipedia's page on the subject didn't really help with the definition.) Or is the BBC publishing unmitigated wank in the name of investigative journalism ?

Edit It turns out I'd failed to understand APR, and the BBC is cleared in this instance.
Page 1 of 4 << [1] [2] [3] [4] >>

Date: 2008-07-29 09:57 am (UTC)
From: [identity profile] hughe.livejournal.com
i havnt read the article yet but yes it sounds like the bbc are talking shite.

again

Date: 2008-07-29 09:58 am (UTC)
ext_8103: (Default)
From: [identity profile] ewx.livejournal.com
Surely 194% interest [again using the dodgy 60 weeks=1 year approximation], since the £2,940 presumably includes repayment of the initial £1,000. I'm not clear where they get the 917% figure from either.

Date: 2008-07-29 09:59 am (UTC)
From: [identity profile] bateleur.livejournal.com
The quoted APR isn't even in vaguely the right ballpark.

The correct answer would be (I think) 1203% APR.

Each week the interest is 4.9%, so the annual interest rate is 100*1.049^52. It only comes out as low as 294% if you're paying each week. (Which I appreciate they say is compulsory, but that doesn't affect the rate charged.)

However, I have no idea how they got 917%.

Date: 2008-07-29 10:00 am (UTC)
From: [identity profile] hughe.livejournal.com
unless they are badly refering to the interest on late payments? which would be in addition to the 2 grand?

Date: 2008-07-29 10:05 am (UTC)
From: [identity profile] mister-jack.livejournal.com
The thing to remember is that the capital decreases each month, so the APR% can be much higher than the total % paid.

Date: 2008-07-29 10:05 am (UTC)
From: [identity profile] bateleur.livejournal.com
Amendment: having seen [livejournal.com profile] ewx's answer I expect that explains the discrepancy. I'm not sure quite how one ought to do the sums in the case of fixed payments with the loan considered repaid at the end, since the consumer credit act allows you to repay in full at any time. How much would be repayable in such circumstances is not obvious (if it was the full £2940 only one month into the loan that would give an APR of over 2259754091681536350275064%).

Date: 2008-07-29 10:06 am (UTC)
chrisvenus: (Default)
From: [personal profile] chrisvenus
I got something more in that ballpark but slightly less. If the interest each week was 4.9% then he wouldn't actually be paying off any capital so its actually slightly lower than that.

I used excel and applied weekly interest after each payment and found that an interest rate of 4.83% would have it paid off completely after 60 payments and then doing the ^52 calculation you did above I got ~1165% APR. I too am confused by the 917% interest rate... I may give it more thought though. :)

Date: 2008-07-29 10:06 am (UTC)
From: [identity profile] mister-jack.livejournal.com
This online APR Calculator agrees with the BBC.

Date: 2008-07-29 10:08 am (UTC)
From: [identity profile] undyingking.livejournal.com
They're exactly right, according to this calculator.

Either that; or they also used that calculator, and it and they are both exactly wrong.

I think the trouble is that APR can be a bit of a misleading figure.

Date: 2008-07-29 10:09 am (UTC)
From: [identity profile] wechsler.livejournal.com
194% would be the correct figure only if the £1000 was paid back in bulk at the end of the year. As the victim holds much of the money for much less time than that the rate must be higher.

Which isn't to say I can actually do the right sum either.

Date: 2008-07-29 10:10 am (UTC)
From: [identity profile] undyingking.livejournal.com
Heh, great minds.

Date: 2008-07-29 10:15 am (UTC)
From: [identity profile] venta.livejournal.com
Yes, 194% is what I meant. Can do sums, honest.

Date: 2008-07-29 10:16 am (UTC)
From: [identity profile] venta.livejournal.com
I wish I knew what sum that calculator was doing. In line with other comments above (suggesting my approach was too naive), I can believe the APR is much higher than expected. I still have no idea how to work it out, though :(

Date: 2008-07-29 10:23 am (UTC)
From: [identity profile] undyingking.livejournal.com
It's written in a JS in the page itself, so you can have a peek. The gist of the calc is:

function CalcRate() {

  var p=getVal(document.input.credit.value);
  var i=getVal(document.input.initial.value);
  var a=getVal(document.input.repay.value);
  var n=Math.floor(getVal(document.input.number.value));
  var f=getVal(document.input.last.value);
  
  //Isaac's magic ...
  var x=1.0001; var fx=0; var dx=0; var z=0;
  do {
    fx=i+a*(Math.pow(x,n+1)-x)/(x-1)+f*Math.pow(x,n)-p;
    dx=a*(n*Math.pow(x,n+1)-(n+1)*Math.pow(x,n)+1)/Math.pow(x-1,2)+n*f*Math.pow(x,n-1);
    z=fx/dx; x=x-z;
    //alert("fx="+fx+"\ndx="+dx+"\nz="+z+"\nx="+x)
    }
    while (Math.abs(z)>1e-9);
  r=100*(Math.pow(1/x,m)-1);
  
  document.input.credit.value=TwoDP(p);
  document.input.initial.value=TwoDP(i);
  document.input.repay.value=TwoDP(a);
  document.input.number.value=n;
  document.input.last.value=TwoDP(f);
  document.input.apr.value=OneDP(r);
}


Of course it'll take a certain amount of being bothered to peer at taht and see what it's actually doing, JS not being the most transparent of languages...

Date: 2008-07-29 10:23 am (UTC)
From: [identity profile] feanelwa.livejournal.com
I'm so glad it's not just me who looked at that and said "that's not 917%".

I think they must be wrong. I can't see any way you'd get 917% out of those numbers.

Date: 2008-07-29 10:27 am (UTC)
From: [identity profile] battyblingtrash.livejournal.com
maths really makes me panic :/

Date: 2008-07-29 10:28 am (UTC)
From: [identity profile] venta.livejournal.com
I'm starting to think they might be right (see other comments on this thread).

I'm still struggling to find a formula for APR (so far I've found lots of online calculators, which approximately agree with the BBC), a forum post which claims there are 14 different methods of calculating APR, and a lot of sites claiming that it's a "very complex calculation".

I'm about to go and wrestle with the impenetrable Javascript above, though.

I've also learned that APR isn't always a sensible metric - particularly if (say) I've lent you a sum of money for one week, with a flat fee due, then the APR can come out as 7 digits.

I'm kind of alarmed that between so many mathematically-able people none of us seems to have much of a clue how these things are calculated; it makes me suspect that as a measure it's deliberately opaque.

Date: 2008-07-29 10:28 am (UTC)
From: [identity profile] venta.livejournal.com
I hope you don't tell the kids that ;)

Date: 2008-07-29 10:34 am (UTC)
fluffymark: (Default)
From: [personal profile] fluffymark
Looks like a Newton-Raphson method.

The iteration is just trying to find the value of x so that p=a*(x^(n+1)-x) (p is the amount borrowed, a is the repayment amount, n is the number of repayments)

Then the APR is calculated by APR=100*((x^(-m))-1), where m is the number of repayments per year.

Date: 2008-07-29 10:36 am (UTC)
From: [identity profile] undyingking.livejournal.com
wrestle with the impenetrable Javascript

I got as far as seeing that it's an iterative approximation technique and then gave up in disgust, as the underlying formula seems unlikely to be discernable from that :-(

Date: 2008-07-29 10:37 am (UTC)
From: [identity profile] undyingking.livejournal.com
There you go, I gave up in disgust too early ;-)

Date: 2008-07-29 10:39 am (UTC)
chrisvenus: (Default)
From: [personal profile] chrisvenus
Yeah, I'm struggling with that too... you can simplify by setting i and f to 0 which knocks out a few terms and makes the while loop:


do {
fx=a*(Math.pow(x,n+1)-x)/(x-1)-p;
dx=a*(n*Math.pow(x,n+1)-(n+1)*Math.pow(x,n)+1)/Math.pow(x-1,2);
z=fx/dx; x=x-z;
//alert("fx="+fx+"\ndx="+dx+"\nz="+z+"\nx="+x)
}
while (Math.abs(z)>1e-9);
r=100*(Math.pow(1/x,m)-1);


And then the last line of that basically implies to me that x = 1/weekly interest rate.

I think they are then using some kind of iterative process of approximations to find a value of x whcih satisfies the equations. It stops when z is very close to 0 which means that fx must be much much smaller than dx.

I suspect dx is worked out in some clever way. It looks vaguely like a differential and I suspect if I'd done more computer programming I'd recognise some technique of using differentials to get closer to an approximation of something...

The initial value fx basically has two terms the p on the end and the other bit. The first bit is basically decaying your repayments to simulate interest. You should note that Math.pow(x,n+1)-x)/(x-1) is a power series that can be expanded to x^n+x^(n-1)+...+x^2+x. When multiplied by a this is your repayments decaying by the interest rate. Personally I find it easier to see when you divide through by x^n and set interest = 1/x since you will then see the more intuitive series of each repayment having interest applied to it and them adding up to the total loan amount with interest added.

I've worked out now also that my discrepancy came purely from taking the first repayment off before applying interest. If I always apply interest before repayment then I get the same 917% that the BBC quote (I should also mention that in my inintial comment above I forgot to take the 100% off for the initial loan amount).

Date: 2008-07-29 10:43 am (UTC)
From: [identity profile] ulfilias.livejournal.com
60 weeks....Odd time for a loan, 60 months would make more sense as it would be 5 years, which is quite common !

Date: 2008-07-29 10:45 am (UTC)
From: [identity profile] mister-jack.livejournal.com
APR is, in principle, pretty simple and, for comparable loans, not a bad method of comparing them. But because it is iteratively applied it's mathematically difficult to determine.

Assume you have your loan and you pay an amount of interest on it every month (or week). Now assume you make no payments in that time, APR is the % increase that will produce over the course of a year.

As such, it doesn't really measure anything you'll actually pay, but as it is entirely consistent you can use it to compare different payment plans. But if you try and compare, say, a mortgage to a personal loan, the values you get back are basically bunkum.

Date: 2008-07-29 10:47 am (UTC)
chrisvenus: (Default)
From: [personal profile] chrisvenus
No, it just means I did the maths wrong. ;-)

It really is pretty easy in most ways... Especially with a spreadsheet or something that can do "goal seek" such as excel.

The basic thing as I said in my JS analysis above (though trying to explain in terms of the JS it might have got confusing) is that you work out the total amount repaid (given in this case). You then assume that each payment you make starts getting interest on it equal to the interest rate of the loan from when you pay it. You then add these up and you get a power series.

1st repayment + virtual interest = 49*interest^59
2nd repayment + virtual interest = 49*interest^58
3rd repayment + virtual interest = 49*interest^57
...
59th repayment + virtual interest = 49*interest^1
60th repayment + virtual interest = 49

You add up all these payments and then solve for sum("repayments+virtual interest") = total loan repaid and you then have an equation with one variable (interest) to solve.

The main problem is that its a power series which is why the javascript then uses approximation methods to solve it because that's usually the only practical way. That or trial and error once you know the ballpark its likely to be in - you are fortunate that the curve you are trying to solve will I think, be monotonically increasing so trial and error should allow you to narrow in relatively easily.
Page 1 of 4 << [1] [2] [3] [4] >>

Profile

venta: (Default)
venta

December 2025

S M T W T F S
 123456
78910111213
14151617181920
212223 24252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 27th, 2025 07:19 am
Powered by Dreamwidth Studios