# 日级报表指标统计方式总结（最终版）

**更新日期**: 2026-05-16  
**版本**: Final - 所有指标完整统计方式  
**状态**: ✅ 编译通过

---

## 所有指标统计方式详解

### 1. 基础统计指标

| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| Date | 日期 | 自然日（UTC-5时区） | ArrivalRequests | 以到货时间为准 |
| DailyNewReplaceCount | 当日新增换单数 | COUNT(DISTINCT 交接单号) | DailyBase | 当天新增的交接单总数 |
| CumulativeTotalReplaceCount | 累计要换的总单数 | GREATEST(0, 前一日累计 + 前一日新增 - 前一日完成) | 递推计算 | 每日的待处理交接单累计值 |
| ShouldReplaceCount | 当天应该换单数 | 累计要换 + 当日新增 | 递推计算 | 当日应该完成的目标数量 |

### 2. 失败相关指标

| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| UnfinishedFailureCount | 换单失败未完结订单 | COUNT(DISTINCT 订单) WHERE 状态=失败 AND 未完结 | HistoryUnfinished / LatestUnfinished | 因失败而未完结的订单数 |
| DailyFailureCount | 当日换单失败数 | COUNT(DISTINCT 订单) WHERE 失败时间=当日 | DailyFailedOrders | 当天新增的失败订单数 |

### 3. 成功和停止相关指标

| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| DailySuccessCount | 当日换单成功数 | COUNT(DISTINCT 订单) WHERE 首次成功时间=当日 | DailySuccessCount | 当天首次成功扫描的订单数 |
| DailyStopCount | 当日STOP数 | COUNT(DISTINCT 订单) WHERE STOP时间=当日 | DailyScanMetrics | 当天被标记为STOP的订单数 |

### 4. 到仓相关指标

| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| BeforeNoonArrivedCount | 16点前到仓包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间 < 16:00 | DailyBase | 每天16点前到达仓库的订单数 |
| AfternoonArrivedCount | 16点后到仓包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间 >= 16:00 | DailyBase | 每天16点后到达仓库的订单数 |

### 5. 考核相关指标

#### 5.1 16点前考核通过
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| BeforeNoonPassedCount | 16点前考核通过包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间<16:00 AND 首次成功时间<=考核时间 AND 冻结标签率≥80% | DailyBeforeNoonPassed | 16点前到仓，高标签率情况下按16点分段规则考核通过 |

**考核时间规则（16点前到仓，高标签率≥80%）**：
```
考核时间 = 当日 16:00:00 ~ 次日 16:00:00
```

#### 5.2 16点后考核通过
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| AfternoonPassedCount | 16点后考核通过包裹数 | COUNT(DISTINCT 订单) WHERE 到仓时间>=16:00 AND 首次成功时间<=考核时间 AND 冻结标签率≥80% | DailyAfternoonPassed | 16点后到仓，高标签率情况下按23:59:59规则考核通过 |

**考核时间规则（16点后到仓，高标签率≥80%）**：
```
考核时间 = 当日 16:00:00 ~ 次日 23:59:59
```

#### 5.3 低标签率考核通过
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 低标签率考核通过包裹数 | 低标签率考核通过包裹数 | COUNT(DISTINCT 订单) WHERE 冻结标签率<80% AND 曾成功=1 | DailyLowLabelRatePassed | 标签率低于80%时，完成即达标的订单数 |

**考核时间规则（低标签率<80%）**：
```
考核时间 = NULL（完成即达标，首次成功时间就是达标时间）
```

### 6. 标签率维度指标

#### 6.1 高标签率应该换单数
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 高标签率应该换单数 | 高标签率应该换单数 | COUNT(DISTINCT 订单) WHERE 冻结标签率>=80% | DailyHighLabelRateShould | 统计所有冻结标签率≥80%的交接单中的全部包裹 |

**计算方式**：
```
1. 计算每个交接单的冻结标签率
   冻结标签率 = (最早扫描时间 > 标签推送时间的包裹数) / 总包裹数
   
2. 如果冻结标签率 >= 80%
   则整个交接单的所有包裹都属于"高标签率应该换单"
   
3. 按到货时间分组统计这类包裹的总数
```

#### 6.2 低标签率应该换单数
| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 低标签率应该换单数 | 低标签率应该换单数 | COUNT(DISTINCT 订单) WHERE 冻结标签率<80% | DailyLowLabelRateShould | 统计所有冻结标签率<80%的交接单中的全部包裹 |

**计算方式**：
```
1. 计算每个交接单的冻结标签率
   冻结标签率 = (最早扫描时间 > 标签推送时间的包裹数) / 总包裹数
   
2. 如果冻结标签率 < 80%
   则整个交接单的所有包裹都属于"低标签率应该换单"
   
3. 按到货时间分组统计这类包裹的总数
```

### 7. 汇总计算指标

#### 7.1 考核通过总数
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| 考核通过总数 | 考核通过总数 | 16点前考核通过 + 16点后考核通过 + 低标签率考核通过 | 所有通过考核的包裹总数 |

**公式**：
```
考核通过总数 = 16点前考核通过包裹数 + 16点后考核通过包裹数 + 低标签率考核通过包裹数
```

#### 7.2 当天换单完成率 ✨ (新增)
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| DailyCompletionRate | 当天换单完成率 | 当日完成数 / 当天应该换单数 × 100% | 当天的完成达成率 |

**公式**：
```
当天换单完成率 = 当日完成数 / 当天应该换单数 × 100%
           = 当日完成数 / (累计要换 + 当日新增) × 100%
```

**例子**：
```
当天应该换单数 = 100
当日完成数 = 85
当天换单完成率 = 85 / 100 × 100% = 85.00%
```

#### 7.3 24小时换单率
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| Rate24Hour | 24H换单率 | 考核通过总数 / 高标签率应该换单数 × 100% | 高标签率订单的24小时完成率 |

**公式**：
```
24H换单率 = 考核通过总数 / 高标签率应该换单数 × 100%
         = (16点前考核通过 + 16点后考核通过 + 低标签率考核通过) / 高标签率应该换单数 × 100%
```

**说明**：
- 分子：实际完成并通过考核的包裹
- 分母：应该在高标签率下履约的包裹总数
- 用途：客观反映在标签率≥80%情况下的实际履约完成情况

#### 7.4 考核通过率
| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| 考核通过率 | 考核通过率 | 考核通过总数 / 高标签率应该换单数 × 100% | 高标签率订单的考核达成率 |

**公式**：
```
考核通过率 = 考核通过总数 / 高标签率应该换单数 × 100%
```

### 8. 扫描相关指标

| 指标名 | 中文名 | 统计方式 | 数据来源 | 说明 |
|-------|-------|--------|--------|------|
| 当日标签推送数 | 当日标签推送数 | COUNT(DISTINCT 订单) WHERE 标签推送时间=当日 | DailyBase | 当天新增推送的标签数 |
| 当日扫描数 | 当日扫描数 | COUNT(DISTINCT 订单) WHERE 首次扫描时间=当日 | DailyScanMetrics | 当天首次扫描的订单数 |

### 9. 元数据指标

| 指标名 | 中文名 | 统计方式 | 说明 |
|-------|-------|--------|------|
| DataFetchTime | 数据拉取时间（UTC-5） | CURRENT_TIMESTAMP - INTERVAL 5 HOUR | 报表数据的生成时间 |

---

## 指标关系图

```
当日新增换单数 ─────┐
                  ├─→ 当天应该换单数 ─→ 当天换单完成率 = 当日完成数 / 当天应该换单数
累计要换的总单数 ──┘

16点前到仓 + 高标签率 ─→ 16点前考核通过 ──┐
16点后到仓 + 高标签率 ─→ 16点后考核通过 ──┼─→ 考核通过总数
冻结标签率<80% ─→ 低标签率考核通过 ────┘
                                  ↓
                        24H换单率 / 考核通过率 = 考核通过总数 / 高标签率应该换单数
```

---

## 冻结标签率的核心计算

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

### 含义
- `最早扫描时间 > 标签推送时间` = 标签在作业开始前已推送，属于**高标签率**
- `最早扫描时间 ≤ 标签推送时间` = 标签在作业开始时或之后推送，属于**低标签率**

### 作用
- **判断交接单的整体标签率水平**，而不是分别处理包裹
- **决定整个交接单中的所有包裹按什么规则处理**
- 冻结标签率 ≥ 80% → 所有包裹按16点分段规则处理
- 冻结标签率 < 80% → 所有包裹按完成即达标规则处理

---

## 完整计算流程示例

### 100个订单场景（冻结标签率 = 30% < 80%）

**第1步：计算冻结标签率**
```
最早扫描时间 = 2026-05-16 10:00:00
高标签率包裹 = 30（推送于09:00-10:00）
低标签率包裹 = 70（推送于10:00-12:00）
冻结标签率 = 30/100 = 30% < 80%
```

**第2步：确定考核规则**
```
因为 冻结标签率 = 30% < 80%
→ 100个包裹都按"完成即达标"规则处理
```

**第3步：统计指标**
```
高标签率应该换单数 = 0（因为冻结标签率<80%）
低标签率应该换单数 = 100（整个交接单都按此类别）
低标签率考核通过 = 80（其中80个已成功的订单）
考核通过总数 = 80
24H换单率 = 无法计算（分母为0）或特殊处理
```

---

## 编译状态

✅ **编译成功**
- 所有指标已完整定义
- 换单完成率已补充
- 无编译错误

