Files
LabelChange-server/.trae/documents/complete_metrics_definition_v6.md
2026-06-01 16:30:29 +08:00

11 KiB
Raw Permalink Blame History

日级报表所有指标的来源和计算方式 - 完整版v6.0

更新日期: 2026-05-16
版本: v6.0 - 完整字段来源总结
状态: 编译通过,逻辑最终确定


核心指标定义变更

24H换单率 - 最终定义

新公式

24H换单率 = 高标签率考核通过数 / 高标签率应该换单数 × 100%

其中:
- 高标签率考核通过数 = 16点前考核通过 + 16点后考核通过
- 高标签率应该换单数 = 所有冻结标签率≥80%的订单

场景说明

情景1冻结标签率 = 79% < 80%
├─ 100个订单
├─ 完成数80个
├─ 贡献到24H换单率的分子0不计入
├─ 贡献到24H换单率的分母0不计入

情景2冻结标签率 = 80% >= 80%
├─ 100个订单
├─ 考核通过数75个
├─ 贡献到24H换单率的分子75全部计入
├─ 贡献到24H换单率的分母100全部计入

汇总24H换单率
24H换单率 = 75 / 100 = 75%
注意79%的100个订单不参与计算

完整字段清单与数据来源

第1组基础时间字段

字段名 中文名 数据来源 计算方式 说明
Date 日期 ArrivalRequests DATE(CONVERT_TZ(到货时间, '+00:00', '-05:00')) UTC-5时区的自然日

第2组基础统计字段直接来自原始数据

字段名 中文名 数据来源 CTE 查询逻辑 说明
DailyNewReplaceCount 当日新增换单数 DailyBase COUNT(DISTINCT 交接单) WHERE 到货日期=当日 当天新增的交接单总数
DailyFailureCount 当日换单失败数 DailyFailedOrders COUNT(DISTINCT 订单) WHERE 失败标记时间=当日 当天新增失败的订单数
DailySuccessCount 当日换单成功数 DailySuccessCount COUNT(DISTINCT 订单) WHERE 首次成功时间=当日 当天首次成功扫描的订单数
DailyStopCount 当日STOP数 DailyScanMetrics COUNT(DISTINCT 订单) WHERE STOP标记时间=当日 当天被STOP的订单数
BeforeNoonArrivedCount 16点前到仓包裹数 DailyBase COUNT(DISTINCT 订单) WHERE 到货时间 BETWEEN 当日00:00 AND 16:00 当天早上16点前到达的订单
AfternoonArrivedCount 16点后到仓包裹数 DailyBase COUNT(DISTINCT 订单) WHERE 到货时间 BETWEEN 当日16:01 AND 23:59 当天下午16点后到达的订单
DailyCompletedOrders 当日完成数 DailyCompletedOrders COUNT(DISTINCT 订单) WHERE 完成时间=当日 当天完成流程的订单数
Daily24HCompleted 24H内完成数 Daily24HCompletedOrders COUNT(DISTINCT 订单) WHERE 完成时间在24小时内 24小时周期内完成的订单数
DailyLabelPushCount 当日标签推送数 DailyBase COUNT(DISTINCT 订单) WHERE 标签推送时间=当日 当天新增推送的标签数
DailyScanCount 当日扫描数 DailyScanMetrics COUNT(DISTINCT 订单) WHERE 首次扫描时间=当日 当天首次被扫描的订单数

第3组递推累计字段需要上一日数据

字段名 中文名 计算方式 说明
CumulativeTotalReplaceCount 累计要换的总单数 MAX(0, 前一日累计 + 前一日新增 - 前一日完成) 当前待处理的积压交接单数
ShouldReplaceCount 当天应该换单数 累计要换的总单数 + 当日新增换单数 当天的完成目标数
UnfinishedFailureCount 换单失败未完结订单 从HistoryUnfinished或LatestUnfinished 失败且未完成的订单数

第4组考核维度字段

4.1 高标签率考核通过标签率≥80%

字段名 中文名 数据来源 CTE 考核逻辑 说明
BeforeNoonPassedCount 16点前考核通过包裹数 DailyBeforeNoonPassed WHERE 到货时间<16:00 AND 首次成功时间≤考核时间 AND 标签率≥80% 16点前到仓标签率高按16点分段规则考核通过
AfternoonPassedCount 16点后考核通过包裹数 DailyAfternoonPassed WHERE 到货时间≥16:00 AND 首次成功时间≤考核时间 AND 标签率≥80% 16点后到仓标签率高按23:59:59规则考核通过

考核时间规则

IF 冻结标签率 >= 80% THEN
  IF 到货时间 < 16:00 THEN
    考核时间 = 当日16:00 ~ 次日16:00
  ELSE
    考核时间 = 当日16:00 ~ 次日23:59:59
  END IF
ELSE
  考核时间 = NULL完成即达标
END IF

4.2 低标签率考核通过(标签率<80%

字段名 中文名 数据来源 CTE 考核逻辑 说明
LowLabelRatePassedCount 低标签率考核通过包裹数 DailyLowLabelRatePassed WHERE 首次成功时间 IS NOT NULL AND 标签率<80% 标签率低,只要完成就达标

第5组标签率维度字段

字段名 中文名 数据来源 CTE 计算方式 说明
HighLabelRateShouldCount 高标签率应该换单数 DailyHighLabelRateShould COUNT(所有冻结标签率≥80%的交接单中的包裹) 应该按高标签率规则处理的订单总数
LowLabelRateShouldCount 低标签率应该换单数 DailyLowLabelRateShould COUNT(所有冻结标签率<80%的交接单中的包裹) 应该按低标签率规则处理的订单总数

第6组衍生计算字段

6.1 考核通过总数

字段名 中文名 计算公式 说明
AssessmentPassedCount 考核通过总数 16点前考核通过 + 16点后考核通过 + 低标签率考核通过 所有通过考核的订单总数

6.2 当天换单完成率

字段名 中文名 计算公式 说明
DailyCompletionRate 当天换单完成率 当日完成数 / 当天应该换单数 × 100% 当天的完成达成率

6.3 24H换单率最终定义

字段名 中文名 计算公式 说明
Rate24Hour 24H换单率 高标签率考核通过数 / 高标签率应该换单数 × 100% 关键KPI标签率≥80%的订单在24小时内的考核达成率

详细计算

高标签率考核通过数 = 16点前考核通过包裹数 + 16点后考核通过包裹数

24H换单率 = 高标签率考核通过数 / 高标签率应该换单数 × 100%

示例:
16点前考核通过40个
16点后考核通过35个
高标签率考核通过数 = 40 + 35 = 75个

高标签率应该换单数 = 100个

24H换单率 = 75 / 100 = 75%

6.4 元数据

字段名 中文名 计算方式 说明
DataFetchTime 数据拉取时间UTC-5 UTC_TIMESTAMP() - INTERVAL 5 HOUR 报表生成时间

冻结标签率详解

定义

冻结标签率 = (最早扫描时间 > 标签推送时间的包裹数) / 总包裹数 × 100%

计算来源

InterchangeUnitLabelRates CTE:
├─ 对每个交接单计算
├─ 最早扫描时间 = MIN(label_scan_history.CreatedAt)
├─ 标签推送时间 = label_replace_requests.LabelRetrievedAt
└─ 比较:最早扫描时间 > 标签推送时间
   ↓
   TRUE → 标签在作业开始前推送(高标签率)
   FALSE → 标签在作业开始时或之后推送(低标签率)

应用

IF 冻结标签率 >= 80% THEN
  整个交接单的所有包裹 → 按高标签率规则处理
    ├─ 16点前到仓 → 考核时间 = 当日16:00 ~ 次日16:00
    └─ 16点后到仓 → 考核时间 = 当日16:00 ~ 次日23:59:59
  
ELSE IF 冻结标签率 < 80% THEN
  整个交接单的所有包裹 → 按低标签率规则处理
    └─ 完成即达标(无固定考核时间)
END IF

完整的数据流示例

场景数据

【高标签率交接单】冻结标签率 = 85%
├─ 100个应该完成的订单
├─ 16点前到仓60个
├─ 16点后到仓40个
├─ 16点前考核通过50个
├─ 16点后考核通过30个

【低标签率交接单】冻结标签率 = 30%
├─ 100个应该完成的订单
├─ 完成即达标
├─ 实际完成85个

【总计】200个订单

指标计算

1. 标签率维度统计
   高标签率应该换单数 = 100冻结标签率≥80%的交接单)
   低标签率应该换单数 = 100冻结标签率<80%的交接单)

2. 考核通过统计
   高标签率考核通过 = 50 + 30 = 80个
   低标签率考核通过 = 85个完成即达标
   考核通过总数 = 80 + 85 = 165个

3. 完成率统计
   当天换单完成率 = (50 + 30 + 85) / 200 × 100% = 82.5%

4. 24H换单率关键指标
   24H换单率 = 高标签率考核通过数 / 高标签率应该换单数
           = 80 / 100 × 100% = 80%
   
   注意低标签率的85个完成订单不参与这个指标
   因为24H换单率只关注"标签率≥80%"的履约情况

指标的业务含义

当天换单完成率 (82.5%)

  • 含义当天应该完成的所有200个订单中有82.5%在当天完成
  • 用途:衡量当天的工作效率
  • 计算(当日完成数) / (当天应该换单数)

24H换单率 (80%)

  • 含义标签率≥80%的100个订单中有80个在24小时内满足考核条件
  • 用途客户看到的关键指标,衡量"高质量需求"的履约能力
  • 计算(高标签率考核通过数) / (高标签率应该换单数)
  • 为什么不包括低标签率
    • 低标签率的订单只需"完成即达标",门槛较低
    • 24H换单率重点反映"标签率高"(难度大)的订单的完成情况
    • 对客户更有说服力

SQL CTE 关键依赖关系

基础表 (label_replace_requests, OverallScanStatus, arrival_handover_forms)
    ↓
┌─ ArrivalRequests (考核时间计算)
│    ↓
├─ InterchangeUnitLabelRates (冻结标签率计算)
│    ↓
├─ DailyBeforeNoonPassed (16点前考核通过)
│
├─ DailyAfternoonPassed (16点后考核通过)
│    ↓
├─ DailyHighLabelRateAssessed (高标签率考核通过数汇总)
│
├─ DailyLowLabelRatePassed (低标签率考核通过)
│
├─ DailyHighLabelRateShould (高标签率应该换单数)
│
├─ DailyLowLabelRateShould (低标签率应该换单数)
│
└─ DailyStatsWithPrev (最终汇总)
     ↓
   最终SELECT (所有指标输出)

编译状态

编译成功 (exit code 0)

  • 24H换单率公式已修正
  • 所有字段来源已梳理
  • SQL逻辑已完整

关键总结

24H换单率的核心价值

公式高标签率考核通过数 / 高标签率应该换单数

意义

  1. 专注于高难度需求只看标签率≥80%的订单
  2. 衡量24小时履约:在规定考核时间内是否完成
  3. 对客户有说服力:客观反映在更高要求下的完成能力
  4. 分子分母明确:分子=考核通过,分母=应该换单

与其他指标的区别

指标 分子 分母 涵盖范围
当天完成率 当日完成数 当天应该换单数 所有订单
24H换单率 高标签率考核通过 高标签率应该换单 仅≥80%
考核通过率 考核通过总数 高标签率应该换单 参考用