4. 达成率指标定义与计算口径

在交付表现分析中,最容易引发争议的往往不是数据本身,而是“口径”。同一批订单,销售说达成率是 96%,供应链说是 89%,客户满意度调查却显示只有 82%——差异通常来自三个地方:分母选了什么、分子认定了什么、时间窗口怎么切。本节把订单达成率、准时交付率、完美订单率三个核心指标逐一拆开,明确业务含义、计算公式与实现要点,并给出可直接落地的 SQL 口径示例。

一、订单达成率:回答“承诺的,做到了多少”

订单达成率的业务含义是:在统计周期内,企业实际完成交付的订单占承诺应交付订单的比例。它衡量的是整体履约能力,而不是单点时效。公式为:

订单达成率 = 实际完成交付订单数 / 承诺应交付订单数 × 100%

口径上有三个关键决策点。第一,分母是“承诺交付”还是“客户要求交付”?若客户要求 3 月 10 日、企业承诺 3 月 15 日,应以承诺日期为准,否则会把企业自身承诺宽松的错误算成客户的问题。第二,分子是否包含部分交付?通常只有整单完成才计入,部分发货不计入达成,但可在明细中单独标记。第三,取消订单如何处理?建议将“统计周期内客户取消”的订单从分母剔除,而“企业原因取消”保留在分母中并计入未达成,这样才能真实反映履约责任。

实现时,订单主表通常包含 order_id、promise_date、actual_delivery_date、order_status、cancel_reason 等字段。一个可用的口径实现如下:

SELECT
  COUNT(DISTINCT CASE WHEN actual_delivery_date IS NOT NULL
        AND order_status = 'COMPLETED' THEN order_id END) AS fulfilled_orders,
  COUNT(DISTINCT CASE WHEN NOT (order_status = 'CANCELLED'
        AND cancel_reason = 'CUSTOMER') THEN order_id END) AS promised_orders,
  ROUND(fulfilled_orders / promised_orders * 100, 2) AS fulfillment_rate
FROM orders
WHERE promise_date BETWEEN '2024-03-01' AND '2024-03-31';

注意:分母用 promise_date 落在统计周期内来筛选,而不是用实际交付日期,否则会漏掉“承诺在 3 月但拖到 4 月才交付”的逾期订单,导致达成率虚高。

二、准时交付率:回答“按时做到的,有多少”

准时交付率(On-Time Delivery, OTD)聚焦时间维度,衡量实际交付日期不晚于承诺日期的订单占比。公式为:

准时交付率 = 准时交付订单数 / 实际交付订单总数 × 100%

它与订单达成率的分母不同:达成率的分母是“承诺应交付”,准时率的分母是“实际已交付”。这意味着准时率不惩罚“未交付”,只惩罚“交付了但晚了”。因此两个指标必须成对看:达成率高、准时率低,说明交付量够但节奏乱;达成率低、准时率高,说明交付的都很准时,但大量订单根本没交付出来。

时间粒度的选择直接影响结果。按“日”判定时,承诺 3 月 15 日、实际 3 月 15 日 23:00 交付算准时;按“小时”判定则可能因截止时间 18:00 而算逾期。工程上建议在订单承诺时同时记录 promise_date 和 promise_cutoff_time,判定时用完整时间戳比较:

准时判定 = CASE WHEN actual_delivery_ts <= promise_ts THEN 1 ELSE 0 END

此外要明确“交付”的确认事件:是出库扫描、承运商揽收,还是客户签收?三者时间可能相差数天。多数制造与零售场景以“客户签收”为交付确认点,因为它最贴近客户感知;若以出库为准,需在指标命名中标注“出库准时率”,避免与客户侧口径混淆。

三、完美订单率:回答“一次做对的比例”

完美订单率(Perfect Order Rate, POR)是复合指标,要求一笔订单同时满足多个条件才算“完美”。常见四要素为:准时、完整、无损、单据准确。公式为:

完美订单率 = 同时满足全部条件的订单数 / 订单总数 × 100%

它的价值在于防止“拆东墙补西墙”:某月准时率 95%、完整率 97%、无损率 99%,若三个事件独立,完美率约为 95%×97%×99% ≈ 91.2%;但现实中它们往往正相关(赶工导致破损和缺货同时上升),实际完美率可能更低。因此 POR 是交付质量的“综合体检分”。

实现时建议用布尔标记逐项判定,再取交集:

SELECT
  ROUND(SUM(CASE WHEN on_time AND complete AND undamaged AND doc_accurate
            THEN 1 ELSE 0 END) / COUNT(*) * 100, 2) AS perfect_order_rate
FROM order_delivery_fact
WHERE order_date BETWEEN '2024-03-01' AND '2024-03-31';

其中 complete 表示数量无短溢、undamaged 表示无破损退货、doc_accurate 表示发票与装箱单无差错。每个布尔字段都应有明确的判定规则和数据来源,否则 POR 会变成“拍脑袋指标”。

三大交付指标的口径关系与计算路径 订单池 承诺日期落在统计周期 剔除客户取消订单 实际已交付订单 actual_delivery_ts 非空 未交付 / 逾期未交 计入达成率分母,不计入准时率 准时交付订单 actual_ts ≤ promise_ts 完美订单 准时 完整·无损·单据准 订单达成率 实际完成交付订单数 承诺应交付订单数 准时交付率 准时交付订单数 实际交付订单总数 完美订单率 四要素全部满足订单数 订单总数 口径要点:① 分母按承诺日期筛选,避免逾期订单漏统计;② 准时判定用完整时间戳,明确交付确认事件; ③ 完美订单四要素需逐项布尔化,数据来源可追溯;④ 三指标成对解读,防止单一指标虚高掩盖问题。

四、三指标的关系与联合解读

把三个指标放在同一张看板上,能快速定位问题类型。假设某月数据为:承诺应交付 1000 单,实际交付 920 单,其中准时 850 单,完美订单 780 单。则订单达成率 = 920/1000 = 92.0%,准时交付率 = 850/920 = 92.4%,完美订单率 = 780/1000 = 78.0%。

指标分子分母示例值主要暴露的问题
订单达成率实际完成交付订单数承诺应交付订单数92.0%产能不足、缺料、订单取消
准时交付率准时交付订单数实际交付订单总数92.4%排程冲突、物流延误、赶工
完美订单率四要素全满足订单数订单总数78.0%破损、短溢、单据差错、综合质量

从示例可见,达成率与准时率都在 92% 左右,但完美率只有 78%,说明“交付了、也基本准时了,但一次做对的比例明显偏低”。此时应优先排查破损与单据差错,而不是继续压缩交付周期。若达成率 92%、准时率仅 80%,则问题集中在排程与物流时效;若达成率仅 80%、准时率 95%,则说明大量订单未能交付,需回到产能与供应端。

建议在数据仓库中建立统一的 order_delivery_fact 事实表,把 on_time、complete、undamaged、doc_accurate 四个布尔字段与订单粒度对齐,三个指标即可从同一张表派生,避免各系统各算一套、口径打架。
常见口径陷阱:用“实际交付日期”筛选分母,会把承诺在本期、实际拖到下期的逾期订单排除在外,导致达成率虚高;用“出库时间”代替“签收时间”判定准时,会让指标明显优于客户真实感知。指标命名中应明确交付确认点与时间粒度,例如“客户签收口径·按日准时交付率”。

最后强调一点:指标公式本身不难,难的是让业务、财务、供应链和客户对同一套口径达成共识。建议把每个指标的定义、分子分母、数据来源、排除规则、更新频率写成一份《交付指标口径说明书》,并在报表页脚标注版本号与生效日期。只有这样,达成率、准时交付率、完美订单率才能真正成为可比较、可追溯、可改进的管理工具,而不是每月争论不休的数字游戏。