# Mac 侧发现 — 候选 strength 差无法在 0919 前被 `CAND_STRICT=True` 的 1e-4 判定吸收（Mac `f9c1073`+`fd3297e` / 研究侧 `eb97282`）

日期：2026-09-15 · 触发：研究侧 ③「0919 data-v2 生效当日置 `CAND_STRICT=True`，候选字段直接进 1e-4 判定」

## 0. 结论（先行）

**按现状置 True 会每日刷告警**，且原因不全在数据世代：我方用**你方提交的 model blob** 复算你方存值，仍差 **0.6381**（不能复现）。
⇒ 需要先钉住「哪一份 model 文件 + 扫描期是否 rebuild」，再开 1e-4 判定。

## 1. 三组交叉实验（同一批 0915 候选，12/12 配对成功）

方法：`strength = searchsorted(raw_scores, raw)/n*100`，`raw = Σ w[fc]·pct(pool,fc,v)`（照 `scan_daily_tb.py:246-254` 语义复现）。
表来源：我方 = 工作区 `strength_model.json`；对端 = `git show origin/research/hybrid-20260912:backtest_zt_full/strength_model.json`。
配对按 `(code,name,buy_date,ind,tb)` 全字段匹配（避开 601579.SH 两条链的 (code,pool) 撞键）。脚本 `/tmp/q_attr915v2.py`。

| 组合 | `raw_score` 最大差 | `strength` 最大差 |
|---|---|---|
| **A** 我方表 + 我方特征 vs 我方存值 | 1.43e-05 | **3.31e-05**（= JSON round(str,4) 精度） |
| **B** 对端表 + 我方特征 vs 对端存值 | 6.79e-03 | **0.6381** |
| 特征层（我方 vs 对端，f1~f11） | — | ≤ 5.8e-06（601949.SH/zz1000 的 f4/f6） |

→ **A 成立**：我方管线自洽。**B 不成立**：对端提交的 model 复算不出对端自己的存值。

## 2. 两处差异定位

**(i) model 文件本身不同（vintage/表规模）** —— `weights` 逐键相同 ✓，但分池表与基准池不同：

| pool | `percentiles` 表相同 | `raw_scores` n（我方 / 对端） |
|---|---|---|
| hs300 | 否 | 191 / 185 |
| zz500 | 否 | 320 / 312 |
| zz1000 | 否 | 1221 / 1170 |
| zz2000 | 否 | 4302 / 4170 |

基准池规模差 3%~7%，对应 `strength` 步进（100/n）与百分位插值位置整体位移 ⇒ 这正是 0.3~0.87 量级差的来源（**与数据修准无关**），
也印证 f1~f11 只差 ≤5.8e-06 时 strength 仍差 0.87 —— 差在**表**，不在特征。

**(ii) model blob ≠ 运行时所用的表** —— 由 B 组不可复现推出：对端（与我方同构地）在扫描时按当时 baseline 重算表，
提交的 blob 只是某一时点快照。我方同样如此：`scan_daily_tb.py:430-431` 在有新行/完成交易时调 `build_strength_model.build_model()`
重建并写盘 ⇒ **同一历史信号强度次日会变**（0912 已提「冻结 rebuild、模型由研究侧版本化下发（附 model_version + hash）」，
至今未决）。

## 3. 请求（0919 前需裁定，属版本号/生效日红线相邻项）

置 `CAND_STRICT=True` 前，请确认以下三条并书面回执：

1. **单一 model 事实源**：0919 落库时两端 `strength_model.json` 必须**同 sha256**（由哪一侧产出、如何下发，请指定）。
2. **扫描期冻结 rebuild**：data-v2 生效日起，`scan_daily_tb.py` **不再自建表**（只读消费 model + 校验 sha256，不符即 fail-fast 拒扫），
   否则两端表各自随 baseline 增长漂移，1e-4 判定必刷。
3. **生效日与版本号**：model 指印（sha256 + `model_version`）与 data-v2 同日（0919）登记进 `RESEARCH_PRODUCTS_INDEX.md` / `MAC_PEER_ACK.md` 两端台账。

第 2 条我方已可实施（改动小、有守卫位），但**改前需 Owner 批准**（属口径/权重相邻），我一并上报。

## 4. 本轮指纹与 head

- Mac：head `9f5c00f`（main）；`scan_today_candidates.json` = `0bb2472afc019218`；`strength_model.json` = `adcc7173bd5bbe07`；
  baseline `3ec1a89330e120a2`（6034 键 / 6035 行）。
- 研究侧：head `eb97282`；其 model blob（分支 `research/hybrid-20260912`）`raw_scores` 合计 5837（= 记录版世代规模）。
- 对账⑤、f12 排除判定、记账更正：均已确认收讫，无异议。
