C cenaly.com
免费开始

需求预测

按星期维度的中位数、备料计划、采购草稿与“19:00前售罄”风险提示

1 min read 在演示中打开此界面
On this page 12

需求预测

厨师每天早上都要回答同一个问题:该备多少料。采购员则面对另一个问题:该订多少货。通常两人都凭记忆作答。

打开 管理后台 → 库存 → “预测”标签页(admin.cenaly.com/inventory)。该标签页读取销售历史,并将其转化为三份具体成果。屏幕上的顺序按紧急程度排列:最上方是当天可能售罄的项目,下方是备料计划,再下方是供应商订单草稿。如果没有风险项目,顶部区块就不会出现。最底部是折叠的参考表格“按菜品预测”——在需要核对数字之前,可以不必查看。


预测如何计算#

恰好两个统计量,都能向厨师口头解释清楚:

  1. 这道菜在每周这一天通常卖出多少。 历史窗口为 8 周(56 天)。点估计采用中位数而非平均值:八个星期二中有一个是 40 人的生日宴,用平均值会每周都说“按 40 人份备料”,而中位数会忽略那个星期二。在参考表格“按菜品预测”中,数字旁边显示真实的观测值分布范围(最小值–最大值)、样本中的观测次数以及高峰——销量占比最高的时段。标签页顶部写明了计算依据:“56 天内同一星期几的中位数 · N 个有历史记录的工作日”。
  2. 该需求在一天内如何分布——按时段划分的占比:早晨(6–11)、午餐(11–16)、晚间(16–23)、夜间(23–6)。所有门店的时段边界相同,而分布曲线按全部历史日期统一计算,不单独按星期二计算。

什么算作一次观测也有明确界定:已取消的订单不计入历史;当天尚未结束的日期不进入样本;菜品首次售出之前的日期不计为零(新品不会因为在尚未上架的那些周里被记为“零销量”);“无销售日”与“门店歇业日”不同。日期按门店所在时区计算。计算仅纳入门店营业额排名前 500 的项目——菜单的长尾部分被截断。

同一星期几的观测少于三次——就不会有数字。 表格中数字位置会显示破折号,观测次数列会标注“不足”。这样的菜品完全不会进入备料计划和采购。不可信的预测比没有预测更糟:人们会据此备料和采购。

顶部的切换器选择预测针对哪一天——今天或明天。


备料计划#

按菜品预测通过技术卡展开为对商品和半成品的需求。展开基于当前技术卡,以打开标签页时的版本为准——如果厨师早上改了配方,计划会反映这一改动(在相邻窗口所做的修改会在刷新页面后生效)。

嵌套半成品会逐层展开:如果酱汁由高汤熬制,而高汤本身也是半成品,那么两者都会进入计划——否则厨师会被要求熬酱汁,却不知道没有高汤可用。嵌套深度限制为五层(并防止配方循环引用):更深层的内容视为原料,进入采购而非备料计划。

计划表格:

列 含义
商品名称 需要产出的半成品
剩余 当前已有多少
需求 按当日预测的总需求量
产出 缺口——实际需要熬制/切配的数量
截止 剩余量开始不足的时点

截止时间不是“班次开始”。 如果酱汁够早晨用但不够午餐用,厨师需要在 11:00 前完成,而不是 6:00。时点会四舍五入到最近的时段边界(6:00、11:00、16:00、23:00),而嵌套半成品没有截止时间——那里显示破折号:它们在制成成品“之前”熬制。各行按截止时间排序:截止越早,在列表中越靠上。如果无需备料,标签页会明确显示:剩余量足以满足预测。

半成品的剩余量只消耗一次:如果同一份高汤既用于酱汁又用于汤,简单计算会重复使用剩余量,导致采购少算原料。

按钮 “加入班次看板” 将计划转化为任务清单——参见班次任务看板。会创建一个总任务“备料计划 — <日期>”,每项备料成为其子任务,数量和时点直接写在标题中(“半釉汁 — 16 份,11:00 前”);只有所有子任务关闭后才能关闭总任务。重复点击不会产生重复项:如果该日期的计划已在看板上,按钮会明确提示。

没有技术卡的菜品不会进入计划,并会单独列出警告(最多 20 个名称):对它们预测无法给出任何信息,与其假装订单完整,不如明确说明。


供应商订单草稿#

计划下方是所选覆盖周期的采购草稿(“覆盖天数”字段:通常为交货期加安全库存;默认 3 天,允许 1 至 30 天)。

对每个商品计算两个数值,并取较大者:

  • 该周期内的预测需求量减去当前库存;
  • 补足至目标库存(若商品未设置目标库存,则补足至订货点)——常规仓储逻辑。

为什么取较大者,而不是用其中一个替代另一个:安全库存不知道明天是翻台率翻倍的周五;而预测不知道那些完全不参与菜品卡的商品(包装、耗材)——对它们来说仓储标准是唯一依据。按第二条规则进入列表的行会标注“按订货点”。请注意:该规则看的是目标库存,因此即使商品仍高于订货点但低于目标库存,也会进入草稿——“需要订货”标签页目前不会显示这类商品。

按预测采购的只有最终原料:半成品不会按预测进入供应商订单(它们按备料计划生产)——它们最多只能按仓储标准进入草稿。

若商品设置了包装倍数,数量会向上取整到该倍数。各行按供应商分组(未指定供应商的商品单独成组),按钮会为每个供应商分别创建订单——之后就是仓库板块中的常规采购。


“19:00 前会用完”#

标签页最上方的区块是当日耗尽风险:即当前正在告急的商品。它将当前库存与按时段分布计算出的剩余时段预计消耗量进行比较,并给出库存归零的小时。若无法确定小时,该行会如实显示“撑不到今天结束”,而不会编造时间。

该区块仅针对今天计算:切换到“明天”时它会消失——明天不存在“19:00 前会用完”的风险。

今日节奏修正:如果到中午已经消耗得比平时多,剩余时段的预期会按比例上调,行中会出现类似“今日节奏 ×1.4”的标注。节奏按实际销售计算(报损、变质和员工餐不计入),且只对风险最高的十几行进行测量——其余按常规分布计算。系数被限制在 ×0.5…×2 范围内——需要“今天人多”的修正,但不需要凭一单就做预测。如果完全无从测量节奏,标签页会如实说明采用了常规的星期分布。


预测出现所需的条件#

需要 用途 缺少时
AWS 环境中的品牌(cenaly.com、cenaly.com…) 销售历史由服务器端分析数据库计算,而它只部署在那里 在 cenaly.ru 上标签页始终显示“订单历史还太少”——这条消息说的是历史,但原因不同:那里没有可用来计算的东西
销售历史 计算按星期的中位数 “订单历史还太少,无法预测需求”
历史中至少 3 个相同的星期几 作为样本计算 表格中的菜品标注“少”,且不进入计划
菜品卡 将预测展开为商品 菜品会进入“无菜品卡”警告
最新库存 计算缺口和风险 库存加载完成前标签页不显示任何内容

历史聚合在服务器上大约每半小时重算一次(且仅针对当前在用的账户);菜品卡展开和库存扣减在打开标签页时按当前数据计算。


相关板块#

  • 仓库——菜品卡、库存、入库和采购
  • 班次任务板——备料计划的去向
  • 菜单工程——当需求和毛利都可见时,该如何处理菜品
  • 分析——按菜品和时段的销售

常见问题#

为什么有一半菜品标注“少”?#

因为这些菜品在该星期几的历史中少于三笔销售——例如菜品两周前才出现在菜单上。当观察数据足够时,数字会自动出现;在此之前,菜品既不参与备料计划,也不参与采购。

为什么使用中位数而不是平均值?#

中位数对异常值不敏感。一场 40 人的宴会会把平均值拉高,导致门店连续几周备料过多。界面中完全不显示平均值——只显示中位数、离散程度和观察次数。

预测会考虑天气、节假日、足球赛吗?#

不会。它只知道星期几和时段。节假日周和隔壁的比赛仍然由店长记在脑子里——这比假装考虑过它们的模型更诚实。

可以预测未来一周吗?#

标签页显示今天和明天。采购的周期单独设置——通过“覆盖天数”字段:将单日预测乘以该天数。

采购草稿会直接向供应商发送订单吗?#

不会。它只是草稿:多余的行由您取消勾选,然后才点击创建——生成的是“仓库”板块中的常规采购草稿,每个供应商一份。数量在已创建的订单中修改,和平时一样。

Was this article helpful?