qwen_agent/skills/developing/store-replenishment-forecast/SKILL.md
2026-06-15 13:36:21 +08:00

11 KiB
Raw Blame History

name description category
store-replenishment-forecast 面向生鲜/食品短保门店的采购(补货)预测助手。基于用户上传的 Excel历史销量、当前库存、商品主数据预测未来覆盖周期的需求算出每个商品SKU的「建议采购量」并强约束保质期/货架期以控制过期损耗,最终输出「采购建议清单 + 预测解释 + 风险提醒」。当收到门店采购预测、补货预测、要货建议、订货量计算、replenishment/purchase forecast、防缺货防积压、生鲜订货等请求或拿到含日期+销量+库存+保质期的门店 Excel 数据需要算该订多少货时,使用本技能。 Data & Retrieval

门店采购预测助手Store Replenishment Forecast· 生鲜短保版

Overview

本技能为生鲜/食品短保门店做采购(补货)预测:读用户上传的 Excel 数据 → 预测未来覆盖周期内每个 SKU 的需求 → 算出建议采购量 → 强约束保质期避免积压过期 → 输出「采购建议清单 + 预测解释 + 风险提醒」。

数据直接来自用户上传的 Excel 文件(销量表、库存表、商品主数据表,可能在同一文件不同 sheet。 你读取这些表格,按本技能给出的方法与公式逐个 SKU 计算,给出可执行的建议采购量。

生鲜底线:宁可小单勤补,不可一次压货过期。任何让库存覆盖天数超过保质期的采购都要被卡住。

定位说明:你是初算辅助,给建议不拍板;建议量供采购员/店长人工复核后下单。

When to use

满足任一即用本技能:

  • 中文:门店采购预测、补货预测、要货建议、订货量/进货量计算、该订多少货、防缺货防积压、 生鲜订货、安全库存/再订货点测算。
  • 英文replenishment forecast, purchase/demand forecast, reorder quantity, safety stock, order-up-to level, store ordering suggestion。
  • 拿到门店 Excel日期 + 销量的历史,以及当前库存,最好再有保质期/箱规/提前期 要求算「下一批该采购多少」。

需要从 Excel 里读到的数据(最少 → 理想)

数据 最少需要 用途 缺失时
历史销量 日期 + SKU + 销量 估日均需求、波动、趋势、星期效应 硬缺,没有就无法预测,须向用户索取
当前库存 SKU + 现有库存(+ 在途) 算净需求(要补多少) 缺则假设为 0 并在解释里声明
商品主数据 保质期、箱规、起订量、提前期 短保约束、取整、提前期 用下文默认值兜底,并在解释里声明
促销/节假日 即将到来的促销倍数 需求上调 不传则按 1.0(无促销)

生鲜场景里保质期/货架期至关重要,尽量从商品主数据读到;读不到就保守假设一个短值 (如 35 天)并明确告知用户这是假设。

读 Excel 时注意:列名可能是中文/英文/带单位,先核对每张表的表头与样例行,确认哪列是日期、 哪列是 SKU、哪列是销量/库存/保质期,再开始计算;不要凭列的位置硬猜。

默认参数(商品主数据缺失时兜底)

参数 默认值 含义
服务水平 service_level 0.95 目标不缺货概率;越高安全库存越大。短保品别盲目调高,会积压过期
提前期 lead_time 2 天 下单到到货天数
采购周期 review_period 3 天 两次订货的间隔;覆盖期 = 提前期 + 采购周期
均值窗口 最近 28 天 用最近多少天算日均(数据不足则用全部可用天数)
新鲜系数 freshness_ratio 0.7 短保关键:订货后总库存覆盖天数不超过「保质期 × 此系数」

服务水平 → 安全系数 Z用于安全库存

服务水平 0.90 0.95 0.975 0.99
Z 1.28 1.65 1.96 2.33

预测方法(逐个 SKU按序计算

数据准备:把该 SKU 最近 28 天(不足则全部)的逐日销量取出,按日期排好。 缺的日期若代表「当天有售但无销量」按 0 计;若代表「未开业/缺货停售」则尽量剔除,避免压低均值。

第 1 步 · 基线日均需求 base_daily — 用加权移动平均,越近的天权重越大。 简化做法:把窗口内第 1 天到第 n 天赋权重 1..n base_daily = Σ(当天销量 × 当天权重) / Σ权重。 (数据很少时直接用普通平均即可。)

第 2 步 · 需求波动 σ — 算窗口内日销量的标准差。 变异系数 CV = σ / 平均日销量,用于判断需求稳不稳定。

第 3 步 · 趋势修正 trend可选样本≥8天时用— 比较「近半段平均」与「远半段平均」: trend = 近半段均值 / 远半段均值限制在 0.7 ~ 1.3 之间,避免被异常值放大。

第 4 步 · 星期效应(可选,有日期时用)— 若周末/特定星期明显更高, 算各星期几的「该星期平均 / 总体平均」作为系数,预测覆盖期时按落在的星期加权。 拿不准就跳过这一步。

第 5 步 · 覆盖期需求覆盖期 = 提前期 + 采购周期 覆盖期需求 = base_daily × 覆盖期 × trend × 促销倍数(用了星期效应则按逐日加权求和)。

第 6 步 · 安全库存safety_stock = Z(服务水平) × σ × √(提前期 + 采购周期)

第 7 步 · 目标库存(订货上限)order_up_to = 覆盖期需求 + safety_stock

第 8 步 · 建议采购(原始)= order_up_to 现有库存 在途负数归零

第 9 步 · 短保上限(生鲜硬约束) — 若有保质期: 短保上限 = 保质期 × base_daily × 新鲜系数 现有库存 在途(负数归零)。 把建议采购量压到不超过短保上限;若被压低,记为「受保质期限制」。

第 10 步 · 取整与起订量 — 按箱规向上取整(如箱规 6则 45→48 再不低于起订量 MOQ建议量为 0 时保持 0。得到最终建议采购量

第 11 步 · 诊断指标(用于解释与风险):

  • 再订货点 ROP = base_daily × 提前期 + safety_stock
  • 当前可售天数 = (现有库存 + 在途) / base_daily
  • 订货后可售天数 = (现有库存 + 在途 + 建议采购) / base_daily

风险标记(据诊断指标判定)

标记 判定条件 在「风险提醒」里怎么说
无销量 窗口内无销量/无数据 无法预测,建议人工确认是否新品/停售
数据不足 有效历史 < 7 天 样本太少,预测置信度低,建议积累更多数据
波动大 CV > 0.5 需求大起大落(受促销/天气影响),建议小单勤补
缺货风险 现有库存 + 在途 < ROP 🔴 应尽快补货
过期风险 订货后可售天数 > 保质期 🟠 应减量或暂缓
积压风险 (非短保品)订货后可售天数 > 2 × 覆盖期 🟠 建议减量

输出格式Output Format

输出采购建议清单 + 预测解释 + 风险提醒三段式中文报告:

## 采购建议清单(截至 {预测起算日},覆盖未来 {覆盖期} 天)

| SKU | 商品 | 建议采购 | 当前库存 | 可售天数 | 日均需求 | 备注 |
|-----|------|---------:|---------:|--------:|--------:|------|
| M001 | 鲜牛奶950ml | 48 | 8 | 0.5天 | 16.8 | 缺货,按箱(6)补 |
| B002 | 吐司面包 | 0 | 30 | 4.6天 | 6.5 | 已超保质期可售量,暂缓 |
...

## 预测解释
- 用了哪些数据(最近 N 天销量、库存、保质期等)、用了什么口径(加权日均/安全库存/服务水平)。
- 关键 SKU 的算法依据:日均 × 覆盖期 + 安全库存  现有库存,再按箱规取整、按保质期封顶。
- 做了哪些假设(缺失字段用了什么默认值、保质期是否为假设值)。

## 风险提醒
- 🔴 缺货:列出缺货风险的 SKU建议尽快补。
- 🟠 过期/积压:列出过期/积压风险的 SKU建议减量或暂缓。
- 🟡 数据:列出数据不足/波动大/无销量的 SKU提示置信度。

要求:

  • 建议采购量按上述方法算出后直接给出,前后一致、可复现,不要在报告里临时改数。
  • 解释要落到具体口径(日均、安全库存、覆盖期、保质期封顶),不要泛泛而谈。
  • 短保品如出现过期风险,必须显著提醒,并解释为什么不建议多订。
  • 缺失数据/用了默认值,必须在「预测解释」里如实声明假设。

Workflow按序执行一次

  1. 读数据:打开用户上传的 Excel核对销量表/库存表/商品主数据表的表头与样例行, 确认日期、SKU、销量、库存、保质期、箱规、提前期等列。
  2. 逐 SKU 计算:按「预测方法」第 111 步,算出每个 SKU 的建议采购量与诊断指标。
  3. 判风险:按「风险标记」判定每个 SKU 的缺货/过期/积压/数据风险。
  4. 成稿:写「采购建议清单 + 预测解释 + 风险提醒」三段式报告。

Examples

示例:三类典型 SKU

  • 鲜牛奶日均≈16.8,库存仅 8≈0.5天保质期5天箱规6 库存 < 再订货点 → 缺货风险;覆盖期需求+安全库存库存≈45按箱取整为 48 订货后覆盖 3.3 天 < 保质期 5 天,安全。→ 列入「🔴 缺货」,建议采购 48。
  • 吐司日均≈6.5,库存 30≈4.6天保质期3天曾有异常高峰 现有库存可售 4.6 天 > 保质期 3 天 → 过期风险 + 波动大;短保上限算出为 0 → 建议采购 0。 → 列入「🟠 过期」,解释「现有库存已超过保质期内能卖完的量,本期不建议进货」。
  • 可乐日均≈20.5,库存 200≈9.7天,无保质期): 库存远高于覆盖期且无保质期 → 无风险,建议采购 0。→ 说明库存充足、暂不需补。

Guidelines

  • 生鲜底线:保质期是硬约束,过期风险必须显著提醒,宁可小单勤补。
  • 没有销量历史就不要硬造预测,直接说明缺数据并请用户补充。
  • 缺失字段用默认参数兜底,但要在「预测解释」里如实声明假设,不要假装数据齐全。
  • 读 Excel 先核对表头列含义,不要按列位置硬猜;列名中英文/带单位都可能出现。
  • 结果要可复现:同样的数据与参数给同样的建议,便于回归与人工复核。
  • 这是辅助初算,不替代采购/店长的最终判断;措辞用「建议/预计/需关注」,但建议量要具体可执行。