电商库存基础课:缺货预警相关的系统搭建一次讲透

电商库存系统最危险的时刻,不是库存显示为零,而是系统显示还有库存,采购却发现这批货根本撑不到下一次到货。我在做库存预警梳理时,反复遇到同一种情况:某个SKU账面可售库存700件,日均销量80件,供应商交期7天,业务人员看到库存数量并不紧张;但一场促销把日均销量推高到110件后,700件库存只够支撑约6.4天,货物还没到,商品已经进入缺货状态。缺货预警系统真正要回答的不是“现在还有多少件”,而是“现有可履约库存能否撑到下一次可靠补货到达”。
如果仓库、订单、采购和销售团队使用的不是同一个库存口径,预警规则越复杂,误判反而越多。仓库说的是物理库存,销售看的是渠道可售库存,采购盯的是在途和已下单数量,财务关心的则可能是账面库存金额。这些数字都可能正确,但它们回答的是不同问题。
我通常会把库存拆成五个层次:物理库存、锁定库存、不可售库存、可售库存和在途库存。它们不能简单相加,也不能全部被当成“马上可以卖的货”。尤其是已经被订单锁定的库存、正在质检的退货库存和还没有入库的在途库存,不能直接支撑当前订单履约。
基础版可售库存可以用下面的关系式表达:
可售库存 = 物理库存 – 锁定库存 – 不可售库存 – 其他业务冻结库存
这只是便于沟通的简化公式。实际系统中,还需要根据仓库、渠道配额、调拨状态、质检状态和订单波次继续细分。公式本身并不难,难的是每一个字段都要有明确的业务含义、更新时间和责任人。
固定数量预警适合销量很稳定的SKU,但同样是剩余100件库存,日均销量10件的商品还有10天库存,日均销量100件的商品只剩1天库存。因此,固定数量只能作为第一层提醒,不能独立承担缺货判断。
库存覆盖天数的基本计算方式是:
库存覆盖天数 = 当前可用库存 ÷ 预计日均销量
如果要判断是否来得及等到补货,可以进一步引入再订货点:
再订货点 = 采购提前期内的预计需求 + 安全库存
系统需要将当前可售库存、已确认在途库存、采购提前期、销量趋势和安全库存放在同一个判断链路中,而不是让运营人员打开五个系统后凭感觉拼数字。
一条只写着“库存不足,请及时处理”的消息,实际上几乎没有执行价值。业务人员还需要知道:哪个仓库有风险、预计几天后缺货、是否已经存在采购单、供应商正常交期是多少、建议采购多少、谁负责确认,以及什么情况下需要升级给负责人。
我更倾向于把预警看成一张待办任务,而不是一条通知。预警状态至少应该包括“待处理、已确认、已创建采购单、等待到货、已恢复、误报、忽略及原因”。只有状态能够回写,系统才能在下一次复盘时解释:哪些规则有效,哪些预警只是制造噪音。
| 判断层 | 系统要回答的问题 | 主要输入 | 输出结果 |
|---|---|---|---|
| 库存口径层 | 当前到底有多少货可以履约 | 物理库存、锁定库存、不可售库存 | 可售库存、可履约库存 |
| 风险识别层 | 库存还能支撑多久 | 销量、活动计划、库存覆盖天数 | 缺货风险等级 |
| 补货判断层 | 补货是否能及时到达 | 采购提前期、安全库存、在途库存 | 补货建议、紧急程度 |
| 执行闭环层 | 谁来处理,处理到哪一步 | 责任人、采购单、到货状态 | 任务状态、关闭原因、复盘数据 |

在多渠道经营中,商品详情页显示的库存通常是销售渠道可见库存,而仓库系统记录的可能是整个仓库的物理库存。两者之间还隔着库存同步频率、渠道配额、订单锁定、仓内拣货和异常冻结。
例如,仓库里有500件商品,其中100件已经被订单锁定,80件处于质检状态,50件被分配给另一个渠道,剩下的270件才是当前真正可以继续销售的数量。如果销售系统仍然按照500件展示,短时间内就会出现超卖;如果库存预警按照500件判断,预警一定会延迟。
我在排查这类问题时,不会先问“预警阈值是多少”,而会先拉一张库存状态变更表,核对同一SKU在订单创建、付款、取消、拣货、出库和退货时分别发生了什么。很多所谓的算法问题,最后都变成了订单取消后锁定库存没有释放,或者退货入库后被错误地计入可售库存。
第一个时间差是库存数据更新时间与真实业务变化之间的差距。高峰期如果库存每30分钟同步一次,期间连续产生大量订单,系统判断的可售库存可能已经落后于仓库真实状态。
第二个时间差是从预警产生到采购人员确认之间的时间。预警发给无人负责的群组,往往要等到有人看到、转发、确认,风险才真正进入工作流。
第三个时间差是供应商交期与销售消耗速度之间的差距。供应商说7天交货,不代表每一单都能在7天内稳定到达。遇到排产、运输、质检和入库延迟,实际可用时间还会继续缩短。
缺货预警要覆盖的,是从数据变化到货物恢复可售之间的完整时间链,而不是只监控某一个库存数字。
很多中小团队认为只有SKU数量达到几万时才需要预警系统。我的判断正好相反:SKU较少时更适合先把规则做简单、做准确,因为业务人员能够快速验证每条预警是否合理。
如果一个团队只有300个活跃SKU,却每周因为爆款断货损失销售,问题通常不在系统规模,而在于没有把销量、交期和库存状态放在一起看。哪怕先用数据表或可视化分析工具实现每日更新,只要能做到“风险列表、负责人、建议动作、处理状态”四项清晰,价值就已经超过单纯看库存余额。


库存为零只能说明缺货已经发生,不能说明预警做得好。预警的价值是提前识别“按照当前消耗速度,库存将在未来某个时间点耗尽”,让采购、调拨或销售限流还有机会发生。
如果供应商交期为10天,而系统在库存降到零时才发消息,采购无论多么及时,都无法改变接下来10天的缺货结果。这样的提醒更像事后通知,不是风险预警。
我建议至少设置三个时间状态:库存覆盖天数高于采购提前期加缓冲期时保持正常;库存覆盖天数接近采购提前期时进入关注;库存覆盖天数低于采购提前期且没有确认到货时升级为严重风险。
固定阈值之所以常见,是因为配置简单。问题是它忽略了SKU之间巨大的销售速度差异,也忽略了供应商交期、毛利、缺货损失和补货批量的不同。
日均销量为5件的长尾商品,库存低于50件可能仍能覆盖10天;日均销量为200件的爆款,库存低于50件就可能在几个小时内造成销售中断。把两个SKU都设置成“低于50件就提醒”,得到的不是统一管理,而是错误的优先级。
固定数量规则可以保留,但应当只承担“基础提醒”功能。真正影响采购动作的,应该是库存覆盖天数和再订货点。
在途库存只有在到货时间足够可靠时,才具有补货价值。供应商刚刚承诺的数量、尚未发货的采购单、已经发货但没有物流节点更新的货物,可靠程度并不相同。
我会把在途库存至少分成“已确认发货、运输中、预计到货、逾期未到”四种状态,并给每种状态设置不同的可计入比例。对于交期不稳定的供应商,逾期未到的库存甚至不应继续抵扣缺货风险。
预警数量增加,并不意味着风险识别能力提升。每天几百条重复消息会让业务人员形成“先忽略,之后再看”的习惯,真正严重的SKU反而会被淹没。
成熟的规则需要有冷却时间、重复合并、风险升级和异常分流。例如,同一个SKU在24小时内保持同一风险等级时只保留一条任务;只有库存覆盖天数继续下降、销量突然上升或在途货物逾期时,才重新触发升级通知。
预测模型可以处理季节性、趋势和活动影响,但它无法修复错误的库存口径,也无法解决采购单状态长期不更新的问题。模型输入不可靠时,预测结果只会让错误看起来更专业。
我的建议是采用渐进式路径:先建立库存状态和规则预警,再积累预警命中、误报、漏报和处理结果,最后决定哪些品类值得引入预测模型。对于销量稳定、供应商可靠的SKU,规则模型往往更容易解释,也更容易被业务接受。
| 常见做法 | 表面上解决的问题 | 实际留下的风险 | 改进方向 |
|---|---|---|---|
| 库存为零才提醒 | 发现已经缺货的商品 | 失去采购和调拨缓冲时间 | 结合覆盖天数和采购提前期提前预警 |
| 统一固定库存阈值 | 快速完成规则配置 | 忽略SKU销量和交期差异 | 按销量、交期和商品等级分层配置 |
| 在途库存全部抵扣风险 | 让可用库存看起来更充足 | 到货延期时出现虚假安全感 | 根据到货可信度分状态计算 |
| 所有预警都推送群聊 | 扩大消息触达范围 | 无人负责,重复消息堆积 | 绑定责任人、处理时限和升级机制 |
| 直接引入复杂算法 | 提升系统“智能化”形象 | 输入数据错误且结果难解释 | 先做规则闭环,再按品类逐步升级 |

预警粒度不清,系统就会把不同问题混在一起。总仓库存充足但华东仓缺货,是仓配问题;全仓库存充足但某个渠道配额不足,是渠道分配问题;所有仓库都不足,则可能是真实补货问题。
我建议预警主键至少由“SKU、仓库、渠道、时间”组成。对于库存共享的业务,可以先在仓库层判断,再按照渠道优先级分配;对于渠道独占库存,则必须分别计算,不能用全渠道总库存替代。
日均销量不是简单地把过去30天销量除以30。停业日、断货日、价格异常日和大促日如果直接混入,会导致销量基线被低估或高估。
对于常规SKU,我会同时观察近7天、近30天和去年同期数据。近7天反映最新趋势,近30天减少偶然波动,去年同期帮助识别季节性。系统不一定要马上采用复杂加权模型,但至少要把这些观察窗口展示出来,让业务人员知道日均销量是怎么来的。
如果一个SKU过去7天销量为840件,过去30天销量为1800件,那么近7日日均销量为120件,近30日日均销量为60件。两者差异达到一倍,说明商品可能处于活动期、增长期或异常波动期,系统不应该机械地选一个数字,而应触发“销量基线变化”检查。
供应商交期写成“7天”并不代表每次都在第7天到货。更有价值的字段是承诺交期、历史平均交期、交期波动和逾期率。
如果供应商过去20次采购平均8天到货,但有4次超过12天,那么使用单一的8天作为补货依据会低估风险。对于高缺货成本的爆款,我会采用偏保守的交期基线;对于低价值长尾商品,则可以接受更高的缺货概率,避免过度占用资金。
当前可售库存不足,是现货风险;有采购单但到货不确定,是供应链风险;库存数据长时间未更新,则是数据风险。这三种风险不应该使用同一种红色提醒。
在系统中,我建议将风险拆成“库存不足、销量突增、交期延迟、库存异常、渠道分配异常”五类。这样业务人员看到严重预警时,能够知道应该采购、调拨、联系供应商,还是先修复数据。
基础版可以采用下面的计算逻辑:
预计缺货日 = 当前可售库存 ÷ 预计日均销量
风险库存差额 = 再订货点 – 当前可售库存 – 可靠在途库存
当风险库存差额大于零时,说明现有库存和可靠在途不足以覆盖采购提前期需求及安全库存。此时系统可以生成补货建议,但不应直接代替采购人员下单,因为最小起订量、包装倍数、仓容和现金流仍需要人工判断。
如果一个SKU当前可售库存700件,预计日均销量110件,采购提前期7天,安全库存300件,则:
这组计算最容易被忽略的地方是“可靠在途库存”。在途数量越大,不代表风险越低;只有到货时间与销售耗尽时间匹配,它才真正能够降低缺货风险。


缺货预警系统通常需要连接电商平台、订单系统、仓储系统、企业资源计划系统、采购系统和物流系统。系统不一定一次性打通所有接口,但必须明确每类数据的主来源,避免同一个字段在不同系统中各说各话。
| 数据类型 | 推荐主来源 | 更新要求 | 常见问题 |
|---|---|---|---|
| 订单状态 | 订单系统 | 高频同步或事件触发 | 取消订单未释放锁定库存 |
| 物理库存 | 仓储系统 | 按仓库作业实时或准实时更新 | 盘点差异未及时修正 |
| 可售库存 | 库存中心或订单系统 | 订单变化时重新计算 | 渠道库存和仓库库存口径不一致 |
| 在途库存 | 采购系统、物流系统 | 采购节点变化时更新 | 逾期采购单长期保留 |
| 日均销量 | 销售数据仓库或分析平台 | 每日更新,活动期可提高频率 | 断货日被错误计入平均销量 |
| 采购提前期 | 采购系统 | 按供应商和SKU持续复盘 | 配置值多年不变,与实际交期脱节 |
库存计算层的重点不是把所有数字加总,而是把库存状态和业务动作对应起来。一个商品从采购下单到最终售出,会经历采购中、运输中、待检、可售、锁定、出库和退货等多个状态。
建议系统保留每日库存快照。快照不是为了做漂亮的历史曲线,而是为了回答复盘问题:某次缺货预警产生时,系统看到的库存是多少?当时的销量基线是什么?采购单处于什么状态?如果没有快照,后续只能用最新数据倒推,很容易把历史问题解释错。
规则引擎至少需要支持阈值、时间窗、分级、抑制、升级和例外处理。规则应该由业务人员能够理解和调整,而不是每次修改安全库存都要等待开发上线。
以“预计缺货风险”为例,规则可以拆成以下条件:
如果条件全部满足,系统生成采购预警;如果同时检测到订单量异常增加,则将风险升级;如果库存同步超过设定时间没有更新,则转入数据异常队列,而不是继续用旧库存计算采购建议。
日常提示可以进入系统待办或企业协作工具,严重缺货风险可以通知采购负责人和业务负责人,库存数据异常则应通知系统管理员。不同风险使用不同渠道,才能让消息具有优先级。
我建议每条预警都带上以下字段:
预警任务必须有明确的生命周期。采购人员确认后,应能够关联采购单;仓库调拨后,应能够填写调拨单;供应商延期后,应能够更新预计到货日期;商品恢复可售后,系统再自动关闭或转入复盘。
特别要保留“误报原因”和“忽略原因”。如果某SKU连续三次被忽略,原因都是“活动已结束”,说明系统应该增加活动结束条件;如果大量预警被标记为“库存数据错误”,说明应优先修复数据同步,而不是继续调整阈值。
在中小团队或业务部门自建预警分析时,我会优先考虑把九数云作为分析和可视化层,而不是让它承担所有交易系统职责。这样分工更稳妥:订单、仓储和采购系统负责产生业务事实,九数云负责把多源数据整合成库存看板、风险清单和管理分析。
具体可以把SKU主数据、每日库存快照、订单明细、采购单、在途节点和活动计划接入分析模型,再通过字段关联形成“SKU,仓库,渠道,日期”的分析粒度。看板首页不应只放库存总额,而应优先展示缺货风险SKU数、预计7天内缺货SKU数、逾期在途金额、预警处理时长和按时恢复率。
我尤其建议建立两个页面:一个给运营和采购使用的“今日待处理预警”,另一个给负责人查看的“库存健康度趋势”。前者关注行动,后者关注结果。将两类需求放在同一个页面里,往往会导致既不适合操作,也不适合管理。
九数云的价值在这里主要体现在多表关联、指标计算、筛选下钻和可视化呈现。比如业务人员点击某个严重预警SKU,可以继续下钻到仓库库存变化、近30天销量、关联采购单和供应商到货记录,而不是停留在一张红色列表上。
需要强调的是,九数云或其他分析平台不能替代库存事务系统。订单扣减、采购下单、仓库出入库仍应在各自业务系统完成;分析平台应保留数据来源和更新时间,避免业务人员把看板上的统计结果误认为实时交易库存。


下面是一组用于说明方法的情景模拟数据,SKU设为“便携榨汁杯A”,不代表任何企业的真实经营数据。该商品常态日均销量80件,当前促销期预计增加30件,供应商承诺交期7天,安全库存设为300件。
| 字段 | 示例值 | 在判断中的作用 |
|---|---|---|
| 物理库存 | 900件 | 仓库账面拥有的总量 |
| 锁定库存 | 100件 | 已被订单占用,不再承诺给新订单 |
| 不可售库存 | 100件 | 破损、质检或冻结状态库存 |
| 当前可售库存 | 700件 | 当前可继续销售和履约的数量 |
| 常态日均销量 | 80件/日 | 非活动期间的销售基线 |
| 促销增量 | 30件/日 | 活动期间额外增加的预计消耗 |
| 活动期预计日均销量 | 110件/日 | 当前风险判断使用的销量基线 |
| 采购提前期 | 7天 | 从下单到可售入库的预计时间 |
| 安全库存 | 300件 | 抵御销量和交期波动的缓冲 |
| 已确认在途库存 | 500件 | 已经发货且有可靠到货节点的库存 |
按常态日均销量80件计算,700件可售库存可以支撑8.75天。表面上看,这比7天采购提前期多出1.75天,似乎还有缓冲;但安全库存为300件,意味着真正不应被日常销售消耗的缓冲数量已经达到较高水平。
如果只使用“可售库存大于500件,所以安全”的判断,会忽略安全库存已经被纳入可售库存总量这一事实。安全库存不是额外存在的一批货,而是当前库存中需要被保护的部分。随着销量增加,系统必须重新计算库存何时会跌破安全库存线。
促销期预计日均销量为110件,700件库存只能支撑约6.36天,已经少于7天采购提前期。换句话说,即使今天立即下采购单,按照正常交期,货物仍可能在库存耗尽之后才到达。
因此,这个SKU至少应进入“严重预警”或“紧急补货评估”,并同时检查三个问题:活动销量是否会继续增加、500件在途是否已经确认发货、是否存在其他仓库可以调拨。
如果500件在途库存已经发货,物流节点正常,预计3天后到达,那么它对短期风险有实际帮助。活动期3天预计消耗330件,剩余可售库存约370件,货物到达后可以避免立即断货。
但如果这500件只是采购单上的计划数量,供应商尚未确认排产,那么它不能作为可靠补偿。系统应将“计划在途”和“已确认在途”分开。前者可以展示在看板上,后者才可以用于降低缺货风险。
按照活动期日均销量110件、采购提前期7天和安全库存300件计算,再订货点为1070件。当前可售700件,可靠在途500件,理论上库存总覆盖为1200件,高于再订货点130件。
但是,1200件并不是今天可以销售的现货,其中500件需要经过运输、入库和质检。若预计3天后到货,短期无需新增紧急采购;若到货日期不确定,则应至少把供应商交期风险纳入判断,并根据最小采购量、活动剩余天数和现金流做采购决策。
在九数云看板中,可以把这组数据做成“库存构成、销量趋势、预计缺货日期、在途状态和预警处理状态”的联动视图。业务人员点击SKU后,先看库存是否真实,再看销量是否发生变化,最后看在途是否足够可靠。这种下钻顺序比直接给出一个“建议采购500件”更安全。


这类SKU最适合使用库存覆盖天数加固定安全库存的组合规则。系统每天更新日均销量,当覆盖天数低于采购提前期加2至3天缓冲时生成提醒,低于采购提前期时升级。
行动上可以优先采用常规采购,不必过度增加安全库存。因为供应商交期稳定,缺货概率相对可控,过高的安全库存反而会增加资金占用。
爆款最容易出现“历史平均销量还不错,但未来几天一定不够用”的情况。系统应缩短销量统计窗口,增加近7天和近3天趋势,并把加购、预售、活动报名或直播排期作为需求信号。
行动上应同时评估采购、跨仓调拨、渠道限量和活动调整。如果单纯等采购到货,可能已经错过销售窗口;如果盲目大批量采购,又可能在热度结束后形成积压。
活动商品不能使用普通日均销量直接计算。活动前应建立独立需求计划,把预计曝光、转化率、活动时长、客单件数和退款率纳入估算。活动进行中,还要按小时或更短周期观察订单增长速度。
如果活动销量明显超过计划,应快速执行库存保护措施:减少非核心渠道可售量、限制单用户购买数量、调整广告投放或将预售规则提前启用。预警系统应该支持这些动作的记录,否则复盘时无法判断缺货究竟是采购不足还是活动策略失控。
季节性商品不能只看最近30天销量。冬季服装、节庆礼盒、户外用品等商品的需求受季节、天气、节假日和生命周期影响明显,历史同期数据往往比近期均值更有参考价值。
对于新品,则要接受数据不足的现实。新品初期可以使用同类商品作为参考,设置较保守的补货批量,同时观察首周销售速度和退货情况。不要因为系统没有足够历史数据,就假装预测结果很精确。
长尾商品不一定值得维持很高的安全库存。如果商品缺货后替代品很多,且供应商交期短,可以接受较低库存;如果商品是配件、耗材或组合商品中的关键部件,即使销量不高,缺货也可能导致整套订单无法履约,这时需要提高优先级。
系统可以结合毛利、销售贡献、缺货损失和采购难度进行分层,而不是只按销量排序。库存管理的目标不是让所有SKU都不缺货,而是在可接受的成本下保护最重要的销售和履约结果。
| 业务场景 | 建议使用的判断方式 | 优先动作 | 主要取舍 |
|---|---|---|---|
| 稳定常规SKU | 覆盖天数加固定安全库存 | 常规采购、按周期补货 | 在缺货风险和库存资金之间保持平衡 |
| 快速增长爆款 | 短窗口销量趋势加活动修正 | 采购、调拨、限流并行 | 优先保护销售机会,但防止热度结束后积压 |
| 大促和直播商品 | 活动需求计划加实时消耗 | 提前备货、实时监控、动态限量 | 提高安全库存,同时承担预测偏差成本 |
| 季节性商品 | 同期数据加趋势判断 | 分阶段备货、临近节点复核 | 错过销售窗口与季末库存之间的风险平衡 |
| 长尾商品 | 缺货损失加采购难度分层 | 按优先级补货或接受缺货 | 减少资金占用,但可能牺牲部分即时履约 |

如果活跃SKU不多、仓库数量有限、每天只需要一次更新,电子表格可以作为第一阶段工具。它的优势是成本低、调整快、业务人员容易理解。团队可以先用表格验证可售库存公式、库存覆盖天数和预警等级是否符合实际。
但表格很容易出现版本混乱、人工复制错误、公式被覆盖和责任状态无法追踪等问题。当每天需要合并多个渠道、多个仓库和采购单时,表格的维护成本会迅速超过它的初始优势。
九数云这类分析平台更适合承担数据整合、指标计算、可视化看板和下钻分析。对于已经拥有订单、仓储和采购系统的企业,分析平台可以减少重复导出和人工拼接,让管理层看到跨系统的库存健康度。
它的边界也很明确:分析平台通常不是订单扣减、仓库出入库和采购审批的唯一事务来源。若企业需要在预警产生后自动锁库存、自动下采购单或执行复杂的库存分配,就需要与业务系统和接口服务继续集成。
当企业拥有大量SKU、多仓多渠道、频繁活动和严格履约要求时,定制库存中心或规则引擎更有价值。它可以处理事件驱动库存更新、复杂渠道分配、供应商交期预测和自动化任务流转。
但定制系统的成本不只在开发,还包括需求治理、接口维护、数据质量、权限设计、测试和持续运营。如果基础库存口径尚未统一,直接开发一套大系统,往往只是把混乱固化成更昂贵的流程。
| 方案 | 适合阶段 | 优势 | 局限 | 升级信号 |
|---|---|---|---|---|
| 电子表格 | 规则验证期 | 成本低、修改快、易于试错 | 协作弱、易出错、难追踪状态 | 每日维护超过1小时或经常出现版本冲突 |
| 分析平台 | 多源数据分析期 | 关联数据、看板、下钻和趋势分析效率高 | 不能独立替代全部交易系统 | 需要实时扣减、自动下单或复杂审批 |
| 定制系统 | 规模化运营期 | 实时性、流程和规则可深度定制 | 建设和维护成本高 | 业务规则稳定且自动化收益能够覆盖建设成本 |
SKU数量不是唯一标准。一个只有500个SKU但活动频繁、渠道复杂的企业,可能比拥有5000个稳定SKU的企业更需要自动化。真正应该评估的是:每天需要合并多少数据源、多少次库存变更、多少种例外规则、多少人参与处理,以及缺货一次会造成多大损失。
如果团队还不能准确回答“可售库存由哪些字段组成”,不建议直接采购复杂系统。先用数据分析工具完成口径统一和预警复盘,等规则稳定后再决定哪些环节值得自动化。

预警命中率可以理解为:产生预警的SKU中,后来确实进入缺货风险或需要采购、调拨的比例。命中率过低,说明规则过于敏感、库存数据不准确或活动例外未被识别。
但命中率也不能孤立使用。为了追求高命中率,团队可能把阈值设置得非常宽松,结果漏掉大量真正风险。因此必须同时看误报率和漏报率,并按SKU类型、仓库和渠道分别统计。
预警从产生到确认的时间,反映通知和责任分配是否有效;从确认到创建采购单的时间,反映业务流程是否顺畅;从创建采购单到恢复可售的时间,则反映供应商、仓库和物流的综合效率。
如果预警确认很快,但恢复可售仍然很慢,问题可能不在预警系统,而在供应商交期或入库能力。如果预警长期无人确认,则应先修复责任链,而不是继续优化预测模型。
最终要观察的指标包括缺货率、订单履行率、库存周转率、库存覆盖天数、加急采购次数、滞销库存金额和库存资金占用。不同指标之间需要结合分析,因为降低缺货率可能是通过大量增加库存实现的,不一定代表经营质量真正提高。
| 指标 | 计算思路 | 适合回答的问题 | 异常时优先检查 |
|---|---|---|---|
| 预警命中率 | 有效风险预警数 ÷ 总预警数 | 规则是否过于敏感 | 销量基线、库存口径、例外条件 |
| 预警确认时长 | 确认时间 – 生成时间 | 责任人是否及时接手 | 通知渠道、值班安排、任务分派 |
| 预警处理时长 | 采购或调拨创建时间 – 确认时间 | 业务动作是否顺畅 | 审批流程、采购权限、库存责任边界 |
| 缺货恢复时长 | 恢复可售时间 – 缺货时间 | 供应链恢复能力如何 | 供应商交期、物流、仓内入库能力 |
| 库存周转率 | 统计期销售成本 ÷ 平均库存成本 | 库存资金使用效率如何 | 滞销SKU、采购批量、销售预测 |
| 订单履行率 | 按要求完成履约订单数 ÷ 总订单数 | 库存结果是否影响客户体验 | 缺货、仓配、库存同步和订单取消 |
基础规则建议每周快速复盘,每月进行一次结构性复盘。每周关注新出现的严重预警、逾期在途和重复误报;每月则重新评估销量基线、供应商交期、安全库存和商品分层。
对于大促和季节性商品,不能等到月度复盘才调整。活动前要做一次预演,活动中按实际订单速度校正,活动后再检查剩余库存和退货库存是否会造成新的积压风险。


第一周不要急着做漂亮看板,应先列出所有库存相关字段,并让仓库、采购、运营和技术人员逐一确认。每个字段都要写清定义、来源、更新时间、是否可以计入可售库存,以及发生异常时由谁负责。
不要一开始就把所有SKU纳入。可以选择20至50个SKU,覆盖爆款、稳定品、季节品、新品和长尾品,使用历史数据回放规则,观察如果系统当时发出预警,业务人员是否会认为它合理。
这一阶段要特别关注两类反例:系统没有预警但后来缺货的漏报,以及系统预警后业务完全不需要动作的误报。反例比平均结果更有价值,因为它们能直接暴露规则边界。
第一个看板是“库存风险工作台”,服务于日常执行。它应该支持按照风险等级、仓库、渠道、商品负责人和预计缺货日期筛选,并能下钻到库存状态、销量趋势、采购单和在途节点。
第二个看板是“库存经营复盘”,服务于管理决策。它应展示缺货率、订单履行率、库存周转率、滞销库存、预警命中率、误报率和处理时长趋势,让负责人看到规则调整之后经营结果是否真的改善。
看板中所有指标都要显示统计周期和更新时间。尤其是“当前可售库存”和“预计缺货日期”,如果数据延迟超过业务允许范围,应直接显示数据异常标识,而不是继续展示一个看似精确的数字。
每个预警等级都要有处理时限。例如提示级可以在当天关注,普通预警要求一个工作日内确认,严重预警要求在数小时内完成采购、调拨或销售策略调整。具体时限应根据商品价值、渠道承诺和供应商交期确定。
还要明确无人处理时的升级路径。任务超过时限未确认,自动升级给商品负责人;超过第二个时限仍未处理,再通知供应链负责人。升级不是为了增加压力,而是为了避免风险停留在一个没有实际决策权的人手里。
系统可以给出预警和建议采购量,但不应在所有品类上自动下单。采购人员仍然需要检查供应商是否有产能、仓库是否有容量、活动是否会变化、商品是否即将下架,以及是否存在替代品。
好的系统不是消灭人工判断,而是把人工判断从“找数据、拼数据、猜风险”中解放出来,让人把时间用在真正需要权衡的决策上。

缺货预警系统最容易被误解成一个“库存低于阈值就发消息”的功能。真正可用的系统,至少要完成四件事:统一库存口径,识别未来缺货时间,区分风险来源,并把预警转成有人负责的处理任务。
我在实际梳理库存问题时,最看重的不是系统是否使用了复杂算法,而是它能不能解释一条预警为什么产生。业务人员应该能够沿着一条清晰路径看到:当前可售库存是多少,销量基线怎么计算,供应商交期是否可靠,在途库存能否按时到达,预计哪一天会跌破安全库存,以及现在应该采购、调拨、限流还是暂时观察。
如果企业正在从零搭建系统,我建议不要先追求全自动补货。第一步应是选取一批代表性SKU,统一库存字段,建立覆盖天数和再订货点规则;第二步用九数云等分析平台做风险看板和历史复盘;第三步根据误报、漏报和处理结果优化规则;最后才决定是否把采购建议、审批和库存动作进一步自动化。
我的独特判断是:库存预警系统的成熟度,不是由预警数量、算法复杂度或页面数量决定的,而是由“预警能否被相信、被处理、被验证”决定的。
下一步可以从一个具体SKU开始,填写物理库存、锁定库存、不可售库存、日均销量、采购提前期、安全库存和可靠在途库存七项数据。只要这七项数据能够稳定更新,你就已经具备了搭建基础缺货预警系统的起点。随后再把仓库、渠道、活动和供应商交期纳入模型,逐步从“看库存”走向“看风险”,从“收到提醒”走向“完成补货闭环”。
我以前以为库存预警的核心就是设置一个最低库存,比如低于100件就提醒采购。后来发现,某个SKU明明还剩几百件,却因为日销量突然上涨、供应商交期变长,仍然会在补货到达前卖断货。到底应该看哪个库存字段,才能提前识别真正的缺货风险?
库存为零代表缺货已经发生,而缺货预警要判断的是:当前可售库存,能不能撑到下一批货真正可用。只看库存数量,实际上忽略了销售速度、采购提前期和库存状态这三个决定性因素。我在搭建一套基础预警规则时,先把库存拆成几个状态,而不是直接读取ERP里的“库存总数”。
基础口径可以这样定义: 库存字段实际含义能否直接用于缺货判断 物理库存仓库盘点到的总数量不能直接使用 锁定库存已被订单或其他业务占用的数量不能作为可售库存 不可售库存破损、冻结、待质检或待处理库存不能作为可售库存 可售库存系统当前允许继续销售的数量主要判断依据 在途库存已采购但尚未完成入库的数量只能作为未来供应 一个更实用的基础公式是:可售库存 = 物理库存 – 锁定库存 – 不可售库存。
对于多仓、多渠道业务,还要继续扣除渠道配额、调拨占用和区域不可履约库存。例如,某SKU可售库存为700件,正常日均销量为80件,供应商交期为7天。表面上它还能卖8.75天,但如果促销期间日销量升至110件,库存只能支撑约6.4天,已经赶不上补货到达时间。此时即使系统里还有700件,也应该触发预警。
我的判断是:库存预警的最小判断单元不是“库存数量”,而是“库存覆盖时间”。建议至少同时展示可售库存、近7天日均销量、库存覆盖天数、采购提前期和确认在途量,让业务人员知道为什么报警,而不是只收到一句“库存不足”。
我现在管理的SKU数量不算特别多,但不同商品的销量差异很大:有的每天卖几百件,有的一个月才卖几件。如果所有商品都设置成低于100件就预警,爆款可能来不及补货,长尾商品又会天天误报。三种规则分别适合什么场景,能不能分阶段搭建?
这三种规则不是互相排斥的功能,而是复杂度不同的三层判断方式。我的建议是:先用固定阈值完成基础可用,再用覆盖天数解决SKU之间的销量差异,最后用再订货点连接采购决策。
规则计算方式优点主要问题适用场景 固定数量可售库存低于设定值配置简单,容易解释无法适应销量变化销量稳定、SKU较少 覆盖天数可售库存 ÷ 预计日均销量能比较不同SKU的风险依赖销量数据质量SKU较多、销量差异大 再订货点提前期需求 + 安全库存可直接支持采购需要维护多个参数采购流程成熟的企业 固定阈值适合系统刚上线时使用。
例如某配件销量稳定在每天20件,供应商两天内可以送货,就可以先设置100件作为人工管理阈值。但它不适合爆款,因为每天销量从50件涨到200件时,100件阈值已经失去提前量。覆盖天数更适合日常运营。假设A商品可售库存300件、日均销量50件,覆盖6天;
B商品可售库存300件、日均销量10件,覆盖30天。相同的库存数量,对两个SKU意味着完全不同的缺货风险。再订货点则更接近采购逻辑。基础公式是:再订货点 = 采购提前期内的预计需求 + 安全库存。假设日均销量80件,采购提前期7天,安全库存300件,那么再订货点就是860件。
当前可售库存700件时,即使尚未缺货,也应创建采购任务。这里最容易踩的坑,是把在途库存直接从风险中扣除。只有在途订单已经确认供应商出货、物流状态可靠、预计到货时间早于库存耗尽时间时,才能把它作为有效供应。否则,系统会因为“账面上有在途”而延迟预警,最后出现库存和订单都在系统里、货却没有按时到的情况。
我在选库存系统时,销售方经常强调智能预测、机器学习和实时计算,但我的团队目前连可售库存、锁定库存和在途库存都没有完全分清。预算和研发资源都有限,我更关心的是:基础版系统到底应该先做哪些模块,哪些能力可以以后再补?
中小电商最不应该先做的是复杂预测模型,最应该先做的是库存口径统一和预警处理闭环。没有可靠的库存数据,算法只会把错误数据计算得更快,最终生成更多看似专业的误报。基础版系统至少需要五层能力。第一层是数据采集层,对接电商平台、订单系统、仓储系统、采购系统和物流系统。
这里不要求一开始做到毫秒级实时,但必须明确刷新频率。例如订单库存每5分钟同步一次,仓库实盘库存每小时同步一次,采购在途状态每天定时校验一次。第二层是库存计算层,统一处理物理库存、锁定库存、不可售库存、可售库存、调拨中库存和在途库存。
建议每天保留库存快照,否则发生缺货后,很难追查是销量突然增长、库存同步延迟,还是订单重复扣减造成的。第三层是规则引擎,先支持固定阈值、覆盖天数、再订货点、活动标记和供应商提前期。第四层是预警触达,按照仓库、品类或SKU负责人分配到系统待办、企业协作消息或邮件,而不是把所有通知群发给整个团队。
第五层是处理闭环。每条预警都应该有待处理、已确认、已创建采购单、等待到货、已恢复、误报和忽略等状态,并要求填写原因。没有状态回写的预警,本质上只是消息,不是管理系统。我会把算法放到第二阶段:当基础规则运行4到8周后,再统计哪些SKU误报多、哪些SKU总是漏报、哪些供应商交期波动大。
只有当企业已经积累了稳定的销量、促销、退货和到货数据,预测模型才有可能改善决策,而不是增加解释成本。一个实用的建设顺序是:先统一字段,再做库存快照;先上线覆盖天数预警,再接采购任务;最后根据SKU分层引入季节性预测和活动需求预测。这样每一步都能独立产生业务价值,也更容易判断系统究竟有没有改善缺货率。
我遇到过最棘手的问题不是系统不报警,而是每天报警太多:同一个SKU连续几天重复提醒,已经下了采购单的商品还在报警,甚至库存同步失败也被当成缺货。业务人员看久了以后,开始直接忽略通知。预警规则和流程应该怎样设计,才能避免这种情况?
预警系统的效果不能用“发出了多少条提醒”衡量,而要看提醒是否被正确处理。我的经验是,误报通常不是阈值本身的问题,而是系统没有区分业务风险、供应链风险和数据异常。建议至少设置四个等级。提示级表示覆盖天数下降,只需要负责人关注;预警级表示库存可能在补货到达前耗尽,需要安排采购;
严重级表示已经缺货或预计很快缺货,需要升级处理;异常级则专门处理库存为负、数据长时间未刷新、销量突然异常等数据问题。每条预警还应该同时满足多个条件,而不是只看一个数字。例如可以设置为“可售库存低于再订货点,且未来7天没有确认到货,且近3天销量高于基准销量”。
这样能过滤掉已经有可靠在途库存、已经创建采购单或只是短暂销量波动的情况。重复报警要靠抑制和合并机制解决。相同SKU、相同仓库、相同风险等级的预警,在24小时内只保留一条;只有风险从提示级升级为严重级,或者库存覆盖天数再次下降一个设定区间,才重新通知。
已经创建采购单的SKU,应自动进入“等待到货”状态,而不是继续按普通缺货规则报警。
预警内容必须展示的信息对应动作 库存覆盖不足可售库存、日均销量、覆盖天数确认销量和库存口径 补货可能迟到预计耗尽日、供应商交期、到货日期催交、调拨或加急采购 数据异常最后同步时间、异常字段、影响范围转交系统或数据负责人 活动风险活动销量、增量假设、活动库存重新计算安全库存 通知内容也决定了业务是否愿意处理。
不要只写“SKU123库存不足”,而应写成:“华东仓SKU123可售库存700件,促销后预计日销量110件,覆盖6.4天;供应商交期7天,当前无确认到货,建议今天完成采购或跨仓调拨。”这类信息让负责人可以直接判断下一步。最后要把误报和漏报纳入复盘。
每周统计预警命中率、误报率、处理时长和缺货恢复时长,并记录误报原因。连续两周误报的SKU,不应简单关闭预警,而应判断是销量基线、供应商交期、库存同步还是规则适用场景出了问题。


读者评论
文章把“库存为零”和“即将缺货”区分开来很实用,尤其是将可售库存、锁定库存和不可售库存拆分,有助于减少预警滞后。不过,实际落地还要重点解决数据同步延迟和字段责任不清的问题。
用库存覆盖天数结合采购提前期,比统一设置固定库存阈值更合理。文中关于促销期间销量变化的案例比较直观,但日均销量和安全库存的计算仍需要结合季节性、活动计划及供应商履约稳定性持续校准。
预警连接责任人、采购单和到货状态,才能形成真正的闭环,这一点很有价值。对中小团队而言,先用数据表或简单看板验证规则,再逐步引入预测模型,成本和实施风险会更可控。