3. 坏账率业务定义:逾期天数划分与坏账口径
坏账率是消费金融与信贷业务中最核心的风险指标之一。在构建 SQL 数据质量哨兵之前,必须精确理解坏账率的业务定义——尤其是逾期天数的划分标准、坏账口径的选择以及年化/静态池两种计算逻辑。口径不一致,SQL 跑出的数字就是“假指标”。
3.1 逾期天数划分:M0 / M1 / M2 / M3+
行业通用的逾期阶段以“M + 数字”表示,M 代表 Month(月),数字代表逾期月数。不同机构对 M1 的起算点略有差异,但主流标准如下:
| 逾期阶段 | 逾期天数范围 | 业务含义 | 常见处理方式 |
|---|---|---|---|
| M0 | 0 天(未到期或当日到期) | 正常还款状态 | 不计入逾期统计 |
| M1 | 1–30 天 | 早期逾期,催收黄金期 | 短信/电话提醒 |
| M2 | 31–60 天 | 中期逾期,风险上升 | 人工催收、调额冻结 |
| M3+ | ≥61 天(或 ≥91 天,视机构定义) | 严重逾期,通常视为坏账 | 核销、法务催收、资产转让 |
数据质量注意点: 逾期天数的计算基准是“应还日”而非“账单日”。SQL 中必须使用
DATEDIFF(day, due_date, COALESCE(repay_date, GETDATE())) 来获取准确逾期天数,且需排除展期、减免等特殊状态。
3.2 坏账口径:合同口径 vs 余额口径
坏账率的分母选择直接影响指标数值。两个口径在业务解读上差异显著,SQL 实现时也必须分别处理。
| 口径类型 | 分子 | 分母 | 适用场景 | SQL 关键点 |
|---|---|---|---|---|
| 合同口径 | 坏账合同数(或坏账合同本金总额) | 全部合同数(或全部合同本金总额) | 监管报送、资产质量评估 | 按合同维度聚合,需去重 |
| 余额口径 | 坏账余额(逾期本金 + 利息 + 罚息) | 全部在贷余额 | 风险拨备、资本计量 | 按账户维度实时计算 |
案例对比: 某机构有 1000 份合同,其中 10 份坏账合同,坏账合同本金合计 100 万,全部合同本金合计 5000 万。合同口径坏账率 = 10/1000 = 1%(按合同数)或 100/5000 = 2%(按本金)。若这 10 份坏账合同当前余额为 80 万,全部在贷余额为 3000 万,则余额口径坏账率 = 80/3000 ≈ 2.67%。两个口径结果不同,需根据业务场景选择。
3.3 年化坏账率与静态池坏账率
时间维度上的坏账率计算有两种主流方法:年化坏账率(Annualized Charge-off Rate)和静态池坏账率(Static Pool Charge-off Rate)。
3.3.1 年化坏账率
将观测期内的坏账金额年化处理,适用于与资金成本、收益率进行横向对比。公式:
年化坏账率 = (观测期坏账金额 / 观测期平均在贷余额) × (365 / 观测天数) × 100%
SQL 实现时需注意:观测期平均在贷余额通常取每日余额的算术平均,或月初月末余额的平均。
3.3.2 静态池坏账率
将同一时期放款的合同(静态池)作为分母,追踪其在后续各月的逾期表现,最终计算累计坏账率。公式:
静态池坏账率 = (静态池中最终成为坏账的合同本金总额 / 静态池全部合同本金总额) × 100%
静态池方法消除了时间错配,是资产证券化(ABS)信息披露的标准口径。
3.4 口径选择对 SQL 数据质量的影响
不同的坏账率定义会直接影响 SQL 哨兵的监控阈值与告警逻辑。以下为常见口径组合及其 SQL 实现要点:
| 组合场景 | 口径 | 时间维度 | SQL 哨兵关注点 |
|---|---|---|---|
| 监管报送 | 合同口径 | 年化 | 合同去重、逾期天数精确计算 |
| 风险拨备 | 余额口径 | 年化 | 余额快照、利息罚息包含 |
| ABS 信息披露 | 合同口径 | 静态池 | 放款月份分组、追踪窗口完整 |
| 内部绩效考核 | 余额口径 | 静态池 | 剔除核销回收、展期调整 |
数据质量陷阱: 同一份 SQL 脚本如果混用口径,会导致坏账率偏差 2–5 倍。例如,用余额口径的分母(在贷余额)搭配合同口径的分子(坏账合同数),结果既不是合同口径也不是余额口径,而是无意义的“混合口径”。哨兵必须强制校验口径一致性。
3.5 本章小结
- 逾期天数划分 M0/M1/M2/M3+ 是坏账率计算的基础,SQL 中需用
DATEDIFF精确计算。 - 合同口径与余额口径的选择决定了分母与分子的匹配方式,必须保持一致。
- 年化坏账率适用于横向对比,静态池坏账率适用于纵向追踪,两者不可混用。
- 数据质量哨兵在接入坏账率指标时,必须将口径定义作为元数据字段写入监控表,避免歧义。