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

239 lines
6.7 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.

# 24H换单率计算逻辑最终修正 - v5.0
**更新日期**: 2026-05-16
**版本**: v5.0 - 24H换单率完整定义
**状态**: ✅ 编译通过
---
## 核心修正24H换单率的正确含义
### 用户提供的场景说明
```
场景1冻结标签率 = 79% < 80%,低标签率)
├─ 100个应该完成的订单
├─ 规则:完成即达标
├─ 24H完成数80个
└─ 局部24H换单率 = 80 / 100 = 80%
场景2冻结标签率 = 80% >= 80%,高标签率)
├─ 100个应该完成的订单
├─ 规则按16点前后分段+考核时间
├─ 考核通过数75个16点前通过 + 16点后通过
└─ 局部24H换单率 = 75 / 100 = 75%
汇总:
├─ 低标签率80个完成 + 100个应该完成 = 80%
├─ 高标签率75个考核通过 + 100个应该完成 = 75%
└─ 整体24H换单率 = (80 + 75) / (100 + 100) = 155 / 200 = 77.5%
```
### 关键洞察
**24H换单率应该按照"标签率维度"分别计算,然后汇总**
| 标签率维度 | 应该完成数 | 完成/通过数 | 计算 | 含义 |
|----------|---------|----------|------|------|
| 低标签率(<80%| 100 | 24H完成=80 | 80/100 | 完成即达标的24小时完成情况 |
| 高标签率(≥80%| 100 | 考核通过=75 | 75/100 | 按规则考核通过的情况 |
| **整体** | **200** | **155** | **155/200** | **整体24小时的履约达成率** |
---
## SQL 实现修改
### 新增 CTE 1: DailyLowLabelRate24HCompleted
```sql
DailyLowLabelRate24HCompleted AS (
SELECT
ar.到货日期 AS 日期,
COUNT(DISTINCT ar.NeutralWaybillNumber) AS 低标签率24H完成数
FROM ArrivalRequests ar
INNER JOIN OverallScanStatus oss ON ar.NeutralWaybillNumber = oss.NeutralWaybillNumber
WHERE
oss.曾成功 = 1
AND oss.首次成功时间 IS NOT NULL
-- 低标签率订单考核时间为NULL完成即达标
AND ar.考核时间 IS NULL
GROUP BY ar.到货日期
)
```
**说明**
- 统计冻结标签率 < 80% 的订单在24H内完成的数量
- 这些订单的规则是"完成即达标"所以只需统计"曾成功"
### 新增 CTE 2: DailyHighLabelRateAssessed
```sql
DailyHighLabelRateAssessed AS (
SELECT
日期,
SUM(16点前考核通过包裹数) + SUM(16点后考核通过包裹数) AS 高标签率考核通过数
FROM (
SELECT 日期, 16点前考核通过包裹数, 0 AS 16点后考核通过包裹数 FROM DailyBeforeNoonPassed
UNION ALL
SELECT 日期, 0 AS 16点前考核通过包裹数, 16点后考核通过包裹数 FROM DailyAfternoonPassed
) t
GROUP BY 日期
)
```
**说明**
- 统计冻结标签率 80% 的订单中根据16点前/后分段规则考核通过的数量
- 注意这里不包括"低标签率考核通过包裹数"那些本来就是标签率<80%
### 修改24H换单率计算
```sql
24H换单率 = (低标签率24H完成数 + 高标签率考核通过数)
/ (低标签率应该换单数 + 高标签率应该换单数) × 100%
```
**这个公式的构成**
- **分子**
- `低标签率24H完成数`标签率<80%且24H内完成的订单
- `高标签率考核通过数`标签率80%且按规则考核通过的订单
- **分母**
- `低标签率应该换单数`所有标签率<80%的订单总数
- `高标签率应该换单数`所有标签率80%的订单总数
---
## 数据流示例
### 完整的日报表数据
```
【输入数据】
低标签率维度 (冻结标签率 < 80%):
├─ 低标签率应该换单数: 100
├─ 低标签率24H完成数: 80
├─ 低标签率24H换单率: 80/100 = 80%
高标签率维度 (冻结标签率 >= 80%):
├─ 高标签率应该换单数: 100
├─ 16点前考核通过: 40
├─ 16点后考核通过: 35
├─ 高标签率考核通过数: 40 + 35 = 75
├─ 高标签率24H换单率: 75/100 = 75%
【计算】
整体24H换单率 = (低标签率24H完成数 + 高标签率考核通过数)
/ (低标签率应该换单数 + 高标签率应该换单数)
= (80 + 75) / (100 + 100)
= 155 / 200
= 77.5%
【输出】
日期: 2026-05-16
低标签率应该换单数: 100
高标签率应该换单数: 100
低标签率24H完成数: 80
高标签率考核通过数: 75
16点前考核通过包裹数: 40
16点后考核通过包裹数: 35
24H换单率: 77.5%
```
---
## 关键字段说明
### 新增字段
| 字段 | 含义 | 来源 | 说明 |
|------|------|------|------|
| 低标签率24H完成数 | 标签率<80%的24H完成订单数 | DailyLowLabelRate24HCompleted | 完成即达标的24小时完成情况 |
| 高标签率考核通过数 | 标签率80%的考核通过订单数 | DailyHighLabelRateAssessed | 16点前考核通过 + 16点后考核通过 |
### 24H换单率计算逻辑
```
24H换单率用途衡量24小时内的整体履约达成率
分子 = 低标签率24H完成 + 高标签率考核通过
= 所有在24H内满足规则的订单
分母 = 低标签率应该换单 + 高标签率应该换单
= 所有应该完成的订单总数
结果 = 分子 / 分母
= 整体24小时的履约达成情况
```
---
## 完整的指标体系(最终版)
### 基础统计指标11个
```
日期、当日新增换单数、当日换单失败、当日换单成功数、当日STOP数、
16点前到仓、16点后到仓、当日完成数、24H内完成数、
当日标签推送数、当日扫描数
```
### 递推计算指标2个
```
累计要换的总单数、当天应该换单数
```
### 逻辑相关指标1个
```
换单失败未完结订单
```
### 考核维度指标3个
```
16点前考核通过、16点后考核通过、低标签率考核通过
```
### 标签率维度指标2个
```
高标签率应该换单数、低标签率应该换单数
```
### 衍生计算指标4个
```
考核通过总数、当天换单完成率、24H换单率、数据拉取时间
```
### 24H换单率支撑字段2个
```
低标签率24H完成数、高标签率考核通过数
```
---
## 编译状态
**编译成功**
- 所有新增CTE已定义
- 24H换单率计算公式已修正
- JOIN语句已更新
- 无编译错误
---
## 业务意义总结
**24H换单率 = 77.5% 说明**
在当日的200个应该完成的订单中
- 100个是标签率低的订单 80个在24H内完成 (80%)
- 100个是标签率高的订单 75个满足规则并通过考核 (75%)
- 整体155个完成/通过 **77.5%的整体履约达成**
这个指标对客户有说服力因为
1. 分子是实际完成的订单不区分标签率
2. 分母是应该完成的订单总数统一标准
3. 结果反映了整个团队的24小时履约能力