4. 数据源识别:核心表清单

坏账率哨兵的数据质量评估,必须从识别和解析核心数据源开始。在典型的信贷业务系统中,与坏账率计算直接相关的表通常分布在 借据、还款计划、还款流水、客户信息 和 逾期状态 五个领域。本章将逐一列出这些核心表的结构、关键字段及其在坏账率计算中的角色。

4.1 核心表总览

下表汇总了五张核心表的业务定位、数据粒度与在坏账率评估中的主要用途:

表名 业务定位 数据粒度 坏账率计算角色
借据表 记录每笔贷款的合同信息 每笔借据一条记录 提供贷款本金、放款日期、利率等分母数据
还款计划表 记录每期应还的金额与日期 每期还款一条记录 定义应还时间轴,用于判断是否逾期
还款流水表 记录客户实际还款的交易明细 每笔还款一条记录 提供实际还款金额与时间,用于计算逾期缺口
客户信息表 记录客户的基本属性与信用信息 每个客户一条记录 用于坏账率的分层分析(如地区、年龄、信用等级)
逾期状态表 记录借据的逾期阶段与状态 每笔借据当前逾期状态一条记录 直接标识坏账(如逾期90天以上)的判定依据
数据质量提示: 在开始质量评估前,务必确认这五张表之间的主外键关系是否完整。常见的质量陷阱包括:借据表存在但还款计划表缺失对应记录、还款流水表重复记账、逾期状态表未及时更新等。

4.2 借据表(Loan Contract Table)

借据表是坏账率计算的 核心分母来源。每一笔借据代表一笔独立的贷款合同,其关键字段包括:

  • 借据号(loan_id):唯一标识一笔借据,是与其他表关联的主键。
  • 客户号(customer_id):关联客户信息表,用于分层分析。
  • 贷款本金(principal):放款金额,是坏账率计算的分母基础。
  • 放款日期(disburse_date):贷款发放时间,用于计算账龄。
  • 贷款期限(loan_term):总期数,影响还款计划生成。
  • 年化利率(annual_rate):用于利息计算,间接影响应还金额。
  • 产品类型(product_type):区分不同信贷产品,用于分组评估。
质量关注点: 借据表中贷款本金字段的完整性、准确性与一致性。缺失本金或本金为负的记录将直接导致坏账率计算失真。

4.3 还款计划表(Repayment Schedule Table)

还款计划表定义了每笔借据的 应还时间轴,是判断是否逾期的基准。其关键字段包括:

  • 计划编号(schedule_id):唯一标识每期还款计划。
  • 借据号(loan_id):关联借据表。
  • 期次(period):第几期还款。
  • 应还日期(due_date):该期还款的截止日期。
  • 应还本金(principal_due):该期应还的本金部分。
  • 应还利息(interest_due):该期应还的利息部分。
  • 应还总额(total_due):该期应还的本息合计。
常见数据质量问题: 还款计划表可能出现应还日期缺失、应还金额为负、期次不连续或与借据表期限不一致等问题。这些错误会直接导致逾期判断逻辑失效。

4.4 还款流水表(Repayment Transaction Table)

还款流水表记录了客户 实际还款 的每一笔交易,是计算逾期缺口的关键数据源。其关键字段包括:

  • 流水号(transaction_id):唯一标识每笔还款交易。
  • 借据号(loan_id):关联借据表。
  • 还款日期(payment_date):实际还款发生的时间。
  • 还款金额(payment_amount):实际还款的金额。
  • 还款方式(payment_method):如主动还款、代扣、线下还款等。
  • 交易状态(status):如成功、失败、撤销等。
质量关注点: 还款流水表最常见的质量问题是 重复记录 和 缺失记录。重复记录会导致实际还款金额虚高,掩盖逾期真相;缺失记录则会导致逾期被夸大。

4.5 客户信息表(Customer Information Table)

客户信息表用于 分层分析 坏账率,帮助识别高风险客群。其关键字段包括:

  • 客户号(customer_id):唯一标识客户。
  • 姓名(name):客户姓名。
  • 身份证号(id_number):用于身份校验与去重。
  • 手机号(phone):联系方式。
  • 地区(region):客户所在地区,用于地域分析。
  • 信用等级(credit_level):内部信用评分等级。
  • 注册日期(reg_date):客户注册时间。
数据质量提示: 客户信息表中的身份证号、手机号等关键字段的格式校验非常重要。格式错误或重复的客户信息会导致分层分析结果偏差。

4.6 逾期状态表(Overdue Status Table)

逾期状态表是坏账率计算的 直接判定依据,通常记录每笔借据当前的逾期天数或逾期阶段。其关键字段包括:

  • 借据号(loan_id):关联借据表。
  • 逾期天数(overdue_days):当前逾期天数。
  • 逾期阶段(overdue_stage):如 M1(1-30天)、M2(31-60天)、M3(61-90天)、M3+(90天以上)等。
  • 逾期开始日期(overdue_start_date):首次逾期的日期。
  • 状态更新时间(update_time):该状态记录的最后更新时间。
  • 是否核销(is_charge_off):标记是否已做坏账核销处理。
常见数据质量问题: 逾期状态表可能因更新不及时导致逾期天数滞后,或逾期阶段分类错误。例如,一笔实际逾期 95 天的借据仍被标记为 M3(61-90天),这将导致坏账率被低估。

4.7 核心表关系与数据流

下图展示了五张核心表之间的关联关系与数据流向,帮助理解坏账率计算的数据链路:

核心表关系与数据流图 核心表关系与数据流图 客户信息表 customer_id 主键 借据表 loan_id 主键 还款计划表 schedule_id 主键 还款流水表 transaction_id 主键 逾期状态表 loan_id 主键 customer_id loan_id loan_id loan_id + period due_date 对比 说明: 箭头表示主外键关联或数据对比关系。坏账率计算需要将这五张表通过 loan_id 和 customer_id 进行关联,形成完整的数据视图。

4.8 核心表字段质量检查清单

在开始坏账率哨兵的数据质量评估前,建议按照以下清单对每张表的关键字段进行初步检查:

表名 关键字段 常见质量问题 检查SQL示例
借据表 principal 空值、负数、零值 SELECT COUNT(*) FROM loan WHERE principal IS NULL OR principal <= 0;
还款计划表 due_date 空值、未来日期、过去异常日期 SELECT COUNT(*) FROM schedule WHERE due_date IS NULL;
还款流水表 payment_amount 重复记录、负值、超限值 SELECT loan_id, COUNT(*) FROM transaction GROUP BY loan_id, payment_date, payment_amount HAVING COUNT(*) > 1;
客户信息表 id_number 格式错误、重复、空值 SELECT COUNT(*) FROM customer WHERE id_number IS NULL OR LENGTH(id_number) != 18;
逾期状态表 overdue_days 负数、与还款计划矛盾 SELECT COUNT(*) FROM overdue WHERE overdue_days < 0;
最佳实践: 建议将上述检查SQL封装为 数据质量监控脚本,在每日ETL完成后自动执行,并输出异常记录数。当异常记录数超过阈值时,触发告警通知数据治理团队。

4.9 数据源识别总结