每个人都应该了解的金融小知识 -- 利率计算

2020-07-14 16:09:14 浏览数 (1)

背景

经常收到各个银行电话推销可以办理小额贷款/信用卡账单分期/万用金, 或者其他乱七八糟的名字的产品. 遂问电销人员, 你们这个最后年化利息多少? 这个时候, 一般销售人员都直接回避这个问题, 美其名曰: “我们不收利息, 我们只收取一定的手续费, 基于您这边的良好信用, 现在您有一笔5万的额度是可以立即提现的, 可以分1年还, 每月只需要XXXX元”

可能不太懂的同学, 听到电销的宣传, 感觉这利率还不算贵, 缺钱急用还挺划算的啊. 有可能直接被套路, 就接受了忽悠, 办理了这个贷款/分期产品.

下面我以浦发银行实际例子来算一下, 类似产品最后年化利率到底是多少.

如上图所示, 是浦发银行的贷款产品(万用金), 可以看到, 提现10000元, 分12期即分12个月还钱, 等额本息的还款方式, 每月需还款929.51元. 初略地看, 你可以会简单的认为这个利率就是, 一共还的钱为929.51*12, 然后借款本金为10000元, 那么年化利率即为: (929.51*12 - 10000)/10000*100%=11.54% 感觉似乎不那么高.

然而, 事实上, 这种算法是有问题的, 因为你借款的本金10000元, 并没有享受到1年的期限, 以后每个月都还了本金呀.

实际年化利率

我们用网上常见的房贷/借款计算器来算一下, 如果按照年化11.54%来计算, 每月的还款情况应该如下, 即每个月只需要等额本息还款886.34, 比929.51元少不少.

而如果每个月还款929.51元的话, 其利率远远不止11.54%, 直接仍然用那个借款计算器大概估计一下. 貌似现有的网上的工具都只能正向算, 即已知利率和贷款本金计算还款计划表, 没有一个工具能从每月还款额反推贷款利率, 初步多次尝试得到如下逼近的结果.

可以看到, 年化利率达到了20.66%, 比之前预想想象中多了太多了. 所以电话销售在推销的时候, 往往不会直接告诉你这个年化利率, 因为太高了, 说了你可能不太会接受. 而这个利率到底是怎么计算来的呢? 为啥会有前后这么大的差别? 实际上, 你借款本金1W并没有享受整年, 而是只享受到了1个月, 因为1个月之后, 你就有归还部分本金(和利息).

推导方法

我们来正向推到一下这个等额本息利率的计算过程. 假设借款总额为A, 月利率为R, 每月还款额为M, 抓住一点, 欠款总额为本金*(1 月利率)则有:

(本来是markdown渲染的公式, 无奈结合table转成html之后太丑了, 于是就用截图的方式了, 点开后查看大图)

所以, 能得到第i个月的欠款情况, 上面的公式可以简化一下, 因为被减数M后边的是一个等比数列, 得到第i个月后, 欠款总额为

如果知道月利率R, 要计算每个月还款额也可以直接通过上面这个公式得到,

以上述浦发银行的这个例子为准, 其中A=10000, M=929.51, 代入上面的公式就可以算出R的值. 不太好直接解方程, 自己写了段小代码迭代搜索一下能算出来.

貌似这里能出一道给程序猿的面试题目了, 哈哈. 码农朋友们, 看看有哪些方法能够算出来? (敲黑板) 我这边暂时不公布自己写的这段代码, 看看大家有思路? 后面有空可以写个小程序, 供大家使用.

通过计算得到, 借款10000元, 每月还款额度为929.51元的情况下, 月利率为0.0171.7%, 年化利率即为 20.65% 基本上与文首查到的一致. 月利率出来之后, 还款计划表也就自然而然能够出来了.

代码语言:javascript复制
>>> monthRate = calcMonthRate(12, 10000, 929.51)
>>> print monthRate0.0172138214111
>>> print monthRate * 120.206565856934
>>> schedules = repaymentSchedules(12, 10000, monthRate)
>>> for s in schedules: print s
...
[1, '929.49', '172.14', '757.35', '9242.65']
[2, '929.49', '159.10', '770.39', '8472.26']
[3, '929.49', '145.84', '783.65', '7688.61']
[4, '929.49', '132.35', '797.14', '6891.47']
[5, '929.49', '118.63', '810.86', '6080.61']
[6, '929.49', '104.67', '824.82', '5255.79']
[7, '929.49', '90.47', '839.02', '4416.77']
[8, '929.49', '76.03', '853.46', '3563.31']
[9, '929.49', '61.34', '868.15', '2695.16']
[10, '929.49', '46.39', '883.10', '1812.06']
[11, '929.49', '31.19', '898.30', '913.76']
[12, '929.49', '15.73', '913.76', '-0.00']

期数

还款本息

利息

本金

剩余本金

1

929.51

172.17

757.34

9242.66

2

929.51

159.13

770.38

8472.28

3

929.51

145.87

783.64

7688.64

4

929.51

132.38

797.13

6891.51

5

929.51

118.65

810.86

6080.65

6

929.51

104.69

824.82

5255.84

7

929.51

90.49

839.02

4416.82

8

929.51

76.05

853.46

3563.35

9

929.51

61.35

868.16

2695.19

10

929.51

46.40

883.11

1812.09

11

929.51

31.20

898.31

913.78

12

929.51

15.73

913.78

0.00

可以看出, 上面的还款计划表跟最开始网上通过房贷计算器得到的一致, 我们再来看看, 招行的有个现金分期业务.

上面的分期费率12期, 0.75%(表面的月息=(3270*12-36000)/36000/12), 申请分期36000, 每月还款3270. 通过上面的公式, 我们来看一下实际的费率情况, 月息相当于1.35%, 年利率 16.2%, 比表面的年息(0.75%*12=9%)高不少.

代码语言:javascript复制
>>> calcMonthRate(12, 36000, 3270)
0.013513565063476562
>>> calcMonthRate(12, 36000, 3270)*12
0.16216278076171875

0 人点赞