「行者按:以前寫的一篇舊文,刪去『題後話』,從而略去了『在償付mortgage的中間有時會一次性付清(包括refinance),這時的計算略有不同。』等諸多文字。」
略談按揭貸款的利息計算
關東行者
在美國買大宗商品,例如房屋和汽車,除非一次支付,一般都是從金融機構(例如銀行)做抵押貸款(華人世界一般稱為“按揭”)。以買房為例,抵押貸款(Mortgage Loan):
A mortgage loan is a loan secured by real property through the use of a mortgage note which evidences the existence of the loan and the encumbrance of that realty through the granting of a mortgage which secures the loan. However, the word mortgage alone, in everyday usage, is most often used to mean mortgage loan.
在美國, 一個mortgage loan一般是通過amortization方式來償付的。即, 在一定期限內,按月支付定量的款項(包括本金和利息),期滿付清。
The most common way to repay a secured mortgage loan is to make regular payments of the capital (also called the principal) and interest over a set term. This is commonly referred to as (self) amortization in the U.S.
買汽車時,用法相同。下麵的計算雖然是針對買房,但對購買汽車貸款一樣適用。
一,常規算法:
筆者順手用perl寫個程序來演算結果,下麵以perl的樣式羅列主要思路。
這裏$term是年限(折合成月就是$term*12,記成$n),例如30年;$rate是年利率,例如5.25%(記成0.0525;折合成月率就是$rate/12,記成$m_rate);$loan是實際貸款額,例如100,000美元。
每月供款額記成$mortgage,第$i次付款後的貸款餘額用p($i)表示,則演算(這裏的*是乘法運算,類似x;**是乘方運算,類似^;/是除法運算,類似÷)的大致過程是:
p(0) = $loan;
p(1) = P(0)*(1+$m_rate) - $mortgage;
p(2) = p(1)*(1+$m_rate) - $mortgage;
p($i) = p($i-1)*(1+$m_rate) - $mortgage;
p($n) = p($n-1)*(1+$m_rate) - $mortgage;
根據等比數列求和(sum of the numbers in a geometric progression),可以得到期滿時:
p($n) = $loan*(1+$m_rate)**$n - $mortgage*(((1+$m_rate)**$n) - 1)/$m_rate;
因為p($n) = 0(“付清”),所以:
$mortgage = $loan*$m_rate/(1-(1+$m_rate)**(0-$n));
這就是每月應付款。
根據演算,基於本金餘額(balance),還可以推出每月支付的本金和利息(在下麵的例子中,mortgage = 月付本金+月付利息)。下麵是三個例子(第三個買車的例子,因為2年期比較短,所以給出了所有的結果;前兩個太長,隻給出三行作為參考):
(A) $loan = 100000.00, $rate = 0.0525, $term = 30;
Balance = $99885.30 after 1 payment(s) while mortgage: $552.20 = $114.70 + $437.50
Balance = $99770.09 after 2 payment(s) while mortgage: $552.20 = $115.21 + $437.00
...
Balance = $98710.29 after 11 payment(s) while mortgage: $552.20 = $119.82 + $432.38
(B) $loan = 533000.00, $rate = 0.0425, $term = 30;
Balance = $532265.67 after 1 payment(s) while mortgage: $2622.04 = $734.33 + $1887.71
Balance = $531528.74 after 2 payment(s) while mortgage: $2622.04 = $736.93 + $1885.11
...
Balance = $524777.78 after 11 payment(s) while mortgage: $2622.04 = $760.76 + $1861.28
(C) $loan = 16077.83, $rate = 0.019, $term = 2;
Balance = $16077.83 after 0 payment(s) while mortgage: $683.25 = $0.00 + $683.25
Balance = $15420.04 after 1 payment(s) while mortgage: $683.25 = $657.79 + $25.46
Balance = $14761.20 after 2 payment(s) while mortgage: $683.25 = $658.83 + $24.42
Balance = $14101.33 after 3 payment(s) while mortgage: $683.25 = $659.88 + $23.37
Balance = $13440.41 after 4 payment(s) while mortgage: $683.25 = $660.92 + $22.33
Balance = $12778.44 after 5 payment(s) while mortgage: $683.25 = $661.97 + $21.28
Balance = $12115.42 after 6 payment(s) while mortgage: $683.25 = $663.02 + $20.23
Balance = $11451.36 after 7 payment(s) while mortgage: $683.25 = $664.07 + $19.18
Balance = $10786.24 after 8 payment(s) while mortgage: $683.25 = $665.12 + $18.13
Balance = $10120.07 after 9 payment(s) while mortgage: $683.25 = $666.17 + $17.08
Balance = $9452.84 after 10 payment(s) while mortgage: $683.25 = $667.23 + $16.02
Balance = $8784.56 after 11 payment(s) while mortgage: $683.25 = $668.28 + $14.97
Balance = $8115.22 after 12 payment(s) while mortgage: $683.25 = $669.34 + $13.91
Balance = $7444.82 after 13 payment(s) while mortgage: $683.25 = $670.40 + $12.85
Balance = $6773.36 after 14 payment(s) while mortgage: $683.25 = $671.46 + $11.79
Balance = $6100.84 after 15 payment(s) while mortgage: $683.25 = $672.52 + $10.72
Balance = $5427.25 after 16 payment(s) while mortgage: $683.25 = $673.59 + $9.66
Balance = $4752.59 after 17 payment(s) while mortgage: $683.25 = $674.66 + $8.59
Balance = $4076.87 after 18 payment(s) while mortgage: $683.25 = $675.72 + $7.52
Balance = $3400.08 after 19 payment(s) while mortgage: $683.25 = $676.79 + $6.46
Balance = $2722.21 after 20 payment(s) while mortgage: $683.25 = $677.87 + $5.38
Balance = $2043.27 after 21 payment(s) while mortgage: $683.25 = $678.94 + $4.31
Balance = $1363.26 after 22 payment(s) while mortgage: $683.25 = $680.01 + $3.24
Balance = $682.17 after 23 payment(s) while mortgage: $683.25 = $681.09 + $2.16
Balance = $0.00 after 24 payment(s) while mortgage: $683.25 = $682.17 + $1.08
二,按月定額多付算法:
如果貸款者每月比規定的$mortgage多支付一些錢(記作$overpay,直接從balance裏扣除),還可以加速償還本金,可以提前付清所有的貸款(有的貸款有條件限製,請谘詢提供貸款的銀行。),從而減少非常多本該付的利息。
假設在第$i ($i >= 1)次時開始多支付$overpay(當然每次的$overpay可以不同,但計算複雜些):
p($i) = p($i-1)*(1+$m_rate) - $mortgage - $overpay;
p($i+1) = p($)*(1+$m_rate) - $mortgage - $overpay;
p($i+$j) = p($i+$j)*(1+$m_rate) - $mortgage - $overpay;
p($i+$j) = $loan*(1+$m_rate)**($i+$j) - $mortgage*((1+$m_rate)**($i+$j) - 1)/$m_rate - $overpay*((1+$m_rate)**($j+1) - 1)/$m_rate;
可以看出通項公式:
p($k) = $loan*(1+$m_rate)**($k) - $mortgage*((1+$m_rate)**($k) - 1)/$m_rate - $overpay*((1+$m_rate)**($k-$i+1) - 1)/$m_rate;
例如$i = 1(即從一開始就多支付)時:
p($k) = $loan*(1+$m_rate)**($k) - ($mortgage + $overpay)*((1+$m_rate)**($k) - 1)/$m_rate;
還以前麵的三個例子為例:
(A) $loan = 100000.00, $rate = 0.0525, $term = 30, $overpay = 276.80, $i = 1;
Balance = $99608.50 after 1 payments(s) while mortgage: $552.20 = $114.70 + $437.50
Balance = $99215.28 after 2 payments(s) while mortgage: $552.20 = $116.42 + $435.79
…
Balance = $95598.01 after 11 payments(s) while mortage: $552.20 = $132.17 + $420.03
(B) $loan = 533000.00, $rate = 0.0425, $term = 30, $overpay = 276.80, $i = 1;
Balance = $531988.87 after 1 payments(s) while mortage: $2622.04 = $734.33 + $1887.71
Balance = $530974.16 after 2 payments(s) while mortage: $2622.04 = $737.91 + $1884.13
...
Balance = $521678.49 after 11 payments(s) while mortage: $2622.04 = $770.72 + $1851.32
(C) $loan = 16077.83, $rate = 0.019, $term = 2, $overpay = 276.80, $i = 1;
Balance = $16077.83 after 0 payments(s) while mortgage: $683.25 = $-276.80 + $960.05
Balance = $15143.24 after 1 payments(s) while mortgage: $683.25 = $657.79 + $25.46
Balance = $14207.17 after 2 payments(s) while mortgage: $683.25 = $659.27 + $23.98
Balance = $13269.61 after 3 payments(s) while mortgage: $683.25 = $660.75 + $22.49
Balance = $12330.57 after 4 payments(s) while mortgage: $683.25 = $662.24 + $21.01
Balance = $11390.05 after 5 payments(s) while mortgage: $683.25 = $663.73 + $19.52
Balance = $10448.03 after 6 payments(s) while mortgage: $683.25 = $665.21 + $18.03
Balance = $9504.53 after 7 payments(s) while mortgage: $683.25 = $666.71 + $16.54
Balance = $8559.53 after 8 payments(s) while mortgage: $683.25 = $668.20 + $15.05
Balance = $7613.03 after 9 payments(s) while mortgage: $683.25 = $669.70 + $13.55
Balance = $6665.04 after 10 payments(s) while mortgage: $683.25 = $671.19 + $12.05
Balance = $5715.54 after 11 payments(s) while mortgage: $683.25 = $672.70 + $10.55
Balance = $4764.54 after 12 payments(s) while mortgage: $683.25 = $674.20 + $9.05
Balance = $3812.04 after 13 payments(s) while mortgage: $683.25 = $675.70 + $7.54
Balance = $2858.03 after 14 payments(s) while mortgage: $683.25 = $677.21 + $6.04
Balance = $1902.50 after 15 payments(s) while mortgage: $683.25 = $678.72 + $4.53
Balance = $945.47 after 16 payments(s) while mortgage: $683.25 = $680.24 + $3.01
根據演算,還可以推算出提前多少個月就可付清所有貸款(在買車的例子中,原計劃24個月供完款,但由於每月多供$276.80,實際上在第17次上就可完全付清。),以及少支付了多少利息(留給讀者自己計算,嗬嗬)。
(完)