烘焙行业常用订货算法介绍
烘焙订货的难点在于产品特性两极分化:现烤面包、蛋糕这类短保产品保质期以天计,订多即滞销、订少即缺货;面粉、馅料这类长保原料则要控库存、防积压。单纯凭经验订货,很容易陷入"缺货流失生意、滞销造成损耗"的两难。围绕这一矛盾,行业沉淀出三种适配性较强的订货算法,按门店规模、产品特性与订货周期分别适用;在它们之上,还要按促销、退货率、估清、同期波动、节日与起订区间各修一轮。本文说明这三种基础算法的核心逻辑、计算口径与适用边界,并逐条给出系统预置的六套微调规则模板原文,供配置智能订货时参考;这些算法在系统中的编写与落地见 订货算法。
一、最低库存补齐订货法
核心逻辑
以固定库存为基准补齐缺口。提前为每款商品设定"最低库存"(门店日常运营所需的最低保障量),订货时只算最低库存与当前库存的缺口,缺口即订货量;订货周期不是一天一次时,再按周期天数放大基准。无需历史销售统计,是三种算法里最基础、最易上手的一种。
计算口径
- 订货周期为 1 天时:订货数量 = 最低库存 − 当前结存数;
- 订货周期大于 1 天(如 3 天、7 天)时:订货数量 = 订货周期 × 最低库存 − 当前结存数。
算出的订货量还要落到总部起订标准内收口:低于最低起订数量按 0 处理(本次不订),高于最高起订数量按最高起订数量订,避免超出管控范围。
适用场景
品类少、管理成本低的小型单店;保质期不小于 3 天、销量波动小的长保原料常规补货;培训资源有限、只需记住"补齐最低库存"的新店长;标准化程度高的连锁门店的基础补货。
特点与落地建议
优点是设置简单、无需统计历史销量、能守住基础库存、断货风险低。短板是灵活性差,无法跟随周次波动、节假日与促销调整订货量,容易出现"旺季缺货、淡季积压",不适合短保产品。落地时长保原料的最低库存按 1–3 天用量设定(如面粉按 3 天用量),订货周期可取 3–7 天;短保产品若临时使用,最低库存按半天用量、按 1 天周期订货,以减少滞销。
二、安全存量订货法(销售预测补齐订货法)
核心逻辑
在最低库存补齐的基础上引入销量预测与安全存量,兼顾"防断货"与"控损耗"。先用历史同期销售数据预测当期销量,再叠加一层"安全存量"作为防止超预期、保障陈列的备用量,最终按"预测销量 + 安全存量 − 当前库存"补齐。它是烘焙行业最常用、最适配短保产品的算法,也是连锁品牌的主流选择。
计算口径
分四步:
- 计算安全存量:安全存量 = 日均销用量 × 安全系数;
- 按同期权重预测销量:预测销售数 = 上周同期销售数 × 0.5 + 上二周同期销售数 × 0.3 + 上三周同期销售数 × 0.2;
- 计算基础订货量:订货数量 = 预测销售数 + 安全存量 − 当前结存数;
- 按起订标准收口:低于最低起订数量置 0,高于最高起订数量取最高起订数量。
第 4 步在系统里是一条独立的模板【按起订规则调整订货结果】,内置的【安全存量订货法】代码本身只算到第 3 步;需要起订区间收口时,把这条模板的代码接在算法最后即可。
关键参数:安全存量与安全系数
安全存量又称"展示量",既防断货,也通过充足陈列吸引购买。例如门店希望打烊时货架仍留有 2 个蛋挞,这 2 个就是蛋挞的安全存量。安全系数把日均用量折算成这层备用量,取值越高陈列越满、损耗风险越大,越低越省但易缺货。
系统内置模板对这两个参数给了一套行业口径,可以直接对照自己的情况调整:
- 按保质期分开设。 长保质期货品(干货、内场保质期 3 天及以上的原料、面粉、外场的蛋糕曲奇等)安全存量建议设为 1 天的用量;短保质期货品(内场面包、外场裱花、切片、寿司等)按中厨、边厨冷藏冰箱的空闲、面包盘与甜甜盘的数量来定,一般每盘 2–3 个产品作为基本展示量。
- 短保的展示量有上限。 原则上短保质期货品的展示量不能超过当天预估销售量的 50%(营业额极低的门店除外),超过之后大概率出现滞销浪费。
- 两种定法。 门店面积大,安全存量通常取日平均销量的一定比例,这个比例就是安全系数;门店面积小,则按布局或营业状况给出一个相对固定的数量。
- 跟生意好坏挂钩。 生意好的门店安全系数应设高些,避免损失生意机会;生意差的要调低,避免过期损耗。建议按门店对商品物料批量设置,也可以对爆款单品或排名靠前的商品单独设一个更高的系数。
- 跟订货时点挂钩。 订货时间距离下班关门越近,安全系数可以越低——这段时间的安全系数约等于"该周期销量 ÷ 全天总销量"。举例:门店晚上 10 点下班,长期约定下午 6:00 订货、安全系数 0.4;若以后改到晚上 8:00 订货,安全系数应下调到 0.2–0.3。
- 没有绝对标准。 系数具体定多少,本质上是不同品牌门店的管理思想与管理策略,不存在唯一正确答案。
特点与落地建议
优点是贴合短保"新鲜度为王"的特性,既控损耗又防断货,行业经验上使用该算法的门店其短保损耗通常明显低于纯经验订货。它对历史销量与安全存量的准确性有要求,新品缺历史数据时预测偏差较大,宜先用保守参数试运行、积累销量后再收紧。适合 1 天 1 次订货的现烤类门店与连锁品牌。
三、销售预测订货法(日清产品专用)
核心逻辑
专为每日清库、未售当日退回工厂的烘焙产品设计。它依托烘焙销售较强的星期周期性,只用近 3 周同星期的历史销量加权测算,不再另设最低库存与安全存量,建议订货数直接取预测销量,再按日常业务微调,实现"以销定订、日清无积压"。
计算口径
预测销售数 = 上周同期销量 × 0.5 + 上二周同期销量 × 0.3 + 上三周同期销量 × 0.2,系统建议订货数即取该预测值。
特点与落地建议
权重随时间由近及远递减,上周权重最高(50%),更贴近近期消费趋势;只用历史同期数据即可测算,逻辑直观、数据易取。适合每晚清零、当日退回的日清产品;对需要跨天留存、或受促销与节日显著影响的品类,需叠加促销上浮、退货率下调、节日修正等调整规则,这部分在 订货算法 中以可维护的逻辑实现。
四、六套微调规则模板
前三节解决"基础订多少",实际业务里还要按促销、退货、售罄、节日、起订区间再修一轮。系统【订货知识学习】页签一共预置九套模板,除上面三套基础算法外,其余六套就是这类微调规则:它们都不重新计算需求,只在上一步算出的 [订货数量] 或 [预测销售数] 上乘一个系数、或做一次加权,因此可以按需串接在同一段算法里。以下代码逐字取自系统内置模板,系数按自己门店的经验值改。
1)考虑促销调整订货结果
// 促销活动 会提升多少销售量 这个比例1.2相当于提升 20% 是一个经验值
if [参加促销] then
[订货数量] := [订货数量] * 1.2 ;物料当期参加促销即上浮 20%。系数 1.2 是经验值,促销力度大的品类可以调到 1.3–1.5,力度小或只是常规会员价的可以降到 1.05。
2)考虑退货率调整订货结果
// 如果退货率过高,我们可以 降低订货数量,例如降低10%,这是一个经验值
if [近7天平均退货率] > [退货率标准] then
[订货数量] := [订货数量] * 0.9 ;近 7 天平均退货率一旦超过【智能订货用户特点】里设定的退货率标准,说明上一轮订多了,本次整体下调 10%。退货率标准与是否计入报废、退回类型口径都影响这个数,改标准前先看 智能订货用户特点。
3)考虑估清时间调整订货结果
// 如果连续过早估清,我们可以 增加订货数量,例如增加10%,这是一个经验值
if [近3天估清时间] < '18:01' then
[订货数量] := [订货数量] * 1.1 ;
if [昨天估清时间] < '18:01' then // 昨天仍然提前估清 继续增加订货数量
[订货数量] := [订货数量] * 1.05 ;估清时间就是当天卖空、报估清的时刻,字符型时间可以直接比大小。近 3 天平均在 18:01 之前就售罄,说明需求没被满足,先加 10%;昨天仍然提前售罄,再叠加 5%。这条规则专门对付短保爆品"天天订、天天早早卖光"的情况。判定时刻 '18:01' 要按门店打烊时间与估清录入习惯改。
4)考虑同期订货调整订货结果
// 为了保证订货数量不会波动过大 我们可以参考上周同期订货量来调整本次订货
[上周订货量] := 0 ;
if [星期几] = 1 then
[上周订货量]:= [近七天星期一订货量] ;
if [星期几] = 2 then
[上周订货量]:= [近七天星期二订货量] ;
...(3~7 依此类推,分别取 近七天星期三订货量 到 近七天星期天订货量)
if [上周订货量] <> 0 then
[订货数量] := ([订货数量]*0.6) + ([上周订货量]*0.4) ;按当天的 [星期几] 取最近 7 天里同星期几的实际订货量,再用 6:4 加权平滑本次结果,避免订货量在周与周之间大起大落。代码里的 [上周订货量] 是脚本内部的中间变量,不属于系统提供的输入参数,只在这一段里有效。
5)节假日调整销售预测
if [节假日] then
begin
if [公历节日] <> '' then
begin
if ([公历节日] = '情人节')or([公历节日] = '圣诞节') then
[预测销售数] := ([预测销售数] *0.4)+([去年公历同期销售数]*0.6)
else
[预测销售数] := ([预测销售数] *0.6)+([去年公历同期销售数]*0.4)
end
else
begin
if ([农历节日] = '除夕')or([农历节日] = '春节') or ([农历节日] = '元宵节')or([农历节日] = '中秋节') then
[预测销售数] := ([预测销售数] *0.4)+([去年农历同期销售数]*0.6)
end ;
end ;系统识别的公历节日包括儿童节、父亲节、母亲节、感恩节、国庆节、记者日、建党节、建军节、教师节、劳动节、老人节、青年节、情人节、圣诞节、万圣节、愚人节、元旦节;农历节日包括除夕、春节、端午节、三八节、七夕节、元宵节、中秋节、重阳节。
写法上有三个要点:
- 情人节、圣诞节这类对烘焙拉动最强的公历节日,把去年同期权重放到 0.6;其余公历节日按 0.4 去年同期、0.6 常规预测;
- 农历只处理除夕、春节、元宵、中秋四个大节,其余农历节日不改预测;
- 公历节日为空时才走农历分支,所以两个名称字段不要同时填。
内置模板给的这些权重同样只是参考起点,实际影响因子应当由零售企业按自己以往的经验重新定义。
6)按起订规则调整订货结果
// 针对订货数 考虑当前门店的订货模版的标准范围进行调整 建议这个规则放在算法的最后
if [订货数量] < [最低起订数量] then
[订货数量] := 0 ;
if [订货数量] > [最高起订数量] then
[订货数量] := [最高起订数量] ;把结果收进门店订货模板的起订区间:低于下限直接归零(本次不订),高于上限按上限订。模板注释明确建议这一条放在算法的最后,前面所有上浮、下调都做完之后再收口,否则收口之后的微调又会把数量推回区间外。
串接顺序建议
一条完整的算法通常按"基础算法 → 促销 → 退货率 → 估清 → 同期平滑 → 节日 → 起订收口"的顺序书写。前五种微调是对 [订货数量] 连乘,同时命中时效果叠加而不是取最大值;节日修正动的是 [预测销售数],要放在算出预测之后、算出订货数量之前。配好之后用 模拟测试数据 逐条验证单一规则与多重命中两种用例,再走 订货算法版本管理 上线。
五、三种算法的选用
| 算法 | 是否需要历史销量 | 主要适配 | 订货周期 | 局限 |
|---|---|---|---|---|
| 最低库存补齐 | 否 | 长保原料、小型单店基础补货 | 可 3–7 天 | 不随波动调整,短保易滞销 |
| 安全存量(销售预测补齐) | 是 | 短保现烤、连锁主流品类 | 一般 1 天 | 依赖预测与安全存量准确性 |
| 销售预测订货法 | 是 | 每日清库、当日退回的日清产品 | 1 天 | 需叠加促销、退货率、节日修正 |
实际配置时通常按品类混用:长保原料走最低库存补齐,常规短保成品走安全存量法,日清产品走销售预测订货法,再按第四节的六套微调规则补上促销、退货、估清、节日与起订收口,最后在 订货算法 里为不同物料绑定不同算法、通过 订货算法版本管理 验算上线。
附:本文档变更记录
| 日期 | 变更 |
|---|---|
| 2026-11-09 | 初稿 |
| 2026-11-10 | 按客户端内置模板补第四节「六套微调规则模板」,代码逐字取自【订货知识学习】页签的预置模板;安全系数一节补入内置模板注释里的行业口径(长短保分设、展示量不超当日预估销量 50%、与订货时点的换算);第三节改回系统里的模板名【销售预测订货法】;注明起订收口是独立模板、需接在算法最后 |
