预测模型与口径
加权口径、方法选择与算法登记
预测相关参数
7条
在册算法
2个
近7天权重
0.4
默认 0.8
近7-14天权重
0.6
默认 0.2
加权口径
预估周销量 = 近 7 天销量 × 0.4 + 近 7-14 天销量 × 0.6
(权重改「模型参数」页的 sale_weight.* 生效;这里之前把 0.8/0.2 写死在文案里,改参数后页面不跟着变 —— 已改成读库)
反解:已知两周合计 raw 与预估周销 est,则 近7天 = (est − 0.2 × raw) ÷ 0.6
反解:已知两周合计 raw 与预估周销 est,则 近7天 = (est − 0.2 × raw) ÷ 0.6
预测相关参数
| 参数键 | 名称 | 值 | 单位 | 更新人 |
|---|---|---|---|---|
| weeks_supply.normal | 满足周数 · 常规补货 | 1.5 | 周 | 页面操作 |
| weeks_supply.top20 | 满足周数 · 全国 TOP20 款 | 1.5 | 周 | 王运营 |
| weeks_supply.new_item | 满足周数 · 新品(7 天内到店) | 1.5 | 周 | 王运营 |
| weeks_supply.benchmark_store | 满足周数 · 标杆店 TOP10 款 | 2 | 周 | 王运营 |
| weeks_supply.holiday_top20 | 满足周数 · 节假日 TOP20 款 | 3 | 周 | 王运营 |
| sale_weight.recent7 | 近 7 天销量权重 | 0.4 | - | 模型调优(回测反推) |
| sale_weight.recent714 | 近 7-14 天销量权重 | 0.6 | - | 模型调优(回测反推) |
i算法登记册(/algo)与预测口径的关系:预测方法在代码里固定为「加权移动平均」
(权重见上表 sale_weight.*,再叠加 准确度回溯 拟合的分档校准)——
登记册里的版本 / 流量% / 守卫阈值都不改变预测公式;
但从 2026-09-24 起登记册是真的接在计算上的:「停用」会拦住预测阶段(跑预测会直接报错),
「灰度 N%」会给预测行打 algo_cohort 分组标记,守卫超阈值会自动回滚。
逐条对照见下表的「真正生效的开关」列。
台账与实现不一致 1 处:门店×SKC 周销预测(ALGO-FC-01)台账为「已回滚」:按语义仍在运行(跑登记的回滚点版本),但代码里只有一套实现,版本号不改变公式
台账与实现不一致 1 处:门店×SKC 周销预测(ALGO-FC-01)台账为「已回滚」:按语义仍在运行(跑登记的回滚点版本),但代码里只有一套实现,版本号不改变公式
算法登记
| 编号 | 名称 | 版本 | 状态 | 流量 | 参与计算 | 真正生效的开关 | 说明 |
|---|---|---|---|---|---|---|---|
| ALGO-FC-01 | 门店×SKC 周销预测 | v3.1 | 已回滚 | 0% | 有实现(口径不由登记决定) | 「预测模型」页「预测相关参数」卡片里的 `sale_weight.recent7 / recent714` 两行 + 「准确度回溯」页「① 零膨胀校准」卡片;能不能跑看「算法治理」页「算法登记册」卡片里这一条的「状态」 | 预测方法在代码里固定为加权移动平均:**版本号不改变公式**;「停用」才会拦住这一步,守卫超阈值会自动回滚 |
| ALGO-GI-01 | 目标库存计算 | v2.4 | 生效 | 100% | 有实现(口径不由登记决定) | 「模型参数」页「模型约束参数」卡片里的 `goal.*` / `weeks_supply.*` / `safety_stock.*`(未接入计算的会标出来);能不能跑看「算法治理」页「算法登记册」卡片里这一条的「状态」 | 目标库存 = 预测量 × 覆盖周数 + 安全库存(`decision/goal.ts#computeTarget`) |