ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

用 Python 拆解等额本息的利息时间分布:前 10 年付掉一半利息

用 Python 拆解等额本息的利息时间分布:前 10 年付掉一半利息 等额本息的月供全程固定但月供里利息与本金的占比每月都在变期初利息占比高、本金占比低越往后反过来。这个占比到底怎么变、总利息在 30 年里如何分布凭感觉很难说清。本文由深工优居依据公开的还款公式整理用 Python 对 200 万元本金、年利率 3.05%、360 期的等额本息做逐期模拟把利息的时间分布完整拆开。## 一、月供结构与首期拆分等额本息月供按年金公式计算。每月利息等于当期剩余本金乘以月利率月供减去利息即为当月归还的本金。P 2_000_000 # 本金 200 万元 annual 0.0305 # 年利率 3.05% r annual / 12 n 360 def annuity(P, r, n): return P * r * (1 r) ** n / ((1 r) ** n - 1) m annuity(P, r, n) first_interest P * r first_principal m - first_interest print(f月供{m:,.2f} 总利息{m*n-P:,.2f}) print(f第1期: 利息{first_interest:,.2f} 本金{first_principal:,.2f} f利息占月供{first_interest/m*100:.2f}%)运行结果月供8,486.11 总利息1,054,999.17 第1期: 利息5,083.33 本金3,402.78 利息占月供59.90%首期 8,486.11 元的月供里利息占 5,083.33 元、本金只占 3,402.78 元利息占比接近六成。这就是等额本息期初「还得不少、本金降得慢」的直接原因。## 二、逐期模拟累计利息的里程碑逐期循环模拟摊还过程在 60、120、180、240、300 期各设一个观察点记录累计利息与剩余本金。bal P total_int 0.0 marks {60: None, 120: None, 180: None, 240: None, 300: None, 360: None} for k in range(1, n 1): interest bal * r principal m - interest bal - principal total_int interest if k in marks: marks[k] (total_int, bal) T total_int for k, (cum, balm) in marks.items(): print(f第{k}期累计: 利息{cum:,.2f} 占总利息{cum/T*100:.2f}% f剩余本金{balm:,.2f})运行结果第60期累计: 利息288,911.50 占总利息27.38% 剩余本金1,779,744.97 第120期累计: 利息541,587.26 占总利息51.34% 剩余本金1,523,254.21 第180期累计: 利息752,065.91 占总利息71.29% 剩余本金1,224,566.32 第240期累计: 利息913,405.27 占总利息86.58% 剩余本金876,739.16 第300期累计: 利息1,017,521.11 占总利息96.45% 剩余本金471,688.47 第360期累计: 利息1,054,999.17 占总利息100.00% 剩余本金0.00第 10 年末第 120 期累计利息 541,587.26 元恰好超过总利息 1,054,999.17 元的一半达到 51.34%而此时 200 万元本金只还掉约 47.68 万元。与之对应第 300 期之后整个后段 60 期只贡献 3.55% 的利息。## 三、每 5 年一段的利息分布把 360 期按每 60 期5 年分成 6 段统计各段利息占总利息的比例。band {} bal P for k in range(1, n 1): interest bal * r bal - (m - interest) b (k - 1) // 60 band[b] band.get(b, 0.0) interest for b in range(6): seg band[b] print(f第{b*51}~{(b1)*5}年: 利息{seg:,.2f} 占比{seg/T*100:.2f}%) print(f前10年合计占比{(band[0]band[1])/T*100:.2f}%) print(f后10年合计占比{(band[4]band[5])/T*100:.2f}%)运行结果第1~5年: 利息288,911.50 占比27.38% 第6~10年: 利息252,675.77 占比23.95% 第11~15年: 利息210,478.64 占比19.95% 第16~20年: 利息161,339.37 占比15.29% 第21~25年: 利息104,115.84 占比9.87% 第26~30年: 利息37,478.06 占比3.55% 前10年合计占比51.34% 后10年合计占比13.42%六个段的占比依次为 27.38%、23.95%、19.95%、15.29%、9.87%、3.55%逐段递减且降幅越来越陡。前 10 年合计 51.34%后 10 年合计仅 13.42%首尾两段的差距接近 7.7 倍。## 四、结论利息占比逐年走低的原因只有一个它按剩余本金计息而剩余本金在月供的持续摊还下逐期下降。对这一分布的实际理解是——等额本息前期的月供里利息占比高这是摊还结构决定的数学性质越到后期同样一笔月供中归还本金的份额越高。中途结清的场景可结合此分布估算已付利息与剩余本金提前还款的测算方法可参见本系列此前文章。以上测算基于 3.05% 的单一利率假设实际执行利率与还款日期以按揭合同约定为准。本文测算过程由深工优居依据公开资料整理并复核代码可直接复现文中全部数字。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进