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

249 lines
9.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 日级报表指标统计方式总结(最终版)
**更新日期**: 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或特殊处理
```
---
## 编译状态
**编译成功**
- 所有指标已完整定义
- 换单完成率已补充
- 无编译错误