2. 信贷业务基础
在动手写计息与还款计划引擎之前,必须先建立对信贷业务本身的准确认知。引擎不是孤立存在的计算器,它嵌在“产品定义—放款—计息—还款—结清”的完整链路中。本节从产品类型、放款流程、计息方式、还款方式四个维度梳理业务基础,并明确引擎在系统中的定位。
一、信贷产品类型:决定引擎的输入形态
不同信贷产品对计息和还款的要求差异极大,产品类型是引擎参数的第一来源。常见分类维度如下:
- 按担保方式:信用贷款、保证贷款、抵押贷款、质押贷款。抵押类通常涉及放款前的抵押登记状态校验。
- 按资金用途:消费贷、经营贷、装修贷、车抵贷等,用途影响受托支付与资金流向监控。
- 按还款结构:一次性还本付息、等额本息、等额本金、先息后本、随借随还。
- 按计息周期:按日计息、按月计息、按年计息,以及是否支持提前还款重算。
- 按放款方式:一次性放款、循环额度、分笔放款。
产品类型最终会落到一组可配置参数上,例如利率类型、计息基准、还款频率、宽限期、罚息规则。引擎读取这些参数后,才能生成正确的还款计划。
二、放款流程:引擎介入的关键节点
放款不是简单的“打钱”,而是一串有状态、有校验的业务动作。典型流程如下:
- 授信审批通过:确定额度、利率、期限、还款方式。
- 合同签订:生成借款合同,明确计息起算日、还款日规则。
- 放款申请与审核:校验放款条件,如抵押登记、保险、受托支付凭证。
- 放款记账:生成放款交易,确定起息日、到期日、首期还款日。
- 还款计划生成:引擎根据产品参数和放款金额、日期,计算每期应还本金、利息、总额。
- 资金划付:通过支付通道将资金划入借款人账户或受托支付对象。
关键点:放款记账完成的那一刻,引擎必须已经能输出完整的还款计划。起息日、到期日、首期还款日三者之间的偏移规则,是引擎最容易出错的参数之一。
三、计息方式:利息如何被算出来
计息方式决定了利息的计算逻辑,常见有以下几类:
- 单利:利息 = 本金 × 利率 × 期限,不将已产生利息计入本金。
- 复利:利息计入本金再计息,多见于逾期罚息或特定产品。
- 按日计息:利息 = 本金 × 日利率 × 实际占用天数,日利率通常由年利率除以计息基准得出。
- 按月计息:以整月为单位,不足整月部分按日折算或按约定规则处理。
计息基准(如 360 天或 365 天)直接影响日利率。同一笔贷款,基准不同,利息结果可能不同。引擎必须把计息基准作为显式参数,而不是硬编码。
日利率 = 年利率 / 计息基准
利息 = 本金 × 日利率 × 计息天数
计息天数 = 还款日 - 起息日(按实际天数或约定规则)
四、还款方式:计划表的生成逻辑
还款方式决定了每期本金和利息的分布。以下是四种主流方式的对比:
| 还款方式 | 每期本金 | 每期利息 | 适用场景 |
|---|---|---|---|
| 等额本息 | 逐期递增 | 逐期递减 | 消费贷、房贷,月供固定 |
| 等额本金 | 固定不变 | 逐期递减 | 经营贷,前期压力大 |
| 先息后本 | 末期一次性 | 每期按剩余本金 | 短期周转,月供低 |
| 一次性还本付息 | 到期一次性 | 到期一次性 | 极短期借款 |
以等额本息为例,每期还款额固定,但内部结构在变化。引擎需要按公式逐期推导,而不是简单平均。
每期还款额 = 本金 × 月利率 × (1+月利率)^期数 / ((1+月利率)^期数 - 1)
每期利息 = 剩余本金 × 月利率
每期本金 = 每期还款额 - 每期利息
五、引擎在业务中的定位
计息与还款计划引擎位于信贷系统的核心计算层,向上承接产品配置和放款指令,向下输出还款计划、利息明细和试算结果。它不是数据库,也不是交易系统,而是一个可复用的计算服务。
引擎的典型职责包括:
- 根据产品参数和放款信息生成还款计划表。
- 支持提前还款、部分还款、逾期罚息的重算。
- 提供试算接口,供前端展示“每月还多少”。
- 输出标准化的计划明细,供账务、催收、报表消费。
引擎设计的第一原则:把“业务规则”和“计算逻辑”分离。产品参数是配置,计算公式是引擎能力。这样新增产品时只需改配置,不必改代码。
六、常见误区与复盘
在实际项目中,以下误区反复出现:
- 起息日与放款日混淆:放款日不等于起息日,起息日可能延后一天或按约定规则确定。
- 首期还款日计算错误:首期可能不足整月,需要按实际天数计息,不能直接套用整月公式。
- 计息基准不统一:年利率转日利率时,360 和 365 混用会导致利息偏差。
- 提前还款规则缺失:未定义是否重算剩余期数、是否收取违约金,导致引擎无法处理。
- 四舍五入累积误差:每期利息四舍五入后,末期需要做尾差调整,否则总利息对不上。
尾差处理是还款计划引擎的经典难点。建议在最后一期对剩余本金和利息做一次强制平账,确保计划表合计等于合同总额。