号码状态查询口径改了:历史结论怎么办
风控把空号的定义换掉之后,同一批号码的空号率从十二个点掉到七个点,去年同期还是旧口径,两个季度没法并列。这篇讲清号码状态查询口径变更后历史数据怎么处理:三条路各付什么代价、重刷量级怎么估、快照要留哪一层。
🎁 免费试用手机号码状态查询 API
直连三网运营商 · 准确率 ≥99.9% · 支持携号转网识别 · 按次计费即买即用
季度复盘会上,风控把「空号」的定义换了:以前电话打不通就归进去,关机、不在网、欠费都算;现在只认接口返回的空号这一种。同一批六百万条名单,上季度空号率十二个点,这一季掉到七个点。有人当场问了一句:是名单质量变好了,还是口径换了。会议室里没人能立刻回答。
问题不在数字变小,在于两个季度的数字已经不是一回事。号码状态查询给出的是一条条结论,结论按当时那套规则算出来;规则换了,新旧数据摆在一张图上,曲线看着往下走,实际什么都没发生。当天下午团队的安排就变成了一件事:排查这套历史数据还能不能复用。
接口这一侧其实没变,返回的还是那八种状态——正常、空号、通话中、不在网、关机、无短信能力、欠费、长时间关机。变的是自己这边怎么把它们归拢:哪些算无效、哪些算可触达、哪些进复核。这一层通常藏在一张映射表里,改完了也没有版本号。
后果有三种。报表同比失效,最直观。下游动作错配,更麻烦:上季度按旧口径判成「空号」的那批被标成不再触达,里面混着一批只是关机的号码,等于把这群人永久放弃了。第三种是事后说不清,客户拿着几个月前的反馈来问,你调出结论表,表里只有结论值,没有当时的口径版本,解释不了。
所以第一次撞上口径变更,别只讨论新口径合不合理,先把历史这一头怎么处理定下来。
三条都走得通,代价不一样。
全量重刷最干净,也最贵。重刷就是把历史名单重新跑一遍接口,按次计费,量级按条数乘单价估,六百万条不是小数目。还有一种更隐蔽的成本:重刷拿到的是当下的状态,不是当时的状态。它并不还原历史,只是给一批老号码贴上了新标签。
双口径并存最常用。老数据保留原口径,新数据按新口径写,报表分两段展示并标出切换时点。代价在解释成本上:团队里每个人都要知道存在两套口径,否则同一份报表发给两个人,会拿到两种理解。
冻结历史最省事,也最容易被业务推翻。它成立的条件写下来就一句:这批历史数据只用于回看,不参与任何决策。
第一个数是受影响指标有几个。口径变更很少只动一张报表:触达成功率、名单质量分、转化漏斗里都可能嵌着这套映射,挨个列出来,别等下游来问。
第二个数是重刷的量级。只算名单条数偏乐观,要按重刷之后有多少条结论会变来估——会变的那部分才是真正需要人看的工作量。
第三个数是下游写死旧口径的地方有几处。枚举值、阈值判断、报表过滤条件,这些散在代码和配置里,改一处漏一处,是口径变更之后最常见的返工来源。
顺序比方法重要。第一步,把新旧口径的差异写成一张对照表,明确哪些状态换了归属、哪些状态新进判断。第二步,给口径版本编号,结论表加一列存版本号,之后任何一次重算都能追溯。第三步,新口径先在新数据上跑一到两个周期,拿差异数据验证是否符合预期,再决定历史要不要重刷。第四步,重刷或冻结的结论写进数据说明,业务和合规各留一份。
第三步最常被跳过,直接上全量重刷,跑完发现差异主要来自一批本来就没有结论的号码,白花一笔。
第一个坑是快照里没有口径版本。结论表只存状态值和查询时间,半年后没人说得清这一行是按哪套规则写的。加一列版本号成本极低,不加的代价在未来。
第二个坑是下游把口径当成业务事实。「无效」是这套算法下的判断,不是这个号码天生打不通。这句话要写进文档,否则业务会拿它当客观属性,去做不可逆的动作。
三种里满足两种就够了:口径变更只影响统计展示,不触发任何触达动作;历史数据的使用窗口本来就短,三个月前的结论没人再看;变更前后的差异经抽样验证在可接受范围内,比如自动化决策的结果变动不到一个点。
顺带说一段最难处理的历史。有一类号码从一开始就没有结论——号段从转售企业放出来、卡片只承担设备联网、登记地落在境外的那几类。旧口径下它们是空值,换了新口径还是空值,重刷一遍数字纹丝不动,却会把重刷的估算量撑大。动工之前先按类型圈出来放在一边,估算才准。
重刷用的还是同一个接口,计价方式在【手机号在网状态查询 API】的商品详情页文档里:直连移动、联通、电信三网,返回八种状态,支持携号转网识别,鉴权在请求头带 AppCode,按次计费、即买即用,字段含义与计量方式以商品详情页文档为准。
状态码本身升级时怎么兼容下游,号码状态检测结果入库:状态码压平之后怎么救给过一次表结构变更就能覆盖的做法;结论表长期混着空值与脏行时按什么顺序体检,见结果表数据质量:号码状态查询的六个问题;历史结论要不要按新数据补,手机号码状态检测判错后:历史结果要不要补排过判断线。
文章评论
发表评论
请先注册/登录后评论