“0 天可售”不等于断货:库存分析里最容易下错的三个结论
先看一个很常见的场景:一个多规格的商品,其中一个规格的可售天数显示 0。机械的做法会把它直接列进“断货预警”,排到补货清单的最前面。但把数据再拆一层会发现,这个商品整体上还有货——本地仓、在途都有——真正该做的是入仓和调拨,而不是再下一张采购单。
数字本身都是对的,错的是从数字到结论的那一步。这篇笔记整理我用得最多的三条判断规矩,以及怎么验证它们真的在起作用。
01坑一:把“某个规格没货”当成“这个商品要断货”
多规格商品在库存系统里通常是一棵树:一个母体下面挂着多个子体。可售天数、库存、在途这些指标,挂在不同层级上,含义完全不同。子体层面的“可售 0 天”,只说明“这个规格当下没有可立即发货的库存”,不等于“这个商品断货”。
所以判断之前先做一次追因:可售为 0,是因为确实卖空了,还是因为货压在本地仓没入、在途还没到、或者分散在别的仓库?追因追到“货在哪”这一步,动作才会对——该入仓的入仓,该调拨的调拨,确实卖空的,才谈采购。
02坑二:拿到数据,直接排“先补谁”
第二个坑更隐蔽:数据核过了、追因也做了,于是开始排“先补哪个”。排序本身没有错,但如果瓶颈不在采购环节,优先级排得再细,也只是在错误的队伍里排队。
库存问题的瓶颈,很多时候出现在流转环节:入仓预约、仓间调拨、上架节奏。这些环节不疏通,采购单下得再准,也只是把货堆到更远的地方。所以我现在的顺序是:先找瓶颈在哪一环,再决定“先做哪个”。
- 瓶颈在入仓——先解决入仓,而不是先比谁的补货量大;
- 瓶颈在调拨——先把仓间的货盘活,采购往后放;
- 确认采购是限制环节了——这时的排序才有意义。
03坑三:“少压库存”不能单边说
第三个坑表面上是措辞问题,其实会直接影响动作。“降库存”听起来永远是好事,但如果单边执行,很容易滑成“该备的也不备”——短期省了资金占用,长期丢的是产出。
我后来给自己定了两条:
- “少压库存”必须带前提:在不断掉有效产出的前提下,少压不该压的钱。两句话必须一起说,不能只留前半句。
- 不覆盖上游系统的建议值:补货数量沿用上游系统给出的原始建议值;我只决定“先做哪个、为什么”,不另算一套数字去覆盖屏幕上已有的值。两个口径打架的时候,现场反而无法执行。
04怎么验证这套规则真的在起作用
规则只写在文档里没有意义,能被检查才算数。我的检验方式是一场“陷阱对照”:事先列一份清单,把库存分析里最容易下错结论的场景收进去——比如“某个规格可售为 0、但整体库存在别处”“瓶颈不在采购环节”这类——然后用同一批数据、同一批问题,跑三种做法对照:
- 纯机械排序:16 条陷阱里躲过 1 条;
- 我之前的做法:躲过 12 条;
- 加上这三条规矩:16 条。
边界写得比数字更重要:这是我自己做的对照测试,单一数据快照、非双盲,例子做了合成处理。它说明的是“这几条规则在判断上确实有差别”,不是真实环境下的效果保证。
05把判断变成可检查的规则
这三条规矩背后有一个共性:它们都不是“更聪明的算法”,而是在数字和结论之间加了一道检查——先核口径,再判断,最后验收。
把判断变成规则之后,还有个工程上的好处:规则一旦可以被引用,就能被验收、被复盘。每条结论都能答出“按的是哪条规则”;新场景来了,只能把规则收紧,不能偷偷放宽。这套形态放到任何“数据很多、结论难下”的系统里都成立——库存只是其中一个例子。