续期数据基础:核心字段、清洗与质量监控

做续期策略,第一关不是模型,不是算法,而是数据。我见过太多团队,模型跑得飞起,结果上线一看,宽限期字段是空的,缴费日格式乱成一锅粥。说白了,数据基础不牢,后面全是空中楼阁。

这一章,我们就来聊聊续期数据的三个核心问题:该拿哪些字段、怎么把脏数据洗干净、如何保证数据一直干净。

续期数据的核心字段

续期业务涉及的数据表通常有几十个字段,但真正关键的,其实就那么几个。我个人习惯把它们分成三类:保单标识、时间节点、产品属性。

分类 字段名 说明 常见问题
保单标识 保单号 唯一标识一张保单 存在重复、前后空格、大小写不一致
保单标识 投保人ID 关联客户信息 空值、格式不统一
时间节点 缴费日 本期应缴费日期 日期格式混乱、逻辑错误(早于生效日)
时间节点 宽限期截止日 最晚可缴费日期 计算错误、未更新
时间节点 保单生效日 合同起始日期 与缴费日逻辑矛盾
产品属性 险种代码 产品唯一编码 编码规则不统一、新旧版本混用
产品属性 缴费方式 年缴/月缴/季缴 枚举值不规范
产品属性 缴费年期 总缴费年限 与已缴年期逻辑冲突
我的经验: 保单号这个字段,看着简单,坑最多。我曾经接手一个项目,两套系统的保单号规则不同,一套是纯数字,一套是字母+数字。合并时没做归一化,结果同一个客户在两张表里被识别成两个人。所以,我建议一开始就定好统一的保单号编码规范。

数据清洗与预处理

拿到原始数据后,别急着建模。先花 30% 的时间做清洗,后面能省 70% 的麻烦。我一般按下面几步走:

第一步:缺失值处理

续期数据里,缺失值最常见的是宽限期截止日和缴费方式。为什么会这样?因为很多老系统的宽限期是写死在代码里的,没有落库。

我的处理原则:

  • 关键时间字段缺失:根据险种和生效日推算。比如宽限期,大部分产品是 60 天,少数是 30 天。我会建一个宽限期规则表,按险种映射。
  • 缴费方式缺失:看历史缴费记录。如果之前都是年缴,那大概率还是年缴。
  • 投保人ID缺失:这属于严重数据质量问题,必须标记并反馈给上游系统。

第二步:格式标准化

日期格式是重灾区。有的系统用 2024-01-15,有的用 2024/01/15,还有用 20240115 的。我习惯统一转为 YYYY-MM-DD 字符串,同时校验合法性。

-- 一个简单的日期清洗示例(SQL)
UPDATE policy_table
SET due_date = STR_TO_DATE(due_date_raw, '%Y%m%d')
WHERE due_date_raw REGEXP '^[0-9]{8}$';

-- 标记非法日期
UPDATE policy_table
SET data_quality_flag = 'INVALID_DATE'
WHERE due_date IS NULL AND due_date_raw IS NOT NULL;

第三步:逻辑校验

字段之间是有约束关系的。我常用的校验规则:

  • 缴费日不能早于保单生效日
  • 宽限期截止日 = 缴费日 + 宽限期天数
  • 已缴年期不能大于缴费年期
  • 险种代码必须在产品目录中存在
避坑指南: 我曾经遇到一个案例,某产品的宽限期在合同里写的是 60 天,但系统里配成了 30 天。结果大量保单在 30 天后被标记为失效,引发大量投诉。所以,逻辑校验不仅要检查字段本身,还要跟合同条款做交叉验证。

数据质量监控体系

清洗是一次性的,监控才是长期的。我建议搭建一个三层监控体系,覆盖从数据产生到使用的全链路。

核心思路: 不是出了问题再查,而是让问题在萌芽阶段就被发现。

第一层:源端监控

在核心系统(保单系统、收付费系统)出口处做校验。比如:

  • 每日新增保单的字段完整率
  • 缴费日期的格式正确率
  • 险种代码的合法率

第二层:加工层监控

在数据仓库或数据中台里,对清洗后的数据做质量检查。比如:

  • 宽限期截止日与缴费日的差值分布是否合理
  • 同一保单号在不同表中的记录数是否一致
  • 关键字段的空值率是否超过阈值(比如 1%)

第三层:应用层监控

在续期策略系统里,对最终使用的数据做实时校验。比如:

  • 跑批前检查当日待缴费保单的数据质量
  • 如果某险种的宽限期字段空值率突然升高,自动告警并暂停策略执行

下面这张图,是我自己项目里用的数据质量监控框架,你可以参考一下:

续期数据质量监控体系框架 源端监控 • 字段完整率 • 格式正确率 • 编码合法率 • 实时校验 加工层监控 • 差值分布检查 • 跨表一致性 • 空值率阈值 • 批量校验 应用层监控 • 跑批前校验 • 实时告警 • 策略暂停机制 • 反馈闭环 数据流:核心系统 → 数据仓库 → 续期策略系统 告警与反馈:邮件 → 短信 → 企业 → 工单系统 说明: 每层监控发现问题后,自动触发告警,并生成数据质量工单。工单处理完成后,反馈至源端进行修复。 修复结果在下一次监控中自动验证,形成闭环。

监控指标与阈值

指标不能拍脑袋定。我一般先跑一个月的历史数据,看正常波动范围,然后取 P95 或 P99 作为告警阈值。下面是一些常用指标:

监控指标 计算方式 建议阈值 告警级别
字段完整率 非空记录数 / 总记录数 ≥ 99.5% P0(严重)
格式正确率 格式合法记录数 / 总记录数 ≥ 99.9% P0(严重)
逻辑一致率 通过逻辑校验的记录数 / 总记录数 ≥ 99.8% P1(重要)
跨表一致率 两表匹配记录数 / 主表记录数 ≥ 99.5% P1(重要)
空值率变化 当日空值率 - 前7日均值 ≤ 0.5% P2(一般)
一个小技巧: 告警级别别设太多,三级就够了。P0 是数据不能用,必须立刻停掉所有下游任务;P1 是数据有问题,但可以继续跑,需要人工排查;P2 是数据有波动,记录下来观察趋势。我以前见过有人设了五级告警,结果运维根本分不清优先级,最后全都不看了。

嗯,数据基础这块,说到底就是三个字:清、准、稳。字段要清,数据要准,监控要稳。把这三点做到位,后面的续期策略才能站得住脚。