为什么生鲜加工不能直接搬制造业BOM?聊聊物料系统的设计过程

0 评论 108 浏览 0 收藏 23 分钟

门店要的是净菜成品——净白菜段、净土豆丝、蔬菜拼盘。但采购进来的是毛菜原料——整颗大白菜、带泥土豆。中间这步"原料变成成品",到底投了多少料、出了多少货、损耗去哪了、成本怎么算,过去全靠工人经验和纸质流转卡,没人说得清。
我们花了段时间,把这块从"人盯人"推到"系统管"。踩了不少坑,也推翻过几版方案。这篇文章就讲讲我们最后怎么设计的,重点不是我们多牛,而是生鲜加工这个场景逼着你做哪些不一样的取舍。

先说结论:制造业BOM,生鲜抄不动

如果你做过制造业ERP,对BOM(物料清单)不会陌生。它的逻辑很简单:一个成品由哪些原料组成、各用多少量,写清楚就行了。1个椅子 = 4条木腿 + 1块面板 + 6颗螺丝,干干净净。

我们最早也想过直接搬。搬完发现不对劲。

问题出在三个地方:

  1. 出成率不是固定比例。 制造业BOM里,1个成品需要的原料量是确定的——4条腿就是4条腿,不会变。但生鲜加工,100kg大白菜洗完切完,可能产出有85kg净白菜段,也可能只有78kg。这个”出成率”会波动,产地不同、季节不同、加工手法不同,都有影响。你要是写死85%,实际出了78%,要么原料不够得临时补采,要么采多了浪费。
  2. 有工序要求,不是简单拼装。 制造业的工序要求写进SOP就行,工人照着做。但生鲜加工的工序要求是”切段3cm”还是”切丝3mm””清洗去根去烂叶”这种——写在纸质流转卡上,工人容易漏、容易看错,同一批菜不同人切的规格都不一样。这不是BOM本身的问题,是”工序怎么传达给工人”的问题。
  3. 成本算不清。 制造业BOM成本 = 各子件采购价之和,简单加法。但生鲜成品成本 = 原料成本 ÷ 出成率 + 加工费,出成率一波动,成本跟着晃。而且净菜还能拼成拼盘,多层BOM叠起来,手工算成本根本算不准。

所以我们的BOM系统,本质上是对制造业BOM做了三层改造:出成率从固定值变成双轨制、工序从纸质卡变成二维码扫码传达、成本从加法变成出成率反算。下面拆开讲。

第一步不是画页面,是搞清楚”物料怎么流”

很多产品经理做BOM系统,上来就画配方管理页面。我们没这么做。

第一步是跟着加工车间跑了一遍完整流程,搞清楚物料从进到出到底怎么走的。得出的结论是:生鲜加工有一条非常清晰的链路,但过去这条链路全是断点。

这条链路上,每个环节的信息过去是怎么传递的?

  • 领料出库:工人凭记忆去仓库拿加工原材料,拿多少算多少,没有领料单,有领料单也是事后随意填写,无人复核确认。
  • 加工工序:纸质流转卡,工序要求手写,工人容易漏看、漏做
  • 加工产出:实际出了多少成品,不记录或者记在Excel里,没人汇总
  • 质检:质检员口头通知合格不合格,没有系统记录
  • 成品入库:仓管手工登记,批次效期混乱

整条链路没有一个系统串联,全是信息断层。管理层想知道”今天那批白菜加工到哪了”,得打电话问车间主任;想知道”出成率怎么样”,得翻Excel表格;想知道”净菜成本是多少”,没人能即时回答。

所以我们的设计目标很明确:用一条数字化链路串联整个加工过程,让每个环节的信息都能被系统记录和传递

建模:定义核心实体和关系

搞清楚业务流程后,第二步是建模——定义系统里的核心实体和它们之间的关系。这一步决定了后面的功能模块怎么拆、数据结构怎么建。

我们定义了五个核心实体:

关键关系模型:

这里有个设计决策值得说说:为什么出成率要双轨,不写死一个值?

最初我们也想给每个品类定一个固定出成率,比如白菜85%、土豆88%,简单省事。但跑了一周数据发现,实际出成率天天在波动——同一颗白菜,张师傅切出来85%,李师傅切出来82%;今天的货产地好出成率87%,明天的货品质差出成率80%。

写死一个值,要么采购量反算不准(原料不够),要么成本核算不准(账面和实际有出入)。所以我们改成双轨:标准出成率当基准线用,实际出成率当真实值用,两者对比,偏差超过5%就预警。

这个5%的阈值怎么定的?跑了一个月历史加工数据,算出来大多数品类正常波动范围在3%-5%以内。超过5%大概率不是”正常波动”,而是出了问题——要么原料品质下滑,要么加工手法不对,要么称重有误差。5%就是“该注意了”和“正常波动”的分界线。但是极端情况下,连续异常就应该考虑调整标准了。

二维码贯穿:从纸质卡到扫码报工

建模完了,下一步是设计流程串联的机制。

我们选了二维码。理由很直白:生产现场的工人,大多数是中年从业者,让他们安装APP、学习操作界面,学习成本太高。扫码是最低门槛的操作方式——手机摄像头对准一扫,信息就出来了,不需要任何培训。

但二维码怎么用,有个关键选择:每张工艺路线卡一个二维码,还是每批原料一个二维码?

最初我们想的是按批次——同一批100kg白菜一起加工,给这批一个二维码。但后来发现不对:同一批原料可能分多卡加工(比如50kg一卡,两卡并行),如果按批追踪,只知道”这批白菜总体出了多少成品”,不知道”第一卡出了多少、第二卡出了多少”。而出成率是按单次加工记录的,只有每卡独立追踪,才能精确到每次加工的实际投入量和产出量。

所以最终方案是:每张工艺路线卡绑定一个唯一二维码

完整流程是这样的:

一个二维码从任务下达到报工完成,贯穿整条加工链。 工人不需要填表、不需要口头汇报,扫码获取信息、扫码报工,最多补一个实际产出量数字。

这里有个细节值得展开:报工分两步,不是一次性完成。

第一步是扫码确认工序完成——这是必填的,扫了就代表”我这道工序做完了”。第二步是补录实际产出量——这个可以延后,但限定时间内必须补录,否则出成率数据就有缺口。为什么要分两步?因为工人完成工序的那一刻,不一定有时间马上称重记录产出量,让他先扫码确认”做完了”,保证工序进度实时更新;产出量等忙完这批再补,不影响出成率统计(我们有补录时限提醒,超时未补会自动催录)。

出成率双轨制:怎么追踪、怎么预警

出成率是整个BOM系统的命门。前面说了为什么用双轨,现在说具体怎么落地。

标准出成率:在商品档案里预设,按品类给经验值。这些值不是拍脑袋,是跑了三个月历史加工数据回算的均值:

  • 叶菜类:80%-85%(清洗去根去烂叶损耗大)
  • 根茎类:85%-92%(去皮损耗比叶菜小)
  • 瓜果类:90%-95%(基本只是清洗)

标准出成率的用途:采购反算和成本预算。门店要85kg净白菜段,系统用标准出成率85%反算出需要采购100kg大白菜。这个数不一定精确,但作为采购计划的基准线够用——安全库存会兜住偏差。

实际出成率:每次加工都记录”实际领了多少料、实际出了多少成品”,算出真实的出成率。取近7天加权均值作为”实际出成率”——不拿单次数据下结论,因为单次波动太大,7天均值更能反映当前真实水平。

偏差怎么算:

预警不是为了罚谁,是用来发现问题的。 持续偏低可能意味着原料品质下滑、加工手法需要培训;偶尔偏高可能意味着称重有问题。出成率波动控制在5%以内,对补货大局基本没影响——安全库存有缓冲兜着。但超过5%,就值得去查原因了。

还有一个设计决策:标准出成率要不要根据实际值自动迭代?

我们没做自动迭代。原因是:实际出成率的波动有时是短期因素(比如某批货品质差),不代表标准值就该下调。如果系统自动把标准值跟着实际值走,短期波动会被”固化”进标准值,反而让采购反算和成本预算失准。

我们做的是:偏差持续预警时,系统建议人工调整标准出成率。产品经理或运营看数据、判断原因,决定是否调整。这是一个”系统提示、人做决定”的设计——和补货那篇讲的”算法算、人审核”思路一致。

成本核算:不是加法,是出成率反算

制造业BOM成本是简单加法:成品成本 = 子件A采购价 + 子件B采购价 + …

生鲜成品成本不是加法。因为出成率意味着:你投入的原料量 > 你得到的成品量,原料成本不能1:1直接分配给成品,得按出成率反算。

公式:

翻译成大白话:1kg成品消耗的原料成本,不是1kg原料的采购价,而是1kg ÷ 出成率 kg原料的采购价——因为出成率85%意味着1kg成品需要1.18kg原料。再加上加工费(清洗、切配的人力成本),就是成品单位成本。

大白菜例子:采购价2.0元/kg,出成率85%,加工费0.3元/kg

净白菜段成本 = 2.0 ÷ 0.85 + 0.3 = 2.35 + 0.3 = ¥2.65/kg

卖3.5/kg,毛利24%——这个数采销才敢定价

这里有个坑我们踩过:成本要用实际出成率回写,不能用标准值。

早期我们图省事用标准出成率算成本,结果库存账面价值和实际总有出入——标准出成率85%,实际82%,账面上净菜值2.65/kg,实际成本2.68/kg,差3分钱。单品看不出,几百个SKU叠加起来,月底盘点库存价值差好几千,账实不符。

后来改成每次加工完按实际出成率重算成本、更新库存账面价值,账才平了。生鲜这块,账实相符是硬指标,容不得”大概差不多”。

多层BOM:净菜还能拼成拼盘

单层BOM是”1个原料→1个净菜”,比如白菜→净白菜段,逻辑简单。但实际业务里还有组合产品:把几种净菜拼成一个蔬菜拼盘卖给门店。

这时候净菜成品本身又变成了下一层BOM的原料——”净白菜段”既是白菜加工的成品(第一层BOM的父件),又是拼盘加工的原料(第二层BOM的子件)。系统靠成品编码串起来,层层往上展开算原料需求。

拼盘500g = 净白菜段0.3kg + 净土豆丝0.2kg

净白菜段0.3kg ← 需要大白菜 0.3 ÷ 0.85 ≈ 0.35kg

净土豆丝0.2kg ← 需要土豆 0.2 ÷ 0.88 ≈ 0.23kg

所以拼盘500g最终原料需求 = 大白菜0.35kg + 土豆0.23kg

多层BOM的好处是:门店不管要净菜还是要拼盘,系统都能一路反推到最底层的原料需求,采销看到的永远是”今天该买多少斤白菜、多少斤土豆”,不用人工换算。

边界情况:拼盘子件缺货怎么办?

子件库存不足时,拼盘BOM状态标为”原料不足”,排产时提示需先完成子件加工。比如门店要蔬菜拼盘,但净白菜段库存不够,系统会提示”需先完成大白菜→净白菜段加工”,加工完子件入库后,拼盘BOM状态才变为”可排产”。这保证了拼盘不会在子件缺货的情况下强行排产,避免配错料。

加工模拟器:排产前的决策辅助

有了BOM配方和出成率数据,排产前就可以预估投入和产出。我们做了一个加工模拟器——输入原料投入量、采购单价、加工费,系统自动按出成率计算成品产出量和单位成本。

这个功能的定位是决策辅助工具,不是核心功能,但实际用起来很顺手。排产组长每天早上看一眼模拟器,就能大致判断”今天这批白菜能出多少净菜、成本大概多少、够不够配给门店”,心里有底再下达任务。

模拟器的计算逻辑其实就是把前面讲的公式串起来:

输入:大白菜投入100kg,采购价2.0元/kg,出成率85%,加工费0.3元/kg

成品产出量 = 100 × 0.85 = 85kg净白菜段

成品单位成本 = 2.0 ÷ 0.85 + 0.3 = ¥2.65/kg

总成本 = 85 × 2.65 = ¥225.25

模拟器用的是标准出成率(排产时实际出成率还没发生),所以算出来是预估值。实际加工完后,系统会用实际出成率重算真实成本,回写更新库存账面价值。

功能优先级怎么定的

整个BOM系统有五个功能模块,上线顺序不是随便排的,有一条明确的逻辑线:

逻辑很简单:P0先跑通数据链路(配方定义+扫码报工),P1再叠加数据价值(出成率追踪+成本核算),P2锦上添花。数据链路不通,后面的功能都是空中楼阁。

边界情况处理

系统设计不能只考虑正常路径,还得处理各种边界情况。我们遇到并处理了这些:

这些边界处理的设计原则是:异常即打断——偏差超5%自动预警弹出、过期批次锁定不可出库、缺料BOM不可排产,不依赖人主动发现。系统帮你盯着,出了问题第一时间拦住。

交互设计原则

最后说一个容易被忽略的事:BOM系统的交互设计。

我们定了三条原则:

  1. 工人端:扫码即操作。 不要求工人填表,扫码获取信息、扫码报工,最多补一个产出量数字。生产现场节奏快、工人时间碎片化,任何需要”先学习再操作”的交互都是阻力。扫码是零学习成本的操作。
  2. 管理层端:数据即决策。 出成率偏差可视化(进度条+颜色分级:绿色正常、黄色偏差5%内、红色超5%),成本计算实时联动参数变动。管理层不需要自己算,系统算完摆在那,他看一眼就能做判断。
  3. 异常即打断。 不是让管理层”定期去看看数据有没有问题”,而是系统发现异常就主动弹出预警。人不可能天天盯着几百个SKU的出成率,系统盯比人盯靠谱。

几个值得反思的点

做完这套之后回头看,有几个判断我觉得是对的,也有几个可以做得更好:

对的:

  • 没做成全自动加工排产。生鲜加工变量太多——原料品质波动、工人手艺差异、设备临时故障,全自动排产的翻车成本太高。系统算建议、人做决定,这个分工是对的。
  • 出成率用双轨而不是写死一个值。这个看着增加了系统复杂度,但实际是让数据更真实。标准值当基准线、实际值当真实值,各司其职,比“一个值两头不靠”好得多。
  • 二维码而不是APP。生产现场的工人不是互联网用户,扫码是他们能接受的最低门槛。交互设计不是追求“功能丰富”,而是追求“阻力最小”。

可以更好的:

  • 出成率的标准值目前还是靠品类经验值预设,没有做数据驱动的自动建议。下一步想做的是:积累足够多的实际出成率数据后,系统自动计算每个品类的近30天实际均值,作为标准值的调整建议,从“经验预设”往“数据驱动”推。
  • 多层BOM的层级目前最多支持三层(原料→净菜→拼盘),如果后续有更复杂的组合产品(比如净菜拼盘+调味包→半成品菜包),可能需要支持更多层级。不过现阶段三层够用,先不提前过度设计。
  • 工序要求的传达,目前是扫码后文字展示。有些工序要求其实更适合用图片或短视频展示——比如“切段3cm”,工人看文字可能还是会有偏差,看一张3cm切段的参考照片会更直观。这是后续可以优化的交互方向。

和补货系统怎么衔接

最后说一个容易绕晕的问题:BOM系统和补货系统怎么接上?

逻辑一句话:门店要的是成品(净菜/拼盘),系统通过BOM反算成原料需求,再把原料需求喂给补货公式算采购量。BOM负责”成品↔原料”的转换,补货负责”该买多少”。两者各管一段,接口就是反算出来的原料需求量。

更具体的衔接流程可以看我之前写的补货系统那篇文章(《为什么生鲜补库存不能直接套通用公式?聊聊补货系统的设计逻辑》),这篇就不重复了。

写在最后

生鲜加工BOM这件事,制造业有现成的模板可以参考,但生鲜品类抄不动。出成率波动、工序传达、成本反算,这三个特性逼着你把制造业的”确定性BOM”改造成”波动性BOM”。

我们这套不算多先进,但好在贴着业务跑,踩过的坑都填了——出成率双轨制兜住了波动、二维码扫码兜住了工序传达、成本反算兜住了账实相符。工人不用填表了,管理层不用打电话追问了,出成率偏差有系统盯着了,成本有系统算了。至于它算不算”智能”,我倒不太在意——能让工人少漏一道工序、能让管理层少打一个电话、能让出成率偏差不再悄无声息地溜过去,就值了。

本文由 @Totoro畅 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!