# 新鲜品 FEFO 合成情境

这是一个窄范围的离线演示：单店（S01）、单品（K06）、三天、明确的期初批次和到货批次。它以先到货、按效期先出（FEFO）、当日结束报损到期余货的规则，分别计算维持订货、减少可选订货、折价等已声明情境。贡献额只等于收入减售出成本、到期报损和已声明费用；采购现金单列，不能再次从贡献额扣除。

这套日度条件测算与原有 4+4 周 POS P&L 是两条证据链。前者只说明指定批次、三天、指定需求路径下会发生什么；后者仍是历史周度收入、毛利、贡献和预算偏差的口径。两者不能合并，也不能把条件结果写成需求预测、因果增益或真实经营收益。

## 来源和行动边界

批次数量、需求情境和可选订货由 `fresh_sources` 的合成记录声明。来源审计只检查 ID、范围、日期、事实和授权字段是否一致；所有结果都标记 `external_authenticity=not_verified`。它不验证外部系统、签名、人员身份或真实审批，因而不会把来源匹配视为真实授权。

折价方案只有在输入显式声明对应的需求反应时才计算；没有该声明时，折价经济性为未识别。即使减量订货在所有已声明情境内较维持方案更好且未越过缺货护栏，也只会进入 `ESCALATE` 的人工商业复核：品类、采购和门店仍须核对供应承诺、最新需求、计划费用和实际权限。系统不会下单、调价或执行任何门店动作。

## 四个合成阶段

| 情境 | 已观察到的条件结果 | 系统边界 |
|---|---|---|
| F01 | 宽需求范围下，减量订货的结果不形成稳健候选。 | 保持 `INVESTIGATE`，补齐批次实盘、需求范围和折价反应。 |
| F02 | 窄化的合成需求范围中，减量订货可成为候选。 | `ESCALATE` 给人工商业复核，不能当作已批准订货。 |
| F03 | 合成复盘明确记录 12/182 个未满足单位。 | 暂停沿用原减量建议，重开需求情境并核对到货与未满足订单。 |
| F04 | 批次数量与来源声明冲突。 | 暂停精确方案测算，先做批次、效期和盘点时点的来源对账。 |

F03 的 12/182 是合成复盘记录的未满足单位占已售加已明确记录未满足单位的比例；它不是从销售额或周度缺货率推断的真实服务水平。

## 运行和输出

在项目根目录运行：

```bash
python3 -B scripts/review_fresh_case.py
```

脚本生成 `artifacts/fresh_case/REPORT.md` 与 `artifacts/fresh_case/dashboard.html`。本轮模型比较首次调用未获得有效响应，已保留失败记录并停止余下调用；`artifacts/fresh_case/model_comparison.json` 才是模型状态、输入和结果的唯一依据。没有该文件或状态为未运行时，不应宣称任何比较结论。

G 组若出现，只收到与其他比较对象相同的预计算事实包。G 不是能任意调用 Python 或取得额外运行时权限的通用助手；它也不能改变 FEFO 计算、来源审计或人工审批门禁。

旧周度 POS 数据的“没有保质期/批次”限制仍然成立。这个简化批次扩展只演示给定批次的三天流转，不涵盖温控、货架状态、供应血缘、跨店调拨、退货、完整冷链或真实损耗治理。

模型调用沿用既有隔离适配器与登录，不修改默认配置。非交互入口的参数核对参考 [OpenAI 官方文档](https://learn.chatgpt.com/docs/non-interactive-mode)；本地调用是否成功只以实际保存记录为准。
