电商物流指南

Fill Rate、OTIF 与单票成功妥投成本:一套电商履约诊断指标树

履约里最贵的一场争论,是双方都对的那场。品牌说「订单我们按时释放给仓库了」,3PL 说「我们按时发货了」,顾客的物流轨迹页却显示包裹在结账承诺的送达日期之后四天才到。三句话全都成立,只是各自在读不同的时钟:订单时钟、发货时钟与送达时钟。Fill rate、OTIF 和单票成功妥投成本之所以总被这样争论,正是因为指标同名、口径不同、时间戳不同、责任人不同。

这篇文章同时写给两类读者:一边是 DTC 与全渠道品牌里对这些数字负责的运营者,另一边是对着这些数字执行的 3PL 运营负责人与客户经理。目标是双方能坐到同一张桌前的共享诊断树与对账手册:每个指标一个口径、指标下面一条因果链、数字一动该拉哪根杠杆只有一条规则。

核心论断是:fill rate、OTIF 与单票成功妥投成本不是三块互相独立的仪表盘。它们是同一套系统,底下只有一条因果链,正确的读法是把它当成一棵坐在一条链上的树。树显示症状,链装着病因。为了让方法落地,全文用一个虚构的美国 DTC 家居品牌 Harbor and Pine 贯穿,同一组基线数据跑到底:一个月 10,000 单、订单 fill rate 91%、OTIF 78%、每单履约与运费合计 10.20 美元。Harbor and Pine 的每个数字都是演示用示例,刻意做到内部自洽,让每一步诊断都能被读者照着复算。

编辑插画:品牌运营负责人与 3PL 客户经理并排坐在仓库办公桌前,一起看一张形状像树的打印记分卡,树的根部穿过背景仓库窗户里的传送带延伸出去,午后暖光、纸纹质感、松散墨线与稀疏橙色点缀,略带不完美手绘感
同一棵树,同一组数字,双方在同一张记分卡前

为什么三个指标是一棵树,而不是三块仪表盘

每个顶层指标读的都是同一段旅程的一截。订单 fill rate 读承诺:有没有货、订单是否完整发出?OTIF 读执行与在途:完整的订单是否按时离仓、并在承诺日期前送达?单票成功妥投成本给整段旅程定价:人工、包裹运费、附加费,以及夹在中间的那一次次失败派送。因为三段跨度彼此重叠,一个顶层数字的移动,通常是在上游某个由另一个指标「管辖」的阶段里造成的。OTIF 红了而 fill rate 还是绿的,问题出在释放与执行,不在库存;成本红了而服务水平还是绿的,问题出在费率卡、zone 结构或包装,不在仓库地面。亮起红灯的那个指标,很少是制造问题的那个指标。

这种不对称定义了诊断的方向:顶层数字一动,先往上游查。顶层数字是症状,分支节点是病因,叶子是动作,而每一片叶子都有一个责任人:品牌、3PL 或承运商。这就是三个指标必须长在同一棵树上的原因。仪表盘把每个数字单独展示,等于邀请各方各自捍卫自己的数字;树则把问题逼向另一个方向:哪根分支动了,我们该碰谁的叶子?

指标树与因果链图:上层是三个顶层指标(订单 fill rate、OTIF、单票成功妥投成本),下层是同一条因果链(库存可用性→拣货完整性→截单与首扫→在途表现→成功妥投),三个指标分别连到链上不同环节
树显示症状,链装着病因

Harbor and Pine 的基线数据给了这棵树可诊断的对象。品牌卖蜡烛、陶瓷与纺织品,从中西部的一个 3PL 仓库发货,顾客大多在东海岸与西海岸。当月读数:订单 fill 91%、OTIF 78%、每单成功妥投 10.20 美元。管理层要在下个季度内把 fill 提到 97%、OTIF 提到 80 多、单票成本压到 9.40 美元或以下。达成目标不是把三个旋钮一起拧到底,而是在下面的链上找出真正坏掉的环节。

数字底下的因果链,以及承运商事件与运费如何挂上去

三个指标底下只有六个环节,每一单都按顺序经过。第一环,库存可用性:预测准确率、安全库存、补货提前期与库存布局决定你能承诺什么,这一环喂的是 fill rate 的「in-full(齐全)」半边。第二环,拣货完整性:分配、拣货准确率与打包核验决定实际发出的是否完整,喂的是执行端的 in-full。第三环,截单与首扫:品牌的订单释放时点与 3PL 的截单纪律决定订单今天发还是明天发,首扫就是证据。第四环,在途表现:承运商时效表、周末处理与异常事件决定包裹实际走几天。第五环,成功妥投:派送尝试、失败尝试、重投与最终妥投扫描收口 OTIF,并定义什么算「妥投」。第六环是成本视图:前面几环的人工加上后面几环的包裹运费与附加费,折成每个成功妥投订单上的一个数字。

顶层指标在链上有固定的座位。订单 fill rate 读第一环,也就是承诺,缺口要到第二环对着承诺执行时才显现;OTIF 读第二到第五环:拣选齐全、截单前发出、承诺窗口内妥投;单票成功妥投成本给整条链定价,所以任何一环出错它都会动。

承运商事件以证据的形式挂上链。截单之后,每一次交接都由一次扫描来验证:首扫证明发货日期,在途扫描记录进度,异常事件标记问题,妥投扫描收口整个闭环。没有承运商扫描,OTIF 的送达半边根本无法验证,所以双方必须先约定「哪个扫描驱动哪个指标」,再谈其他任何事。运费则按另一张时间表挂上去:钱在上游决定、在下游花掉。打包时选的箱子尺寸、决定今晚还是明天发出的释放时点、结账时选的服务等级,都在早期定案;花销到后面才落地,表现为 zone 与重量、体积重、住宅与燃油附加费,以及失败派送与重投的成本。这个时间差,正是成本争论总比服务争论晚一到两周的原因。

因为每一环的责任人不同,每一种典型修复只修得好一环。三根杠杆就能覆盖大多数争执:

杠杆修得好链上哪一环修不好什么
提高安全库存缺货、系统有账但拣不到(幽灵库存/虚占库存)、补货提前期过长造成的订单级 fill 损失拣货不完整、发货扫描晚点、承运商在途波动,或更快运费的成本
改善仓库执行拣货不完整或不准确、截单漏发、首扫延迟、分配规则缺货造成的 fill 损失、承运商在途波动,或对当前 zone 结构而言太贵的费率卡
更换承运商在途时效波动、周末处理缺口、派送成功率、部分附加费幽灵库存与库存缺口、自己造成的释放延迟、箱子过大导致的运费,或上游地址数据不良造成的派送失败

边界才是重点。一支会正确读树的团队,会停止把同一种最爱用的修复往所有症状上套,而是先问哪一环坏了。如果品牌的释放 feed 晚了,换承运商修不好;如果箱子太大,给仓库打鸡血修不好。Harbor and Pine 在下面几节会连踩三个坑,每一次都是这条链把方向指回正确的环节。

Fill rate 子树(链上环节:库存可用性与承诺)

先定口径,因为「fill rate」其实是三个指标共用一个名字。订单级 fill rate 是完整发出的订单占比,驱动客户体验:少一行就让人感觉整单失败。行级 fill rate 是完整发出的订单行占比,驱动缺货与拆单的复杂度。件级 fill rate 是发出的件数占比,主要在仓库内部对拣货有意义。对外与面向客户体验汇报订单 fill,用行级 fill 看有多少订单被拆开或等待,件级 fill 只当运营输入。报错层级本身就是一桩对账纠纷:91% 的订单 fill 和 97% 的件级 fill 描述的是同一个月。

fill rate 子树从顶层往上游走五个节点:需求预测准确率、安全库存、补货提前期、库存布局,以及订单承诺或缺货逻辑。每一处缺口都能追到其中一个节点。典型的漏损集中在三个节点。幽灵库存(虚占库存)是系统显示有货、拣货波次却分不到的库存,因为件数被一个待处理的批发订单占用、躺在 QC 隔离区、或被盘错。拆单漏损发生在策略允许部分发货、而对客指标把这类订单算作不完整的时候。缺货逻辑漏损发生在结账承诺把订单拖过原定日期、而不是拆单或取消的时候,订单就这样被悄悄推出 fill 窗口。

技术插画:仓库货架特写,两摞纸箱之间有一个缺口,一张小标签上的库存数被划掉并手写改正,技术线描风格
系统说有货、拣货却分不到:三个经典漏损里最难察觉的一个

Harbor and Pine 的 91% 意味着 10,000 单里有 900 单没有完整发出。把这 900 单按原因分桶,形状很清晰:550 单缺货、200 单幽灵库存、150 单被「不拆单」的缺货策略压住。

堆叠柱状图:Harbor and Pine 的 10,000 单去向(fill rate 视角),完整发出 91%,缺货短装 5.5%,幽灵库存短装 2%,不拆单策略压住 1.5%
缺口分桶:先看形状,再顺着桶追节点

沿子树走一遍就找到坏掉的节点。缺货桶追到预测准确率与安全库存:爆款 SKU,一支每 10 单里出现 4 次的蜡烛,在一场闪购里比预测多卖了 12%,4 天烧光 6 天安全库存,而下一批海运集装箱还要 5 周才到。幽灵桶追到一条可用性规则:一笔常设分配把可售件数押给一个待处理的批发订单,于是目录承诺了仓库拣不出来的库存。不拆单桶追到承诺逻辑:两件套订单为了等齐两行而不先发出已有的一行、也不告知顾客。这里没有一件是承运商的问题,也没有一件是拣货的问题。链指向第一环,库存可用性,杠杆是安全库存、分配规则与承诺策略。

对齐卡:按谁的时钟算「有货」?品牌目录与 3PL 的 WMS 会因为三个原因对「什么可售」各执一词:把件数预留给其他渠道或批发订单的分配规则、系统仍计为可用却实际隔离的库位、以及两套系统之间库存 feed 的刷新频率。以书面形式约定「可用」是什么意思、多久刷新一次、结账处的承诺由谁负责。大促期间要提前约定分配规则,而不是在复盘里才发现分歧。

OTIF 子树(链上环节:拣货、截单、在途、妥投)

OTIF 拆得很干净:on-time 乘以 in-full,同一批订单上衡量 [^1],这也是它成为行业通行的交付可靠性口径的原因。in-full 是上游决定的 fill rate 交接棒,所以 fill rate 与 OTIF 总是一起动,分开争论它们通常是错的。on-time 再拆成两半:按时发货(释放与截单纪律)与按时送达(相对承诺送达日期的在途表现)。Harbor and Pine 的 78% 是 91% 的 in-full 乘以 85.7% 的 on-time,缺口集中在 on-time 这一半。

OTIF 子树走六个节点:订单释放与截单、拣货波次、打包与打单、承运商交接、承运商时效表、妥投扫描。漏损各有主人。EDI 迟到或订单释放晚是品牌的责任:何时把订单送到 3PL 由品牌决定。波次分批、SLA 违约与首扫延迟是 3PL 的责任。在途时效波动与周末处理缺口由承运商与 3PL 共担,因为选承运商的是 3PL、定班表的是承运商。给每个节点点出责任人,才能把一场 OTIF 争论变成一张修复清单。

Harbor and Pine 的这个月:10,000 单里有 1,430 单晚到,14.3% 的 on-time 漏损。(晚到的订单也可能同时短装;其中 130 单就是如此,它们已经出现在上面的 fill 缺口里。两个驱动因素重叠时,桶归给链上先坏掉的那一环。)

柱状图:Harbor and Pine 晚到订单按主因分桶,截单后发出 620 单、在途超出承诺 520 单、派送异常 290 单
1,430 单晚到的三层堆叠:品牌一环、3PL 一环、承运商一环

诊断按主人逐个读。620 单晚发拆成两半:350 单是品牌在两次闪购日把订单释放到了 3PL 截单之后,当天订单 feed 晚了三到四个小时;270 单被 3PL 的周一波次吞掉,错过下午 4 点截单、次日才发。520 单在途波动是按时发出、却跑过了承诺:承运商公布时效表说去西海岸 zone 要 5 天,但没有周末处理时实际要 6 到 7 天,月中一次异常高峰又加了 40 单。290 单派送异常拆成 210 单多单元地址首次派送失败与 80 单地址质量问题、每单多一次重投。这堆是叠出来的,不是单一的:闪购日的品牌释放漏、周一的 3PL 波次漏、以及在最远线路上过度承诺的承运商时效表。只修其中一环,14.3% 里的大头还是留在桌上。

对齐卡:on-time 在哪里量?一次性定好 on-time 按发货量还是按送达量,并写明对客承诺包含在途天数。约定送达窗口的含义:承诺当天结束前,还是承诺后若干天内。约定 SLA 报告里在途天数归谁:3PL 管订单释放到首扫,承运商管首扫到妥投扫描,品牌管结账页显示的承诺日期。双方报价用的体积重与 zone 表要保持准确,因为一张错的 zone 表会在任何包裹出发之前就悄悄打破时效承诺。

单票成功妥投成本子树(链上环节:人工到最终妥投)

单票成功妥投成本需要和另外两个指标一样严的口径纪律,先从分母开始。妥投订单指成功送达的订单,所以失败派送与重投在数字里面,不在外面。从未送达、退回发件人或丢失的订单退出分母,但它们产生的运费与重投花销留在分子里。这是刻意为之:这个指标回答「把每一单成功妥投的订单做出来花了多少钱」,于是「不可投递」的尖峰表现为单票成本变高,而不是从报表里消失。

成本子树走六个节点:拣货与打包人工、包材、按 zone 与重量的包裹运费、附加费(体积重、住宅、燃油)、退货处理、失败派送与重投。它和服务水平的耦合,正是这个指标不能单独管理的原因:拉低 OTIF 的根因同样在抬高成本。箱子过大触发体积重计费 [^2],因为承运商按实重与体积重的较大者收费;截单漏发逼着几单急件升级到次日空运;一次首次派送失败要付尝试费、重投费、往往还有第二次附加费,而行业研究里单次重投人工平均就要约 17 美元 [^3]。服务问题与成本问题同源,修因,两个数字会往同一方向动。

Harbor and Pine 的单票 10.20 美元拆成六个组成部分。

柱状图:Harbor and Pine 每单成功妥投 10.20 美元的成本构成,拣货打包人工 2.10、包材 0.90、基础运费 5.40、附加费 1.30、失败派送与重投 0.30、分摊退货处理 0.20
六行成本里,服务问题留下的三行可以靠运营修复

树在服务树已经找到原因的地方找到了漏损。先看体积重那一块:蜡烛与陶瓷并单的订单装进大一号的纸箱,体积重多收大约占了 1.30 美元附加费里的 0.50 美元。闪购日的截单漏发把 62 单逼上两天空运,每单多花 6 到 9 美元,摊到平均上只是每单约 0.05 美元的舍入误差,但这 62 单上是纯利润燃烧。210 单首次派送失败按每单约 14 美元的重投成本算,摊到全月每单 0.30 美元,正好对上重投那一行。拣货打包人工 2.10 美元与基础运费 5.40 美元停在费率卡与 zone 结构给它们的位置上,而这个 zone 结构沿海岸线偏重,那是布局问题,不是仓库问题。在碰任何一张费率卡之前,修体积重、修截单纪律、修地址质量,大约值每单 0.85 美元。

对齐卡:双方各自往分子里放什么。品牌的到岸成本视图包含包裹运费、附加费、重投、退货处理,以及它付给 3PL 的人工。3PL 的运营成本视图包含人工、包材、场地与设备,但通常不含品牌直接付给承运商的包裹运费。两个视图本就不该相等,它们该能对账:两边各自写明哪些进、哪些出,会上才比得了同类项。把分子与分母写进 SLA,「你的成本比我们的高」就从指责变成定义问题。关于分母与失败派送成本的完整展开,见我们的单票成功妥投成本指南。

分支互相拉扯时(权衡)

三根分支朝不同方向拉,只优化单个顶层的团队会自己跟自己打架。提高 fill rate 把现金压在安全库存上,还可能缩短新品跑道。提高 OTIF 通常意味着更快的服务,更快的服务通常意味着更贵的服务。砍成本同时危及 fill 与 on-time,因为最便宜的箱子、最便宜的线路与最精简的安全库存都会漏进另外两个指标。还有更隐蔽的失败:过度服务。到处买两天空运,买来的是没有顾客会为之流失的 OTIF 点数,花销却是一笔无声的成本漏损。

仲裁框架是边际的,不是平均的。拿下一个服务点的边际成本,去比它换来的边际收入与留存:目前晚到的订单里,有多少真的处于流失风险?一个这样的顾客值多少钱?让比较保持诚实的护栏指标是「完美妥投单成本」(cost per perfect delivered order),perfect 指按时且齐全。它是唯一把两个服务顶层与成本顶层耦合成一个数字的指标,也是分支互相拉扯时应该按月跟踪的指标。晚到体验对复购的量化影响,见我们的配送体验与复购率指南。

决策规则顺着链走:先修运营根因,再买速度;只有在速度所在的分支干净之后才买。Harbor and Pine 演示了先后顺序。把释放 feed 提前、并与 3PL 约定一个周一截单前波次,几乎零运费成本地找回 620 单晚发里的大头。把并单纸箱换到合适尺寸、在结账处加地址校验,砍掉体积重与重投花销。只有这些都落地之后,品牌才评估西海岸线路上的更快在途,而且只拿边际运费去比更快承诺换来的边际留存。在修好释放 feed 之前买空运,买来的速度随后就被释放 feed 浪费掉。

把它变成共同语言:品牌与 3PL 的对账手册

以上所有内容,最终压成双方都签字的一页:一张定义表、一条数据时间线、一套记分卡节奏、几个可以照做的争议案例。定义表就是合同本身。每一行写下指标名、包含什么、由哪个时钟读取、归谁所有。

手绘编辑卡通:两个团队共三人围着一块白板画同一棵指标树,一人指着板上列出的一行扫描时间戳,随意的仓库办公室,松散手绘墨线加橙色点缀、可见纸纹
先把时间戳写在白板上,再谈数字
指标包含什么由哪个时钟读取责任人
订单 fill rate完整发出的订单 vs 下单的订单发货扫描 vs 下单日期3PL 执行;品牌负责结账承诺
行级 / 件级 fill rate发出的行或件 vs 订购的行或件发货扫描3PL(运营输入)
按时发货截单前完成首扫的订单订单释放与首扫品牌释放时点;3PL 截单纪律
按时送达承诺日期前完成妥投扫描的订单妥投扫描 vs 结账承诺日期品牌承诺;承运商在途;3PL 承运商选择
OTIF按时且齐全的订单上面两个时钟共享,按节点分
单票成功妥投成本履约与运费总花费 / 成功妥投数账单周期共享,分子拆分已定义

数据时间线是第二项约定:下单、释放、开始拣货、发货扫描、承运商妥投扫描。每个指标读这条线上特定的一对点:订单 fill 用发货扫描对下单日期;按时发货用首扫对截单;按时送达用承运商妥投扫描对结账页显示的承诺日期。如果双方对「某个指标读哪一对点」谈不拢,即便数据一模一样,数字也会谈不拢,所以时间线要在第一张记分卡之前写下来。前 90 天里如何把这些约定落到 SLA 与第一次对账会议,见我们的3PL 沟通与 SLA 首 90 天指南。

记分卡节奏把执行与经营分开。每周开运营复盘,只看叶子节点:截单合规、首扫延迟、拣货准确率、分配失败、异常计数,每个都由第 4 节点名的责任人认领;这是给 3PL 运营记分卡打底的数据,展开见我们的3PL 包裹履约记分卡指南。每月开经营复盘,看三个顶层指标加完美妥投单成本,并做杠杆决策。让整棵树能从同一份共享记录里算出来的数据交接很短:订单 ID、SKU、订购/分配/拣货数量、承诺日期、释放时间戳、首扫、妥投扫描、承运商、zone、重量与体积、附加费行项、异常事件。双方每周以扁平记录交换一次,任一方都能从同样的行重建这棵树。

有了白纸黑字的定义,争议会自己化解。「我们按时发货了」对「顾客晚收到」并不是矛盾:一个读首扫对截单,另一个读妥投扫描对承诺,而承诺包含在途,所以两句话都对,SLA 报告会显示坏掉的是哪个节点。退货在发货当期计为已发订单,若从未妥投则从妥投分母里剔除,其处理成本按约定分摊进分子。重投附加费记给造成重投的一方:结账地址数据不良是品牌的,承运商分拣错误是承运商的,原因存疑时按 3PL 合同的默认条款走。

本周就能跑的五步诊断

整棵树缩成五步,双方在同一周跑完。一,用第 7 节的表,在同一口径下把同一周期的三个数字拉出来,拉数期间克制住重新争论定义的冲动。二,按第 3 到 5 节的主因分桶找链上最深的那根坏分支,而不是看哪个顶层红了。三,挑一根第 2 节边界与那根环节匹配的杠杆,别把最爱用的修复用在别的环节上。四,与 3PL 以书面形式约定责任人与复测日期,以每周复盘里的节点级数据为证据底稿。五,30 天后对着护栏复核:单票成功妥投成本与完美妥投单成本,确认分支真的动了再宣布胜利。

升级触发条件把运营修复与结构性修复分开。如果坏掉的分支需要更多安全库存、加一条承运商线路、重谈费率卡或重设计包装,它是结构性的:需要资金或合同变更,走季度时钟,应该升级到月度经营复盘,而不是在周会上打补丁。如果分支需要释放时点、波次纪律或地址校验,它是运营性的,进周会,带责任人与日期。

Harbor and Pine 跑完五步,落定行动清单:修可用性 feed 与批发分配规则;给爆款 SKU 提高安全库存并缩短补货承诺;把品牌释放 feed 提前并加一个周一截单前波次;把长 zone 线路切到有周末处理的承运商;把并单纸箱换到合适尺寸并在结账处加地址校验。每个动作都映射到链上的一环、一根杠杆与一个责任人。树只有在双方从同一根出发、读同一条链时才成立。等到某一天,双方能打开同一份扁平记录、拉出同样的三个数字、不用争论定义就能指向同一个坏掉的环节,这套诊断就算完成了它的工作。想比较承运商选项与费率的落地工具,用我们的运费计算器按真实 zone、重量与体积重跑同一组线路,看定价页了解如何通过 Portal、Excel 或 API 执行。

EasyShippingX 是一个 channel-neutral 的发运层,用于统一比较美国境内承运商选项并通过 Portal、Excel 或 API 执行。我们的位置从诊断结束的地方开始:当分支指向费率卡、zone 结构或承运商选择时,你按真实包裹画像比较承运商费率并执行;当分支指向库存、拣货或截单时,那些修复在仓库里,不在发运层里。这篇指南属于我们的3PL 履约运营指南系列:先把三个顶层指标放到同一棵树上,再让每周的叶子数据与每月的杠杆决策对齐。

常见问题

因为各自读的是时间线上的不同时钟。品牌读结账承诺与订单释放,3PL 读首扫对截单,顾客读妥投扫描对承诺日期。约定「某个指标读哪一对点」必须在第一张记分卡之前写进定义表;本文第 7 节的表就是这份合同,含订单 fill、行/件级 fill、按时发货、按时送达、OTIF 与单票成功妥投成本六行的口径与责任人。
三个:订单级(完整发出的订单占比,对外与客户体验用)、行级(完整发出的行占比,看拆单与等待)、件级(发出的件占比,仓库运营输入)。报错层级本身就是一桩对账纠纷:91% 的订单 fill 与 97% 的件级 fill 描述同一个月。对外报订单 fill,行级用于内部拆单分析,件级只当拣货运营输入。
因为 OTIF 是 on-time 乘 in-full。Harbor and Pine 的例子:91% 的 in-full 乘 85.7% 的 on-time 等于 78%,缺口集中在 on-time 半边,也就是 10,000 单里 1,430 单晚到(其中 130 单同时短装,已计入 fill 缺口)。in-full 是上游 fill rate 的交接棒,这正是两个指标总是一起动、分开争论通常是错的原因。
提高安全库存只修缺货、幽灵库存与长补货提前期造成的 fill 损失,修不好拣货不完整、截单漏发或在途波动。改善仓库执行修拣货、截单与首扫,修不好缺货型 fill 损失或对 zone 结构太贵的费率卡。换承运商修在途时效波动、周末处理缺口与派送成功率,修不好幽灵库存、自己造成的晚释放、过大的箱子或上游地址数据不良。先问哪一环坏了,再选杠杆。
每周跑运营复盘,只看叶子节点(截单合规、首扫延迟、拣货准确率、分配失败、异常计数),每月跑经营复盘,看三个顶层指标加完美妥投单成本并做杠杆决策。结构性修复(安全库存、承运商、费率卡、包装)走季度时钟并升级到月度复盘;运营修复(释放时点、波次纪律、地址校验)进周会,带责任人与日期。