接码率功能上线 23 天复盘

数据截至 2026-09-29 13:36 UTC · 生产只读库 · PR #984 / #988 / #993 于 09-06 上线 · 上一次复盘 09-09

这套东西建完了、验证过了、健康地跑着,但没有接到用户身上。可见性仍是 admin,过去 28 天总共 4 单是在看见质量块的情况下下的。

比「没人看见数字」更要紧的是:普通用户的渠道排序根本没用上这套信号。非管理员走的是旧的供应商级后验排序,代码注释自己写着那是等渠道级后验落地前的占位。而渠道级后验正是这三个 PR 建的东西。

信号本身比三周前更可信(50 天、339 对、r = 0.909)。但可达收益有上界:同一 service + country 内最多 +2.5 个点。差的不是用户的判断力,是好信道太小。

一、健康,但处于僵尸态

4
28 天内看见质量块后下的单
另有约 83,000 单是 hidden
27,610,418
快照表三周累计更新次数
三周前是 396 万,涨了 7 倍
0
聚合器代码层失败
仅 02:43–02:46 有失败记录
9 MB
三张表合计体积
逐日 30 天 + 归档 21 天

心跳四步最近成功都在 9 分钟内。仅有的失败时间戳落在 02:43–02:46 UTC,正是已知的每日磁盘冻结窗口,属外部原因,不是这套代码的问题。

写放大那条三周前提过的建议没做,现在代价翻了 7 倍:快照表 7,984 行被每 10 分钟整表重写一次,累计 2,761 万次更新、3,589 次 autovacuum。逐日表已有的 IS DISTINCT FROM 守卫照搬过去即可,同一个文件里就有现成写法。dead tuple 仍是 0,autovacuum 跟得上,所以这是浪费不是故障。

二、信号比三周前更可信

用 50 天全量数据(逐日表 + 归档表),把相邻周两两配对,两周样本都 ≥20 的组合共 339 对,横跨 6 组周配对:

上周分位组合·周数下周订单下周实际到手率
Q4(最好)8224,547
47.4%
Q38312,329
12.1%
Q2868,296
7.2%
Q1(最差)885,988
2.0%

Pearson 相关 r = 0.909。三周前是 n = 40 / r = 0.892,样本扩大 8 倍后结论不但站住,还更紧了。

三、关键发现:用户的排序没用上这套信号

可见性设为 admin 时,非管理员请求拿到的是空的 ChannelViewOptions,于是整条链路退回旧路径。两条路径用的排序键不是同一个:

路径谁在走排序键粒度
旧路径所有普通用户实测接码率后验分段供应商级
质量路径仅管理员7 天到手率后验分段渠道级

旧路径的代码里写得很清楚:候选按供应商去重,同一家的多个档位共享供应商级后验,渠道级四元组后验要等关联落地。而这三个 PR 建的正是那个渠道级后验。

所以把 visibility 翻到 public 不只是「让用户看见一个数字」,它同时把排序键从供应商级换成渠道级。后者才是有产出杠杆的那一半,而它在之前的讨论里一直没被点出来。

四、最大的组合正好是这个失效模式的样板

openai / US 近 7 天 2,774 单,占全站 web 单量的 18.4%。同一组合内三个公开码:

公开码本周单量取号率到手率价格在架天数
6GN3HABZ2,630100%48%$0.428
7NQKYGA89399%55%$0.318
KUY37ARM29100%86%$0.306

拿走 95% 单量的那条,更贵、到手率低 38 个点。而且它在衰减:按周看它的到手率从 8 月中的 58% 一路滑到现在的 46–49%,七周掉了约 12 个点,单量却从 1,713 涨到过 6,558。

另外两条不是没库存:取号率 99–100% 说明用户点了就能拿到号。KUY37ARM 八周里每周只有 4–28 单且不是每天在架,确实小;7NQKYGA8 则是每天在架、稳定在 ~100 单/周、连续七周都比主力好。为什么它上不去,是这次没能回答的问题,也是最值得下一步查的那个。

五、诚实的上界:+2.5 个点

在同一 service + country 内(不跨组合,因为用户要的服务和国家是给定的),假设所有单都落到「上周表现最好」的那条信道上,用它本周的真实表现算:

24.6%
实际到手率
65 个组合 / 9,761 单
27.1%
全部改选最优后的上界
只有 +2.5 个点

这个上界还偏乐观:最优信道的「本周真实表现」是在几十到上百单的小样本上测的,真让它承接 30 倍流量多半守不住。所以换排序键带来的现实收益大概率在 0 到 +2.5 点之间,按每周 15,090 单算,约 0 到 375 个额外完成单。

差的不是用户的判断力。近 7 天的单量按「上周已知档位」拆开看:

上周已知档位信道数本周单量占比本周实际
≥30%203,17821.1%50.3%
15–30%164442.9%24.8%
5–15%232,94119.5%11.8%
<5%271,4739.8%5.7%
样本不足 / 新信道2,0687,05446.7%13.4%

近三成单量流进上周就已知低于 15% 的信道,另有近一半流进样本不足、系统根本没法评价的长尾。真正「又好又能承接量」的信道太少,这才是上界低的原因。

六、下一步

  1. 先回答一个问题:7NQKYGA8 为什么上不去。它更便宜、每天在架、连续七周比主力好 10–35 个点、取号率 99%,却只拿 4% 的单量。三种可能:上游有硬供给上限 / 目录里可售量长期很低 / 排序没把它放上去。这是一次有界的排查,信息价值最高,而且结论直接决定下面两条值不值得做。
  2. 把 visibility 翻到 public,带 A/B。它同时换掉排序键和显示数字,改动是一个配置项加两条 E2E 断言反向,一天以内。埋点现成:channel_pick_context.qualityShown 实验组取 rated/band、对照组取 hidden。预期收益按 0 到 +2.5 点报,不要当成转化大赢。
  3. 顺手修写放大。照搬逐日版的 IS DISTINCT FROM 守卫,一小时,砍掉约 99% 的空写。
  4. 给主力信道的慢性衰减加一条检测。现有的 degraded_delta 比的是 24 小时对 7 天、阈值 0.15,七周滑 12 个点这种永远触发不了。最大的组合掉了 12 个点没人发现,这比 UI 放开更值钱。

需要你拍板