去年黑五前两周,一个做家居品类的卖家朋友给我打电话,说他们一款爆款收纳盒在美国站断货了,前后断了11天,等货补上去,BSR排名从类目第38名掉到第210名,广告ACOS从22%飙到61%,用了将近一个月才把排名拉回来。他问我:我明明上了库存预警工具,为什么还是断货?我看了一下他们的”预警表”,才发现问题所在,那张表里的每个数字都是人手工填的,填表的人在断货前一周正好请假了。
这件事几乎概括了我这几年在跨境电商库存计划里看到的所有矛盾:大家以为自己在做自动化,实际上只是在用电子表格重复人工劳动。库存计划这件事,跨境和国内电商有一个根本性的区别,补货周期长达30到45天,而需求波动周期可能只有7到14天,这个时间错配决定了库存计划天然是一门”在不确定中下注”的生意。
所以这篇文章我想认真聊一个问题:库存计划里的自动化方案,到底应该自动化什么、自动化到什么程度、哪些环节必须留人工、以及在不同SKU规模下应该怎么选路径。我会把自己踩过的坑、看过的数据、以及用工具落地的过程都写出来。
先把结论摆在前面,避免后面绕圈子。库存计划自动化不是”让系统替你决定补多少货”,而是”让系统把决策所需的信息以正确口径、在正确时间、送到正确的人面前,并把其中可规则化的部分自动执行”。
第一类是数据采集与口径归一。多平台、多店铺、多仓库、多币种的销量、库存、在途、退货数据,人工汇总不仅慢,而且每次口径都可能不一样。这部分的自动化收益最大、风险最低。
第二类是规则明确的计算。安全库存、再订货点、目标库存上限、建议补货量,这些都是有公式的,只要参数确定,计算过程完全可以交给系统,而且系统算得比人稳定。
第三类是阈值触发与流转。库存低于再订货点触发提醒、超龄库存超过180天推送到运营、补货建议单推送给采购审批,这些是流程自动化,不需要算法。
第一类是新品首次备货。没有历史销量,任何预测模型都只能靠类比和假设,这时候系统能提供的价值是”给出参照区间”,不是”给出答案”。
第二类是大促和异常事件。Prime Day、黑五、平台政策变化、竞品突然降价、海运塞港,这些事件的概率和幅度都无法从历史数据中稳定估计,必须人工介入。
第三类是清货与停售决策。一个SKU是该继续补货、降价清仓还是直接下架,涉及品牌策略、渠道关系、资金安排,这不是库存公式能回答的。
这是我最想强调的一点。绝大多数团队的库存问题,根源不是预测不准,而是从”发现异常”到”做出决策”之间的延迟太长。补货周期35天,如果你发现库存异常就晚了5天,那这5天在补货周期里就是实打实的缺口。把决策延迟从5天压到0.5天,比把预测MAPE从35%优化到28%带来的收益更大。

要理解自动化方案怎么设计,得先看清业务里到底哪里断了。我把这几年接触过的几十个跨境团队的问题归了归类,绝大多数都落在下面四个断裂带上。
这是最普遍的情况。亚马逊后台有销量和FBA库存,Shopee后台有另一套数据,海外仓的库存在第三方系统里,在途货物的信息在货代发来的Excel和微信群里,采购在途在采购自己的表格里。
运营要做一次完整补货测算,得先把这五六个来源的数据拼起来。拼的过程就是断裂发生的地方,有人用昨天的平台数据配上上周的仓库数据,有人把在途数量重复计算,有人漏掉了”已下单未发货”这部分。
我见过一个典型的错误:运营算补货量时用了”FBA可售库存”,但没算上”已经发货在海上漂着”的2000件,结果下了3000件的采购单,等两批货同时到仓,直接撞上亚马逊的仓储容量限制,被迫交了一笔超量仓储费。

跨境电商的补货周期,从下采购单到货物可售,通常由几段组成:供应商备货7到15天,头程海运30到40天(快船20到25天,空运7到10天),目的港清关3到7天,入仓上架2到7天。加起来,海运整柜方案从下单到可售,45到60天是常态。
而需求端的波动周期要短得多。一个品类从起量到见顶可能只有3到6周,一个平台政策调整可能让某个SKU的日销在3天内腰斩或翻倍。
这意味着你今天的补货决策,是在为一个半月后的市场需求下注。任何试图”预测准”的努力,在这个时间尺度上都要打折扣。真正能改善结果的做法,是缩短”发现变化”到”调整决策”的时间,以及在补货批量上留出调整空间。

这个问题特别隐蔽,但杀伤力很大。什么是”可售库存”?有人算FBA可售,有人算FBA可售加上预留,有人还要加上海外仓可用。什么是”在途”?有人只算已发货的,有人把已下单未发货也算进去。
结果就是开会时运营说”我们库存还有45天”,采购说”明明只有28天”,谁也说服不了谁。我后来养成一个习惯:在做任何库存自动化之前,先把指标口径写成文档,每个字段定义清楚,并且落到系统里,而不是留在人脑子里。
具体来说,至少要统一定义这几个字段:可售库存、锁定库存、在途库存(分已发货和已下单未发)、库存位置(Inventory Position)、日均销量(区分7天/30天/加权)、提前期(区分名义提前期和实际提前期分布)。
很多团队里,运营负责算补货建议,采购负责下单,老板负责批钱。三个人的目标函数还不一样:运营怕断货,采购怕麻烦(希望批量大、频次低),老板怕占资金。
这种情况下,即使你把计算自动化了,决策环节依然是断的。补货建议单躺在表格里没人批,或者批了之后采购按自己的习惯改了数量,改动的理由也没记录,下一个周期无法复盘。
解决方案是把补货建议做成一个有状态、有留痕的流程对象:系统生成建议(含建议依据和参数),运营确认或调整(必须填调整原因),采购按确认单下单,事后可以对比”系统建议 vs 实际下单 vs 实际结果”,形成反馈闭环。
我在不止一个团队见过,库存项目的KPI是”把SKU级预测MAPE从40%降到25%”。这个目标听上去很专业,但方向可能错了。
原因有两个。第一,低销量SKU的MAPE天然很高,因为它分母小,卖出去3件还是5件,误差就是67%。你把大量精力花在优化长尾SKU的MAPE上,对整体利润几乎没影响。第二,预测准确率提升不必然带来库存指标改善,因为库存结果还取决于安全库存策略、批量约束、提前期波动。
我更建议用这组指标衡量库存计划质量:断货率(按SKU-周统计)、超龄库存占比(超过180天)、库存周转天数、缺货导致的损失销售额、库存资金占用。预测准确率可以看,但它应该是诊断指标,不是目标指标。
这是最普遍的误解。一张带VLOOKUP、SUMIFS、条件格式的补货表,看起来已经很”自动”了。但它有三个致命问题:数据要人手动粘贴、公式要人手动下拉、异常要人手动发现。
只要这三件事还需要人做,它就只是一个计算器,不是一个自动化系统。判断标准很简单:如果负责这张表的人休假两周,补货流程还能正常运转吗?如果答案是”不能”,那就不是自动化。

我见过一个团队,全店铺统一用”30天安全库存”。这个规则对稳定款是浪费,对波动款是灾难。
一个日销稳定在50件、标准差5件的SKU,30天安全库存是1500件,可能对应95%以上的服务水平,资金占用明显偏多。而一个日销均值20件、但标准差18件的SKU,30天安全库存只有600件,服务水平可能不到70%,断货风险很高。
安全库存必须由需求波动性和提前期共同决定,而不是由均值决定。这就是为什么要先做ABC-XYZ分类,把SKU按销量贡献和需求稳定性两个维度拆开,不同格子用不同策略。
绝大多数表格里,”在途”就是一个数字,比如2000件。但这2000件什么时候到?可能是下周,也可能是32天后。
提前期的波动对安全库存的影响,往往超过需求波动的影响。假设日均销量20件,名义提前期35天,如果提前期标准差是7天,那因提前期波动带来的需求不确定性就是 20×7=140件,这部分必须计入安全库存。
更麻烦的是,头程提前期的分布通常不是正态的,而是右偏的,大部分货按时到,少数货延迟很久。所以用平均值算安全库存会系统性低估风险。
库存周转天数是一个结果指标,不是决策指标。它会把两种完全不同的情况混在一起:一个SKU周转快是因为卖得好,另一个SKU周转快是因为备货严重不足天天断货。
更关键的是,断货和超储的成本结构完全不同。断货的损失包括:损失的销售额(可能是100%)、BSR排名下滑带来的后续流量损失(可能持续2到4周)、广告投放的浪费、竞品抢占的坑位。超储的成本包括:仓储费(亚马逊美国站超龄库存费率显著高于常规)、资金占用成本、清货折价。
从我观察到的案例看,对多数成长期卖家来说,断货的边际成本高于超储的边际成本。这意味着在服务水平选择上,宁可稍微保守一点(多备一点),也不要为了周转率指标好看而系统性缺货。
我见过一个团队做了”自动补货”,系统每天早上自动生成采购单并推送到采购。结果有一次平台数据接口出了问题,某SKU销量被重复计算了一遍,系统判定要补1.8万件,采购没仔细看就下单了。这批货后来花了8个月才消化完。
全自动的前提是数据链路绝对可靠,而跨境场景里的数据链路从来不是绝对可靠的。合理的做法是分级:金额低于某个阈值的补货建议自动执行,超过阈值的必须人工确认;系统识别到异常波动(比如销量变化超过300%)时强制转人工。

我通常用两个维度来定位一个品类:需求变异系数(CV = 需求标准差 / 需求均值)和提前期长度。把这两个维度画成四象限,策略分化非常明显。
低CV + 短提前期:最适合做参数化自动补货,系统直接算、直接建议,人工只需抽检。典型如标品配件、稳定款家居用品走快船或空运。
低CV + 长提前期:核心是提前期管理,而不是需求预测。可以考虑多批次小批量下单、和供应商谈滚动产能预留、用部分空运做调节。自动化重点应放在在途跟踪和批次计划。
高CV + 短提前期:核心是提高响应速度。可以缩短补货周期,用小批量高频次补货,这时候自动化的重点是高频监控和快速触发。
高CV + 长提前期:这是最难的一类,必须接受更高的安全库存或更高的断货率,二选一。策略上通常选择提高安全库存覆盖,同时用预售、分批上架等方式平滑风险。

安全库存的标准算法是:SS = z × σLT
,其中 σLT 是提前期内的需求标准差,z 是服务水平对应的分位数。z 值取法:90%对应1.28,95%对应1.645,98%对应2.05,99%对应2.33。
如果需求和提前期都波动,更完整的公式是:
SS = z × √( LT × σ_d² + d² × σ_LT² )
其中:
z = 服务水平对应的正态分位数
LT = 平均提前期(天)
σ_d = 日需求标准差
d = 日均需求
σ_LT = 提前期标准差(天)
这个公式有一个必须理解的推论:提前期波动项 d² × σ_LT² 在高销量SKU上会被显著放大。也就是说,卖得越好的SKU,提前期不稳定造成的安全库存需求越大。这解释了为什么爆款最容易在旺季断货,不是因为预测不准,而是因为量大了之后,提前期的任何抖动都会放大成绝对数量上的巨大缺口。
这是我见过最多人忽略的一个点。如果你设定95%的周期服务水平,意思是”一个补货周期内不缺货的概率是95%”。但如果这个SKU一年补货12次,那么全年12个周期都不缺货的概率是 0.95¹² ≈ 54%。
也就是说,你以为自己设了95%的服务水平,实际上一年里有接近一半的概率会经历至少一次缺货。要保证年度不缺货概率达到95%,单个周期的服务水平需要达到 0.95^(1/12) ≈ 99.6%,对应的 z 值约2.65。
这个换算对安全库存的影响是巨大的。在日需求标准差20件、提前期35天的例子里,z 从1.645提高到2.65,安全库存会從 20×√35×1.645 ≈ 195件 提高到 20×√35×2.65 ≈ 314件,增加了61%。

我坚持一个原则:系统输出的不是”一个数字”,而是”一个带依据的建议”。具体包括:建议补货量、建议下单日期、建议物流方式、当前库存位置、本次建议相比上次的变化及原因、触发本次建议的规则、以及置信提示。
为什么要有”变化原因”?因为运营看到建议从500件变成1200件时,第一反应是”系统是不是算错了”。如果系统能告诉他”因为你把提前期从35天改成45天,且最近14天日均销量上升了22%”,他就能快速判断这个变化是否合理。
下面是我在项目里常用的计算逻辑,用SQL表达(适配大多数数据分析平台的自定义SQL节点)。这段逻辑的核心是先算库存位置,再算目标上限,最后做约束校验。
— 第一步:计算各 SKU-仓库维度的需求统计量
WITH demand AS (
SELECT
sku_id,
warehouse_id,
AVG(daily_qty) AS avg_daily,
STDDEV_SAMP(daily_qty) AS sigma_daily,
COUNT(DISTINCT stat_date) AS valid_days
FROM dwd_daily_sales
WHERE stat_date >= DATE_SUB(CURRENT_DATE, INTERVAL 90 DAY)
AND daily_qty >= 0
GROUP BY sku_id, warehouse_id
),— 第二步:计算实际提前期分布(用历史到货批次反推)
leadtime AS (
SELECT
sku_id,
warehouse_id,
AVG(actual_leadtime_days) AS avg_lt,
STDDEV_SAMP(actual_leadtime_days) AS sigma_lt,
COUNT(*) AS batch_cnt
FROM dwd_inbound_batches
WHERE arrive_date >= DATE_SUB(CURRENT_DATE, INTERVAL 180 DAY)
GROUP BY sku_id, warehouse_id
),— 第三步:库存位置 = 可售 + 锁定 + 在途已发 + 已下单未发
position AS (
SELECT
sku_id,
warehouse_id,
SUM(CASE WHEN stock_type = 'available' THEN qty ELSE 0 END) AS qty_available,
SUM(CASE WHEN stock_type = 'reserved' THEN qty ELSE 0 END) AS qty_reserved,
SUM(CASE WHEN stock_type = 'in_transit' THEN qty ELSE 0 END) AS qty_in_transit,
SUM(CASE WHEN stock_type = 'ordered_not_shipped' THEN qty ELSE 0 END) AS qty_on_order
FROM dwd_inventory_snapshot
WHERE snapshot_date = CURRENT_DATE
GROUP BY sku_id, warehouse_id
),— 第四步:计算安全库存与再订货点
calc AS (
SELECT
d.sku_id,
d.warehouse_id,
d.avg_daily,
— 服务水平 z 值:核心款 2.05(98%),长尾款 1.28(90%)
CASE WHEN abc_class IN ('A','B') THEN 2.05 ELSE 1.28 END AS z_value,
l.avg_lt,
l.sigma_lt,
— 安全库存:同时考虑需求波动与提前期波动
CEIL(
(CASE WHEN abc_class IN ('A','B') THEN 2.05 ELSE 1.28 END)
SQRT( l.avg_lt * POWER(d.sigma_daily, 2)
+ POWER(d.avg_daily, 2) * POWER(l.sigma_lt, 2) )
) AS safety_stock,
— 再订货点
CEIL( d.avg_daily * l.avg_lt
+ (CASE WHEN abc_class IN ('A','B') THEN 2.05 ELSE 1.28 END)
SQRT( l.avg_lt * POWER(d.sigma_daily, 2)
+ POWER(d.avg_daily, 2) * POWER(l.sigma_lt, 2) ) ) AS reorder_point
FROM demand d
JOIN leadtime l ON d.sku_id = l.sku_id AND d.warehouse_id = l.warehouse_id
)
— 第五步:生成补货建议并做约束校验
SELECT
c.sku_id,
c.warehouse_id,
p.qty_available + p.qty_in_transit + p.qty_on_order AS inventory_position,
c.reorder_point,
c.safety_stock,
— 目标上限 = 再订货点 + 一个补货周期销量
CEIL(c.reorder_point + c.avg_daily * c.avg_lt) AS target_max,
— 原始建议量
GREATEST(
0,
CEIL(c.reorder_point + c.avg_daily * c.avg_lt)
(p.qty_available + p.qty_in_transit + p.qty_on_order)
) AS raw_suggest_qty,
— 约束后建议量:不低于MOQ,向上取整到装箱率
CASE
WHEN GREATEST(0, CEIL(c.reorder_point + c.avg_daily * c.avg_lt)
(p.qty_available + p.qty_in_transit + p.qty_on_order)) = 0
THEN 0
ELSE CEIL(
GREATEST(mo.min_order_qty,
GREATEST(0, CEIL(c.reorder_point + c.avg_daily * c.avg_lt)
(p.qty_available + p.qty_in_transit + p.qty_on_order))
) / mo.carton_qty
) * mo.carton_qty
END AS final_suggest_qty,
c.avg_lt,
c.sigma_lt
FROM calc c
JOIN position p ON c.sku_id = p.sku_id AND c.warehouse_id = p.warehouse_id
LEFT JOIN dim_sku_moq mo ON c.sku_id = mo.sku_id
WHERE p.qty_available + p.qty_in_transit + p.qty_on_order<= c.reorder_point
ORDER BY final_suggest_qty DESC;
这段逻辑里有几个细节值得单独说。第一,安全库存用了完整的双波动公式,而不是简单的日均乘以天数。第二,提前期用的是实际到货批次反推的真实分布,不是合同上的名义天数。第三,最终建议量做了MOQ和装箱率的向上取整,因为跨境采购几乎不存在”下单487件”这种情况。
前面讲的是方法论,这一节我把一个真实落地的过程拆开讲。这是一个做家居和户外品类的卖家,SKU大约420个,覆盖亚马逊美国站、欧洲站和独立站,主要用海运快船,少量空运。他们之前用Excel做补货,两个人每周花大约1.5天。
他们最终选择的路径是用数跨境(九数云旗下专注跨境电商场景的数据分析平台,官网 https://shukuajing.jiushuyun.com/)来承载数据整合、指标计算和补货建议生成,理由我们后面说。这里先把过程和数据讲清楚。
他们先把三类数据接进来:平台销售数据(美国站、欧洲站)、仓储库存数据(FBA、第三方海外仓、国内仓)、在途与采购数据(来自货代的到货批次表、采购的订单表)。
这个阶段最花时间的不是技术对接,而是口径对齐会议。我们花了整整三次会议才把”库存位置”的定义敲定:可售 + 锁定 + 在途已发 + 已下单未发 – 平台已售未发。最后这一项”平台已售未发”是运营坚持要扣掉的,因为亚马逊的订单在发货前就已经占用了库存。
口径统一之后,第一件有价值的事就出现了:他们第一次看到真实的”库存位置”曲线,而不是”可售库存”曲线。运营负责人后来跟我说,看到那条线之后他才意识到,之前有两次断货其实早有预兆,只是他看的指标不对。
我们把420个SKU按近90天销售额做了ABC分类,A类占销售额的72%,SKU数量只占18%;B类占销售额21%,SKU数量占27%;C类占销售额7%,SKU数量占55%。
然后对A、B类SKU单独计算了需求变异系数,把变异系数大于0.5的标记为高波动。最终形成四组策略:A类稳定款用98%周期服务水平,A类高波动款用99%服务水平但缩短补货批量、B类用95%、C类用90%并且部分SKU直接走停售评估流程。
参数设定阶段有一个反直觉的发现:他们原以为需要重点管理的是C类长尾SKU,因为数量多。但算下来,C类SKU占用的库存资金只有总库存资金的9%,而A类占了68%。所以整个参数优化的精力应该压在A类上。

补货建议按前面那段SQL的逻辑生成,落到一张”补货工作台”看板上。看板上每一行是一个SKU,包含当前库存位置、再订货点、建议补货量、建议下单日期、以及一个”变化原因”字段。
流程上做了两级审批:建议金额低于5000美元的,运营确认后直接流转到采购;超过5000美元的,需要运营负责人确认。系统会在三种情况下强制转人工:日均销量最近7天相比前30天变化超过150%、提前期实际值超过名义值20%以上、以及该SKU在最近30天内有断货记录。
这个阶段踩过一个坑:最初我们把”建议补货量”直接展示给采购,结果采购看不太懂,因为他不了解再订货点的概念。后来改成展示”当前预计可售天数”和”建议下单日期”,采购的接受度立刻提高了。这提醒我:同一份数据,对不同角色要用不同的表达方式。
下面是他们运行5个月后我拿到的对比数据,口径均为周度平均,断货率按”当周出现断货的SKU-仓库组合数 / 总SKU-仓库组合数”计算。
| 指标 | 上线前(前3个月均值) | 上线后(第4-5个月均值) | 变化 |
|---|---|---|---|
| 补货测算人工耗时 | 12.5小时/周 | 2.8小时/周 | -77.6% |
| SKU断货率(周均) | 11.8% | 4.6% | -7.2个百分点 |
| 超龄库存占比(>180天) | 14.2% | 11.5% | -2.7个百分点 |
| 库存资金占用 | 412万元 | 438万元 | +6.3% |
| 库存周转天数 | 63天 | 67天 | +4天 |
| 因断货损失的销售额(估算) | 约38万元/月 | 约13万元/月 | -65.8% |
这组数据里最值得说的是后三行。库存资金占用上升了6.3%,周转天数上升了4天,但断货损失下降了65.8%。如果把断货损失换算成月度收益改善约25万元,而多占用的26万元资金按年化8%的资金成本算,月度成本约1700元,这笔账非常清楚。
这也是我一直强调的观点:库存计划的目标不是”周转越快越好”,而是”在可接受的资金成本下,最小化断货与超储的总损失”。这两者在很多参数区间里是冲突的,必须显式地做权衡,而不是假装可以同时优化。

这个团队评估过三条路径:继续用Excel加人工、上供应链ERP、用数据分析平台搭。最后选择第三条,原因有三点。
第一,他们的痛点在数据和计算,不在流程管理。ERP强在流程和单据,但跨境场景里的多平台数据对接、指标口径自定义、灵活的分类与参数调整,ERP通常做得很死。改一个安全库存策略要走开发,周期太长。
第二,参数一定是要反复调的。前面说了,参数设定不是一次性的,服务水平、变异系数阈值、ABC分类边界都会随着业务变化调整。在表格里调方便但不可靠,在ERP里改可靠但不方便,在数据分析平台里既可以用SQL和可视化灵活调整,又能保证计算的一致性和可追溯。
第三,库存分析需要和其他分析打通。库存决策不能孤立看,还要和销量趋势、广告投入、利润结构、退货率一起看。用数跨境这类平台的好处是,同一个数据层里可以同时做销售分析、库存分析、利润分析,库存看板里的异常SKU可以直接下钻到它的利润表现,判断是该补货还是该清货。
当然这套方案也有明确的边界:如果你的SKU超过5000个、涉及十几个海外仓、有复杂的多级分销结构,那单纯的数据分析平台可能不够,需要考虑专业的供应链计划系统。工具选择永远匹配阶段,不是越重越好。
这个阶段不建议上任何系统。你的核心任务是把口径和公式定义清楚,用一张规范化的表格跑通流程。具体做三件事:定义清楚库存位置字段、按ABC分三档设定服务水平、每周固定时间做一次补货测算并留档。
关键是要把”每次测算的输入和输出都存档”,因为这些历史记录就是你未来做参数校准和系统选型的依据。很多人跳过这一步,直接上工具,结果发现工具里没有任何可参考的历史参数。
这是最适合用数据分析平台搭建自动化方案的区间。建议的最小可用方案包含四个模块:多源数据自动同步、指标口径统一层、补货建议计算、带状态的审批流转。
优先级排序上,我的建议是:先做数据同步和口径统一(收益60%),再做阈值预警和流转(收益25%),最后做精细化的参数分类(收益15%)。很多团队顺序搞反了,先花大力气研究算法,结果数据还是手工粘贴的。
这个阶段需要考虑专业供应链计划系统,或者至少要有专门的库存计划岗位来负责参数治理。核心挑战从”能不能算”变成了”参数能不能持续维护”。
建议的做法是建立参数治理机制:每月做一次参数复盘,检查服务水平是否达成、提前期假设是否还成立、分类边界是否需要调整。同时建立SKU分级管理制度,不同级别的SKU有不同的审核层级和复盘频率。

多平台情况下有一个额外问题:同一个SKU在不同平台的库存能不能互相调拨?如果能,那库存位置应该按SKU汇总看;如果不能(比如FBA库存无法直接发给独立站订单),那必须按SKU-仓库-渠道维度分别计算。
我建议的做法是先按”物理库存池”划分维度。FBA是一个池,某个海外仓是一个池,国内仓是一个池。在每个池内部做补货计算,然后在上层做池之间的调拨决策。这样既不会因为强行汇总而失真,也不会因为过度拆分而失去规模效应。
这是最核心的取舍。从前面那张折线图可以看到,服务水平从95%提到99.5%,安全库存资金占用从15.4万元增加到30.6万元,几乎翻倍,但年度不缺货概率从54%提高到94.2%。
我的判断逻辑是看断货的边际损失。如果一个SKU断货一周的损失(销售额损失 + 排名恢复成本 + 广告浪费)超过它全年多占用资金的成本,那就应该提高服务水平。对爆款和高毛利款,答案通常是肯定的;对长尾款和低毛利款,答案通常是否定的。
越自动化的系统越难解释。一个用了机器学习预测的方案,可能预测得更准,但当运营问”为什么建议补800件而不是500件”时,答不上来。而答不上来的直接后果是,运营不信任系统,绕过系统用自己的判断下单,自动化的价值归零。
我的取舍原则是:在数据质量还不够高、团队对库存方法论还不够熟的阶段,宁可选择可解释性强的规则化方案。可解释的方案即使准确率低5%,但因为被真正执行,实际效果往往更好。等团队建立起信任和数据积累,再逐步引入更复杂的模型。
自建的优势是贴合业务、可以任意定制;劣势是维护成本高、人员流动风险大。采购现成工具(包括SaaS类数据平台)的优势是启动快、有成熟的数据对接;劣势是定制空间有限、可能被工具的数据模型绑架。
| 评估维度 | 自建方案 | 现成数据分析平台 | 专业供应链系统 |
|---|---|---|---|
| 启动周期 | 3-6个月 | 2-4周 | 2-5个月 |
| 初期投入 | 高(人力为主) | 低到中 | 高 |
| 定制灵活性 | 最高 | 中高(可写SQL、自定义指标) | 低到中 |
| 多平台数据对接 | 需自行开发 | 通常已内置主流平台连接器 | 视厂商而定 |
| 长期维护成本 | 高 | 低 | 中到高(含服务费) |
| 适用规模 | SKU 2000以上且有技术团队 | SKU 100-2000 | SKU 3000以上、多级供应链 |
我的实际建议是:先用现成平台把业务逻辑跑通、把参数校准出来,再决定要不要自建。大多数团队在跑通之后会发现,瓶颈不在工具能力,而在参数治理和组织协同,这时候自建并不能解决问题。
这个取舍经常被忽略。投入资源提高预测精度,和投入资源提高响应速度,都能改善库存结果,但两者的成本结构和见效周期不同。
提高预测精度通常需要更多数据、更好的模型、更长的调参周期,见效慢且收益不确定。提高响应速度主要是流程改造:缩短数据更新周期(从每周到每天)、缩短审批链路、设置自动触发的补货建议,见效快且确定性高。
我的经验是:在补货周期超过30天的场景下,响应速度的边际收益普遍高于预测精度。因为你的预测再准,如果决策延迟了5天,那5天在45天的补货周期里就是实打实的缺口。
回到开头那个断货的朋友。他后来做的事情不是去买更贵的预测软件,而是做了三件事:把库存位置的定义统一到系统里、把提前期的真实分布算出来、把补货建议的生成和审批做成每天自动跑的流程。三个月后他告诉我,断货率从接近13%降到了5%以内。
这件事让我更确信一个判断:库存计划自动化的价值不在于替你”猜”得更准,而在于把需求波动、提前期波动、批量约束这些不确定性显性化,让每一次补货决策都建立在一致的口径和清晰的假设之上。
如果你现在正准备做这件事,我的建议是按这个顺序推进:先花一周把口径定义清楚并写下来,再花一周用历史到货数据算出真实的提前期分布,然后做ABC-XYZ分类并按格子设定服务水平,最后才考虑用什么工具承载。工具是最后一步,不是第一步。
下一步你可以立刻做的一件事是:打开你现在的补货表,找出最近半年断过货的SKU,逐个检查它们断货前两周的”库存位置”是多少、再订货点是多少。如果发现当时库存位置已经低于再订货点但没人注意到,那你的问题就在监控和流转,不在预测,而这恰恰是最容易自动化、收益也最直接的部分。
我们团队一直用 Excel 管库存计划,今年老板说要上自动化,但接触了几家供应商,一上来就讲 AI 销量预测,我心里没底,到底该从哪一块下手?我怕钱花在预测模型上,结果最痛的地方没解决。
先把库存计划拆成四段:需求预测、补货决策、在途与库存对账、异常工单处理。多数跨境团队 80% 的痛点其实在第二、第三段,不在预测。我建议的落地顺序是:第一步做库存口径统一和在途可视化,第二步做补货点/安全库存的自动计算,第三步才上预测模型。
判断依据是,我看过两个同类店铺,只把口径统一、把在途数据接实时,缺货率就从 12% 左右降到 6% 上下;而单纯把人工预测换成算法预测,缺货率通常只改善 1 到 3 个百分点,前提还是数据干净。
第一步的具体交付物就三样:一张以内部 SKU 为主键的映射表、一份在途库存口径文档(采购在途、头程在途、调拨在途、待上架、可售、预留必须分开定义)、一个每天自动跑的对账任务。这三样做完再谈模型,投入产出比完全不同。
我做跨境三年,安全库存一直是按经验设 30 天,结果旺季断货、淡季又压一堆呆滞库存,资金全卡在仓里。我听说有公式,但网上讲得都很玄,我想知道套到跨境这种 50 多天海运链路里,具体该怎么算、有哪些坑。
用公式,但要用对口径:安全库存 = Z × 周期内需求标准差 × sqrt(补货周期)。补货周期 = 采购生产 + 头程 + 入仓上架 + 安全余量,跨境海运通常在 45 到 60 天。服务水平 95% 对应 Z=1.65,99% 对应 Z=2.33。
举个具体数:某 SKU 日均出 40 件、日销标准差 18 件、全链路 55 天,安全库存 = 1.65 × 18 × sqrt(55) ≈ 220 件。这里最容易踩的坑是直接拿日标准差乘天数,那会把安全库存放大 sqrt(55) 也就是 7.4 倍,最后变成压货机器。
补货点 = 日均销量 × 补货周期 + 安全库存,日均销量用近 90 天剔掉大促和断货日的真实出库量,不要用下单量。还要分层:A 类(前 20% 销售额的 SKU)用 99% 服务水平,B 类 95%,C 类 90% 甚至按单补货。新品前 60 天、清仓款、大促前后,直接排除在公式之外走人工。
我们同时做亚马逊、独立站和 TikTok Shop,货分散在 FBA、海外仓和国内仓三个地方。每次想跑自动补货,光对数据就耗掉大半天,最后计划员还是回去用表格拍。我怀疑不是工具不行,是我们自己的数据有问题,但不知道从哪下手整。
主数据先行、对账幂等、差异设阈值,这三件事没做完,任何自动化都是在脏数据上做负优化。具体做法:第一,以内部 SKU 为唯一主键,建一张 MSKU、平台 SKU、海外仓 SKU 的映射表,映射关系由人维护并且必须带生效时间字段,因为链接换过 SKU 的历史不能丢,否则回溯销量时会把两个商品混在一起。
第二,把库存拆成五个池:可售、预留锁定、在途(采购加头程加调拨)、待上架、不可售,每个池都要写清口径定义,尤其是平台预留库存和 FBA 在库但不可售的部分,很多团队就是把它算成可售,导致重复补货。
第三,每天跑一次自动对账任务,允许 ±2% 或 ±5 件以内的尾差自动核销,超过阈值的不许自动计划直接采用,而是生成异常工单让人处理。判断标准很简单:如果可售库存口径在不同平台之间还有歧义,先别上预测模型。
我们去年试着上了自动补货,平时看着还行,结果黑五前按平时日均销量算,货备少了,一个爆款断了两周;反过来又有几个款压到今年还在清。现在组里有人主张关掉自动化回到人工,我很犹豫,想知道有没有更稳的推进办法。
用影子运行加护栏指标加人工覆盖三层机制。上线前先做 4 到 8 周影子运行,自动结果只记录不执行,每周和人工计划做对比,看四个数:预测偏差(MAPE)、缺货率、库存周转天数、呆滞库存占比,其中 MAPE 建议按 SKU 分层看,别只看整体平均值,A 类 SKU 的偏差才致命。
上线后设硬护栏:单次补货量不超过近 90 天日均销量乘以 45 天、单 SKU 有库容上限、整体现金占用有月度上限,任何一条被触发就自动转人工,不许系统自己放行。第三,把大促、清仓、断货恢复期、新品首 60 天这几类 SKU 排除在自动范围外,走人工决策,这个排除清单要能按时间自动生效和失效。
另外人工覆盖必须留痕:谁改的、改前改后、什么原因,否则你永远说不清到底是算法错了还是人改错了。最后提醒一句,评估自动化效果不能只盯缺货率,必须和周转天数一起看,只看一个指标一定会从一个极端跑到另一个极端。


读者评论
口径统一那段太真实了。我们去年专门做过一次字段定义,文档写了十几页,结果三个月后新来的运营还是按自己的理解算在途。后来才明白,口径靠文档管不住,得把它固化到系统字段里,取数入口只留一个、人工改不了。这个前置工作不做,后面上什么工具都是白搭,数据照样对不上。
阈值触发那块我持保留意见。我们把预警从每天一次改成准实时之后,运营一天收四五十条提醒,两周就全部设成免打扰了,断货反而又多起来。后来按SKU分层,A类实时推、C类一周算一次,才有人真正看。压缩决策延迟的前提是提醒本身少而准,否则只是把延迟换成了噪音。
漏斗图那个21%很有代入感,但卡住我们的往往不是数据,是供应商MOQ和装箱率。系统建议补800件,工厂起订3000,要么压货要么放弃这次补货,这个取舍系统给不了答案。所以我现在更在意能否把MOQ、装箱数直接带进建议单,让人一眼看到差距有多大,再决定怎么改。