*/3)不是每 2 分钟——本页原「口径修正」那条反而把对的改错了,已订正;② 升 tier1 = 近 10 天「高+中意向」≥ 10 条,不再是「近 3 天高意向 ≥ 5」;③ 「只升不降 + 手动清理」已被 每天 01:00 一轮跑的自动三闸(升→降→出池)取代。本页正文只订正这些「现行机制」句,当时的叙事与判断保留原样。daily_source_tier_stats + source_tier_change_log),数据已自动积累。续作 → 号源动态监控(实时活曲线) 已接棒:每日扩源后自动重生成,画 by-day tier0/1 号数 + 升降流水 + 快车道。本页留作 6/16 纵向叙事快照不动,下面 ⑥/⑧ 已标注「已修复」。这是一份纵向文档:把「号源怎么分类(体系)」和「分类后怎么抓(机制)」两个旋钮,放到 6/1→6/16 的时间轴上,看它们各自改了什么、合起来对意向产出有什么效果。结论先放:
source_accounts.tier 是个当前状态单列,物理上只落地 0 / 1 两个值。对内对外统一命名表如下;温/冷/休眠是「把未分档按近 7 天产出再细分」的目标方案(parked,未落地)。
| tier 值 | 名称 | 含义 | 当前是否物理落地 |
|---|---|---|---|
| 1 | 热 | 近期持续产出买家意向,吃快车道 | ✓ 已落地(176 个) |
| 2 | 温 | 有产出但不密,目标细分档 | ✗ parked(堆在 tier0) |
| 3 | 冷 | 偶有产出 | ✗ parked(堆在 tier0) |
| 4 | 休眠 | 连续多日 0 产出,待停抓 | ✗ parked(堆在 tier0) |
| 0 | 未分档 | 除热号外的全部 active 号(兜底每小时抓) | ✓ 已落地(1019 个) |
升降档只看一个量:这个号近 7 天抓到多少条高/中意向评论。粉丝多、历史爆过、评论总数大——都不算数,只认「现在评论区里还有没有人在问价」。两条落地路径:
auto-tier1 cron 每天 01:00 把「近 3 天高意向 ≥ 5」的号升 tier1。AUTO_TIER1_WINDOW_DAYS=10 / AUTO_TIER1_MIN_HIMID=10,2026-06-21 落地。)_retier-cleanup.ts(口径=近 7 天高+中),降「热号近 7 天 0 产出」、升「未分档近 7 天高+中 ≥ 16」。auto-tier1 看「高意向≥5/3天」,会漏掉中意向多、高意向不足 5 的优质号(如某号高 5 中 35);建议统一成「高+中」——高危改动走 PR,当前 parked」。已不再 parked,而且改得比当时的建议更彻底:升=近 10 天「高+中」≥ 10;降=tier1 近 7 天「高+中」= 0 → 回 tier0;出池=tier0 且「最新视频 30 天前」+「近 30 天 0 条高+中」→ is_active=false(可逆)。三闸都在 /api/cron/auto-tier1 每天 01:00 一轮里跑(先升→再降→再淘汰→落快照)。意向口径:每条评论 0–100 分,≥80 算高、≥60 算中。同一个号身上挂三套坐标:tier(抓取优先级)、category_v2(号是谁/9 类画像)、评分 A/B/C/D(号质量分,详见 评分方法论页)。当前 active 池(1234,数字刷新至 2026-06-21)的画像分布(构成与 6/16 基本一致,同行 peer_decoration 仍最大):
| category_v2 画像 | 号数 | 说明 |
|---|---|---|
| peer_decoration 同行装修号 | 513 | 占比最大,多为 B2B/同行,评论区常非 C 端买家 |
| knowledge_creator 知识号 | 279 | 科普装修,评论区问价密度中等 |
| 业主日记 / homeowner_diary | 103 + 24 | 真实业主,C 端买家浓度高(命名未统一,见⑥);f2 扩源持续补这一脉 |
| designer 设计号 / 设计号 | 72 + 3 | 设计师个人号 |
| brand_official 品牌官方号 | 63 | 官方号,评论区偏粉丝互动 |
| factory_b2b 工厂号 | 40 | 同行/供应链,C 端少 |
| material_supplier 建材供应 | 22 | |
| local_store 本地号 / 本地号 | 9 + 6 | 同城门店 |
| (未分类) + 其余旧标签 | 90 | category_v2 为空或旧中文标签未迁移 |
| 合计 active | 1234 | = 当前 tier1(140) + tier0(1094)(数字 6/21;6/16 为 1195=176+1019) |
分类之后,抓取频率只按 tier 分两档(口径来自 vercel.json 实测,下面是 6/16 真实值):
| cron | 频率 | 覆盖 | 作用 |
|---|---|---|---|
/api/cron/scrape-hot | 每 3 分钟(*/3) | tier1 热号(6/21: 140) | 买家窗口短,热号要近实时盯 |
/api/cron/scrape | 每小时(10 * * * *) | tier0 全部(6/21: 1094) | 兜底扫,省预算;每轮取 150 个最久没抓的 |
/api/cron/auto-tier1 | 每天 01:00(0 1 * * *) | 升档 + 降档 + 出池 | 一轮跑完三闸(先升→再降→再淘汰→落快照) |
vercel.json 核对——真实为每 2min(*/2)」。事实反过来:记忆里的『每 3min』一直是对的,vercel.json 里 scrape-hot 从头到尾都是 */3。*/2 来自 src/app/api/cron/scrape-hot/route.ts 顶部一句计划注释——「2026-06-15 提速阶梯第 1 步:默认 45→30min,配合 vercel.json scrape-hot */3→*/2」。那是「跑稳 24-48h 后再推」的下一步计划,从没执行。把计划注释当成了现值。教训:核 cron 频率只认 vercel.json 的 schedule 字段,别读代码注释。SCRAPE_HOT_SOURCE_THROTTLE_MINUTES 默认 30);其中「近 6 小时刚产过高/中意向」的号才把节流缩到最快 10 分钟一次(HOT_TIER1_INTENT_THROTTLE_MINUTES 默认 10 / HOT_TIER1_INTENT_WINDOW_HOURS 默认 6,2026-06-24 上线的 intent-aware 加密)。所以「3 分钟」是扫描轮次,「10–30 分钟」才是单号真实复抓间隔。scrape 现是 .eq("tier",0) 精确匹配,若直接打 2/3/4 标会静默永不抓——必须先改路由 cover 所有非 tier1 档,再 retier 打标。动 cron + 可能动 migration = 高危,走 PR。把 6/1→今的意向评论按评论所属号的当前 tier 归类(仅 active 号)。结论是极端 Pareto:
| tier | 高意向 | 中意向 | 低意向 | 高意向占比 |
|---|---|---|---|---|
| tier1 热(176 号) | 1652 | 5137 | 5195 | 90.5% |
| tier0 未分档(1019 号) | 174 | 654 | 955 | 9.5% |
每天抓到并打分的评论体量。高意向日基线 ~150-170 条,是整个触达漏斗的进水口。
| 日期 | 高意向 | 中意向 | 低意向 | 无关 | 备注 |
|---|---|---|---|---|---|
| 06-01 | 178 | 512 | 419 | 92 | 无关异常偏低(见⑥) |
| 06-02 | 155 | 686 | 684 | 5428 | |
| 06-03 | 167 | 433 | 502 | 7041 | |
| 06-04 | 157 | 403 | 455 | 4234 | 388 号 B2B 批量入库日 |
| 06-05 | 150 | 448 | 453 | 4556 | |
| 06-06 | 172 | 483 | 500 | 5203 | |
| 06-07 | 155 | 390 | 455 | 4171 | |
| 06-08 | 166 | 539 | 555 | 5470 | |
| 06-09 | 166 | 612 | 557 | 4910 | |
| 06-10 | 117 | 434 | 475 | 3749 | |
| 06-11 | 77 | 256 | 300 | 1591 | tier0 采集饿死事故期(已修) |
| 06-12 | 67 | 263 | 293 | 1864 | 同上,谷底 |
| 06-13 | 266 | 946 | 698 | 7772 | 事故修复后回补峰 |
| 06-14 | 153 | 420 | 449 | 4549 | 回到基线 |
| 06-15 | 85 | 302 | 334 | 2820 |
| 入库日 | 新号 | 渠道拆分 | 现 tier1 |
|---|---|---|---|
| 06-04 | 404 | B2B 批=388,f2=16 | 2 |
| 06-05 | 22 | f2=22 | 2 |
| 06-06 | 9 | f2=9 | 3 |
| 06-07 | 16 | f2=16 | 2 |
| 06-08 | 26 | f2=26 | 1 |
| 06-09 | 17 | f2=17 | 1 |
| 06-10 | 40 | f2=40 | 1 |
| 06-11 | 10 | f2=10 | 2 |
| 06-12 | 9 | f2=9 | 6 |
| 06-13 | 7 | f2=7 | 7 |
| 06-14 | 5 | f2=5 | 3 |
| 06-15 | 1 | f2=1 | 1 |
这是唯一能拿到的流转明细——每次手动/自动改 tier 时落的回滚锚点文件。6/11 之前无任何此类记录。
| 日期 | 手动升 tier0→1 | 自动升 0→1 | 自动降 1→0 | 弃用(停抓) |
|---|---|---|---|---|
| 06-11 | 2 | 6 | 16 | 19 |
| 06-12 | 6 | — | — | — |
| 06-13 | 7 | — | — | — |
| 06-14 | 3 | — | — | — |
| 06-15 | 1 | — | — | — |
auto-tier1 cron 每天 01:00 升档但不写回滚锚点。所以即便 6/11 之后,流转链也是残缺的。详见⑥。你要的几样东西里,有的库里有、有的根本没记。逐项交底,不糊弄:
| 你要的 | 可靠性 | 实情 |
|---|---|---|
| 当前各 tier 号数 | ✓ 精确 | count 查询,3219/1195/176/1019 都实数 |
| 各 tier 高/中/低意向评论数 | ✓ 精确 | join 当前 tier 实算(④A);口径=归当前 tier、active 号 |
| 意向产出 by-day | ✓ 精确 | 按 created_at 北京日分桶 count(④B) |
| 新号入库 by-day + 渠道 | ✓ 精确 | created_at 实算(⑤A),但见下「6/4 坑」 |
| by-day 各 tier 号数 | ✓ 6/16 起已修复 | 当时不可重建(无快照);6/16 落地 daily_source_tier_stats 每日 cron 快照,6/16 起有真曲线,见 实时监控页。6/16 前仍空白 |
| 号源流转链 tierX→tierX→… | ✓ 6/16 起已修复 | 6/16 落地 source_tier_change_log,auto-tier1/降档/手动统一写流水(堵上当时 ~72 升档无痕缺口),6/16 起逐次可查,见实时监控页升降流水 |
source_accounts.tier 没有 updated_at、没有审计表、没有每日快照。一个号现在是 tier1,没法知道它什么时候、从哪一档升上来的。这是 by-day tier 曲线和完整流转链结构性不可得的根因——不是没去查,是库里没存。业主日记(87) 和 homeowner_diary(24) 两个标签、本地号同时有 本地号 和 local_store——中英标签未统一迁移,统计时需手动合并(本页已合并展示)。你问这页和那两张表是什么关系、要不要动它们。答案是三页正交、各管一段,老页不动:
| 页面 | 管什么 | 轴 | 本页如何衔接 |
|---|---|---|---|
| source-scoring (6/4) | 号质量怎么打分(5 维 A/B/C/D、筛号漏斗) | 方法论快照 | 本页②C 引用其评分体系,不复述 |
| source-mining (6/11) | 6/11 那天扩源实战 + tier 体系定版 | 单日运营快照 | 本页③继承其 tier 定版口径,作前序锚点 |
| 本页 (6/16) | 体系×机制随时间怎么变、对产出什么效果 | 纵向演进 | 新轴,链入上两页 |
daily_source_tier_stats + source_tier_change_log,auto-tier1 cron 每天 01:00 落)。「by-day tier 曲线 / 完整流转链」已从「不可得」变「每天自动刷」——续作 号源动态监控实时页 已画真曲线(每日扩源后自动重生成)。source_tier_change_log(回滚锚点有了);口径实际改成升=近 10 天高+中 ≥ 10、降=近 7 天高+中 = 0,比这里提的还多一道死号出池(30 天没新视频 + 近 30 天 0 高+中 → is_active=false)。scrape 路由 cover 所有非 tier1 档再 retier 打标,否则静默不抓。