Demand Signals
通过多源数据识别早期市场趋势,辅助电商选品与库存决策。
基于历史销量、季节性等数据,智能预测库存需求并生成补货建议。
openclaw skills install @leooooooow/inventory-forecast命令、参数、文件名以原文为准
库存耗尽是电商运营中最昂贵的错误之一——它会严重降低搜索排名,让竞争对手抢走销售机会,并可能需要数周时间才能恢复。本技能通过分析历史订单速度、季节性需求模式、供应商交货周期以及即将到来的促销活动,预测未来的库存需求,帮助你在缺货前自信地下达补货订单,避免影响业务势头。
| 决策项 | 强(推荐) | 可接受 | 弱(不推荐) |
|---|---|---|---|
| 速度基准 | 近90天日均销量,最近30天权重更高,排除促销峰值影响 | 近30天简单平均 | 终身平均或单月最佳表现 |
| 安全库存 | 统计方法:z值 × 需求标准差 × √交货周期 | 固定20-30%的交货期需求缓冲 | 无安全库存,或“剩余多少就用多少” |
| 交货周期输入 | 全程门到门:生产 + 质检 + 运输 + 海关 + 收货,含波动范围 | 供应商报价生产时间 + 标准运输时间 | 仅供应商报价生产时间 |
| 促销需求提升 | 基于自身历史促销数据对同一SKU/品类进行建模 | 类别基准(如闪购提升2-4倍) | 主观猜测或忽略促销影响 |
| 季节性因素 | 基于12个月以上自有数据构建的月度环比指数 | 平台/品类季节曲线(如第四季度增长) | 假设全年需求平稳不变 |
| 补货触发条件 | 补货点 = (日均销量 × 交货周期) + 安全库存,每周复核 | 固定日历补货(如每月一次),按预测量下单 | 库存“看起来不多”时才补货 |
| 过剩库存处理 | 标记持有超过90天覆盖期的SKU,并建议降价或捆绑销售方案 | 在报告中注明滞销品 | 所有SKU一视同仁 |
从用户处获取以下信息:(a) 每个SKU的销售历史——理想为12个月,至少90天,粒度为每日或每周;(b) 当前在库及在途库存;(c) 每个SKU的供应商交货周期,包括生产、运输方式和清关时间;(d) 未来促销计划,包含日期和预计折扣力度;(e) 最小起订量(MOQ)和箱规约束。若数据以CSV或导出文件形式提供,请解析处理。若关键数据缺失,请明确说明所做假设,而非停滞等待。
针对每个SKU,计算过去90天的日均销量,其中最近30天赋予更高权重(例如按50/30/20分配三个时间段)。剔除或校正受过往促销和缺货影响的日期——缺货日并非零需求日,应根据缺货前的正常销售速率估算流失需求。
若有12个月以上的自有历史数据,基于该数据构建季节性指数(每月销量 ÷ 平均月销量);否则使用品类通用季节曲线并予以说明。将基础销量乘以预测期内的季节性指数。若SKU明显呈增长或衰退趋势(对比近30天与近90天销量),可加入趋势因子。
针对每项计划中的促销活动,估算销量:促销提升倍数 × 基础日均销量 × 促销持续天数。若已有同类SKU的历史促销数据,优先使用;否则采用保守的品类基准(如闪购2-4倍,全站促销1.5-2.5倍,直播活动3-8倍),并标注不确定性。增加促销后的需求回流衰减(通常促销结束后1-2周内销量下降10%-20%)。
对每个SKU:
补货点 = (预测日均销量 × 全周期交货天数) + 安全库存
安全库存 = z × σ_需求 × √(交货周期),其中z=1.65对应A类SKU的95%服务水平;C类SKU可接受25%的固定缓冲。
补货数量 = (交货周期 + 审查周期)内的预测需求 − 当前在库 − 在途库存 + 安全库存,向上取整至MOQ或箱规。标记已超过补货点的SKU为“紧急”。
生成滚动90天的补货日历:对每个SKU,列出最晚安全下单日期(促销日期或预计缺货日期减去完整交货周期)、补货数量和预估采购成本。按周排序采购计划,使现金流支出清晰可见。标记冲突情况:本周必须下单的订单,以及因交货时间不足无法完全满足促销需求的选项(如部分空运、限制促销数量、分批发货)。
进行合理性检查:总预测需求是否大致匹配近期收入?补货后的库存覆盖天数是否在A类SKU的30-90天范围内?是否存在既被标记为“紧急”又处于过量库存状态的SKU(数据错误提示)?
使用 references/output-template.md 中的输出模板交付结果,运行 assets/forecast-quality-checklist.md 中的检查清单,并明确列出所有假设。
输入: 我在 TikTok Shop 销售一款胶原蛋白饮品。过去 90 天的日均销量约为 38 单,最近 30 天为 45 单/天。我已确认将于 7 月 15 日举行限时促销活动,折扣 25%,持续 24 小时。供应商生产周期为 30 天,海运时间 12 天,到货验收需 3 天。当前库存:1,850 单;在途库存:1,000 单,预计 6 月 20 日到达。上一次促销(3 月)日销量达 410 单,当时日均基础销量为 30 单。最小起订量(MOQ)为 500 单,包装规格为每箱 50 单。
处理过程:
加权日均销量 ≈ 42 单(近期 30 天数据加权上调)。3 月促销倍数 = 410 ÷ 30 ≈ 13.7 倍 — 远高于 2–4 倍的基准值,因此采用自身历史数据:促销日预测销量 ≈ 13.7 × 42 ≈ 575 单,加上前后两天 15% 的溢出效应,总促销期需求 ≈ 640 单。促销后销量回落:-15%,持续 10 天。完整前置时间 = 45 天。从 6 月 1 日至 7 月 15 日(共 44 天)的需求 ≈ 42 单/天 × 44 天 ≈ 1,850 单 + 促销需求 640 单 ≈ 2,490 单。可用库存 = 1,850 + 1,000 = 2,850 单。促销后剩余库存 ≈ 360 单,相当于约 9 天覆盖量 — 低于安全库存水平(z=1.65,σ≈12,√45 ≈ 6.7 → 安全库存 ≈ 135 单)。但以 45 天前置时间计算,9 天覆盖意味着在下一订单到货前存在缺货风险。下个 75 天的补货数量:42 × 75 × 1.05 季节性系数 ≈ 3,300 单 − 促销后剩余 360 单 + 安全库存 135 单 ≈ 3,100 单 → 四舍五入为 3,100 单 → 3,100 ÷ 50 = 62 箱。最晚下单日期:7 月 15 日 + 9 天覆盖 − 45 天前置时间 = 6 月 9 日 — 本周内完成下单。
输出:
紧急采购 3,100 单,确保促销期间有充足库存;促销后库存恢复至 75 天覆盖水平。若该订单延迟至 6 月 14 日之后,建议改用空运 600 单(门到门 12 天)作为临时补货方案。
输入: 来自 Shopee 家居类店铺的 14 个 SKU 的 CSV 导出数据,包含 12 个月的历史销售记录、当前库存水平,所有商品来自同一供应商,门到门交付周期为 60 天,每月审查一次订单。
处理过程:
按每个 SKU 计算加权日均销量和季节性指数。结果分为三类:
(a) 三个 A 类 SKU(收纳盒、晾衣架)日均销量 25–60 单,库存覆盖 20–35 天 —— 在 60 天前置时间下均已超过再订货点 → 紧急处理,并进行缺货损失修正:因晾衣架 5 月曾缺货 6 天,实际销量从 31 单/天修正为 36 单/天。
(b) 七个 B 类 SKU 库存覆盖 70–100 天 → 按日历安排正常采购,未来六周内分批执行。
(c) 四个 C 类 SKU 库存覆盖 180–400 天,其中一款季节性风扇支架即将进入淡季 → 不再补货;建议在 11.11 期间捆绑收纳盒并打 20% 折扣,预计可释放约 4,200 元现金流,实现年底资金回笼。
输出:
生成包含“紧急”、“计划”、“跳过”标记的补货清单表,一份涵盖未来 90 天的采购日历(共分三批,总采购金额约 18,400 元),更新后的缺货修正后日均销量数据,以及积压库存处置方案。假设说明:无促销计划(用户已确认);对两个历史数据不足 12 个月的 SKU 应用了品类季节性调整。
references/output-template.md — 预测报告的标准输出模板references/demand-forecasting-methods.md — 销量加权方法、季节性指数、促销拉升建模references/lead-time-and-safety-stock.md — 前置时间拆解、安全库存公式、服务水平设定、再订货点计算assets/forecast-quality-checklist.md — 预测交付前的质量检查清单已收录 15 个 Skill