背景
近期遇到的一个真实事件:
中信银行给我打电话,说我的信用卡欠款可以分期归还,手续费折算到每月大约是0.57%。手续费需要在第一个月全额支付。比如我分期12000元,则第一个月应还:
1000+(12000×0.0057×12)=1820.8
从第二个月开始,每个月还1000
另一方面,蚂蚁花呗贷款日息是万2,也就是10000块钱每日利息2块钱,月利率大约是0.6%。
问题来了,中信银行的信用卡欠款,是分期比较划算,还是从蚂蚁花呗借款(12个月,按月等额本息还款)来还划算?
我第一感觉是手续费率较低,当时正好钱荒,所以当场就办理了分期。回头一想似乎不对,于是拿出手机打开支付宝算了算:
总利息是480.03元,而前述手续费是820.80元,比较下来等额本息要少还不少利息。
其实仔细想想就能明白,无论等额本金还是等额本息还款,用来计算利息的本金都是逐月减少,但用来计算分期手续费的本金则是始终等于借款总额,这个差异点使得分期手续费率与贷款利率之间不能直接比较。
既然不能直接比较,它们之间应如何转换?本文就这个问题做了些探讨。先说下结论,在分期手续费率不高(月费率小于1%)的情况下,通常可以直接按照2倍来估算对应的贷款利率(此时等额本金、等额本息差别不大)。此结论有助于在不同资金操作方式间进行比较。
约定
月手续费率:
x
月贷款利率:
月份数:
m
总利息:
借款总数:
A
等效贷款数:
解释下借款总数与等效贷款数之间的关系:一般银行的手续费分为首月付清或者末月付清,而不是逐月支付
- 如果是首月付清手续费,则用户实际可用款项是借款总数减去手续费,而不是全部借款,此时相当于贷款
A′=A−A×m×x
- 如果是末月付清手续费,则等效贷款数等于借款总数
A′=A
基于以上讨论,引入“贷借比”
k=A′A
推导
所谓手续费率与贷款利率的“等效关系”是基于以下条件:双方所计算出来的应付总利息相等。
分期手续费率总利息:
等额本金
如果是贷款且使用等额本金方式还款,则应付利息为:
- 第1个月: A′y=A′ymm
- 第2个月: (A′−A′m)y=A′y(m−1)m
- …
- 第n个月: (A′−A′(n−1)m)y=A′y(m+1−n)m
- …
- 总利息: P=A′y[m+(m−1)+...+1]m=A′y(m+1)2
所以应有:
⟺
等额本息
等额本息下,每月还款额是
推导过程不赘述,参考 这里
总利息:
⟺
⟺
⟺
我数学知识忘得差不多了…以上表达式无法直观的看出符号解 y=f(x) ,只好求助于matlab。
代码
matlab是处理数学问题和绘制函数图像首选。
等额本金
function [y] = principal(x, m, pre_pay)
%Matching principal
if pre_pay
k = 1 - x .* m;
else
k = ones(1, length(x));
end
y = 2 * m .* x ./ (k .* (m + 1));
end
等额本息
等额本息换算公式较为复杂,(1)并非标准的多项式形式,我们做个转换:
令
t=1+y
,则(1)转换为
⟺
(2)是标准的多项式形式,可以用matlab的roots函数求解,需要过滤掉复数解以及 t=1 的解(注意到roots是求数值解,有一定误差,所以实际代码中采用了更宽松的判断条件)。
function [y] = interest(x, m, pre_pay)
%Matching interest
if pre_pay
k = 1 - x .* m;
else
k = ones(1, length(x));
end
rows = length(x);
p = zeros(rows, m + 2);
p(:, 1) = k .* m;
p(:, 2) = -(k .* m + k + x .* m);
p(:, m + 2) = k + x .* m;
y = [];
for i = 1:rows
t = roots(p(i, :));
t_rows = 1;
for j = 1:length(t)
if isreal(t(j)) && t(j) > 1 + x(i)
y(t_rows, i) = t(j) - 1;
t_rows = t_rows + 1;
end
end
end
end
结论
以分12期为例。在matlab中使用以下代码来看 y=f(x) 图形变化趋势
x = linspace(0, 0.04);
y1 = principal(x, 12, 1);
y2 = principal(x, 12, 0);
y3 = interest(x, 12, 1);
y4 = interest(x, 12, 0);
y5 = x .* 2;
figure;
plot(x, y1, 'r', x, y2, 'g', x, y3, 'b', x, y4, 'c', x, y5, 'k.'), grid;
xlabel('手续费率');
ylabel('等效利率');
legend('等额本金,手续费首月付清', '等额本金,手续费末月付清', '等额本息,手续费首月付清', '等额本息,手续费末月付清', '2倍手续费率', 'Location', 'northwest');
可以看到,等效的贷款利率通常远高于对应的分期手续费率。在分期手续费率较小时,等效贷款利率约2倍于手续费率。
开篇提到中信银行的分期月手续费率为0.57%(首月支付),那么对应的等额本息等效月利率是
>> interest(0.0057, 12, 1)
ans =
0.0111
即1.11%。