Prechádzať zdrojové kódy

docs(ac15): 容差 1.5分 -> 0.005+|Δ预期|;新增三份割接相关分析(§16)

1. 容差从 1.5 分改为 0.005 + |Δ预期|(半分 + 基数差传递量),并在 §15 写明不得为消红放宽
2. 新增 §16.2 Δreward 分布:min 0.60 / 中位 0.70 / max 0.70 分;income 变但课酬未跨分 15 条;
   最大一条 real-0008:income 358.824→358.82、pct=70、251.177→251.17(Δ=-0.007)
3. 新增 §16.3 PC 按 percentage 分档:pct<25 = 0.0%、25~50 = 15.8%、50~100 = 27.0%、≥100 无记录
4. 新增 §16.4 覆盖率缺口措辞:4,679 / 74,870 = 6.25%(全库口径),
   并区分阶段 1 候选内口径 4,149 / 62,487 = 6.64%,避免两个分母混用

真实 100 条(新容差):MATCH 84 / PRECISION-CONVERGENCE 16 / DEFECT 0
Q 8 hodín pred
rodič
commit
373703d60c
1 zmenil súbory, kde vykonal 62 pridanie a 0 odobranie
  1. 62 0
      internal/academic/dualrun/README.md

+ 62 - 0
internal/academic/dualrun/README.md

@@ -190,3 +190,65 @@ PHP CLI 的 notice/warning 会混进 stdout(legacy 的 `config/params.php` 在
 - 两者相加 = 理论上允许的最大差
 
 **不要为了消红放宽容差。** 容差是判据,不是目标;1.5 分容差会把一个真实的 1 分级算法 bug 吞掉。
+
+## 16. 割接相关口径(阶段 1 实测,财务/对账可直接引用)
+
+以下数字来自**真实 100 条**(`status=2` 且 `income>0` 且有规则命中,按 percentage × 人数分层抽样),
+容差 `0.005 + |Δ预期|`。
+
+### 16.1 结论分布
+
+```
+MATCH                 84
+PRECISION-CONVERGENCE 16
+DEFECT                 0
+(ORACLE-DEGRADED / PATH-DIVERGENCE / ENV-FAILURE 均为 0 —— 注意其含义见 §16.3)
+```
+
+### 16.2 课酬变动幅度(Δreward)
+
+| 统计项 | 值 |
+|---|---|
+| 最小 | **0.60 分**(0.006 元) |
+| 中位 | **0.70 分** |
+| 最大 | **0.70 分** |
+| `Δincome ≠ 0` 但 `Δreward = 0` | **15 条**(基数变了、但没跨过分位) |
+
+最大一条:
+
+```
+caseId          real-0008
+Σcost (3dp)     358.824            → 358.82(迁移后 ΣROUND(cost,2)),Δincome = -0.004
+规则            percentage=70.0,min=0(不设限),max=10000,reward=0
+teacher_reward  251.177 (legacy)   → 251.17 (target),Δ = -0.007
+```
+
+**对外口径**:迁移后约 **16%** 的历史课酬会变,全部是分位级,**最大 0.7 分(0.007 元)**,方向随 Δincome 正负。
+
+### 16.3 PC 按 percentage 分档(解释"哪些课会变")
+
+| pct 区间 | 总数 | PC | 变化概率 |
+|---|---|---|---|
+| `pct < 25` | 25 | 0 | **0.0%** |
+| `25 ≤ pct < 50` | 38 | 6 | **15.8%** |
+| `50 ≤ pct < 100` | 37 | 10 | **27.0%** |
+| `pct ≥ 100` | 0 | 0 | n/a(本批无此档记录) |
+
+PC 只落在两个具体值上:`pct=70` → 10 条,`pct=30` → 6 条。
+
+**结论**:`Δreward ≈ Δincome × pct/100`,pct 越大越容易把 0.001~0.005 的收入收敛放大到跨分。
+**对账可先只看 `pct ≥ 50` 的课程**(本批 27.0% 会变,而 `pct < 25` 一条都不变)。
+
+### 16.4 覆盖率缺口(必须与结论一起出现)
+
+> **因 `getTeacherPaymentDetail` 无命中被排除:4,679 条 / 74,870(6.25%),未参与本轮比对(R14)。**
+
+两个分母不要混:
+
+| 出处 | 分子 / 分母 | 含义 |
+|---|---|---|
+| 全库口径(**对外用这个**) | 4,679 / 74,870 = **6.25%** | 全部 record 中无规则命中的比例 |
+| 阶段 1 候选内口径 | 4,149 / 62,487 = 6.64%(或 / 60,636 = 6.84%) | 先剔除 `status≠2 / income≤0 / 无有效学生` 后的剩余缺口 |
+
+报告必须在摘要旁同时给出这句,否则 `ORACLE-DEGRADED = 0` 会被读成"全库没有这类记录"——
+实际含义是"**本轮 case 集里没有这类**"。