Files
SBrainCO/docs/supply-chain-analysis-plan.md
T

451 lines
16 KiB
Markdown
Raw 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年4月完整数据:配送流水325,922条、中央厨房生产成本链4,842+1,708+157条、盘点倒挤54,973条
> ETL已完成:dim_supplier(198家)、dim_material(6,777种)、fact_inventory_snapshot(54,842条)
> 数据库第一次具备了从"中央厨房生产"到"门店销售和实际耗用"的完整主链
## 完整主链
```text
基础原料
→ 中央厨房配方投料
→ 半成品完工入库
→ 总仓/中央厨房配送
→ 门店库存与倒挤消耗
→ 门店菜品BOM
→ SKU销售
```
---
## 一、更新现有分析
### 1.1 理论成本与实际成本分析
原来只能比较:`SKU理论成本 vs 门店倒挤成本`
现在可以把差异拆成:
```text
总成本差异
= 中央厨房材料效率差异
+ 中央厨房制造费用差异
+ 内部结算价差异
+ 配送价差异
+ 门店库存变化
+ 门店损耗差异
+ 本地采购差异
+ BOM断链差异
```
这样可以判断问题究竟发生在中央厨房、供应链还是门店,而不是把所有差异都归咎于门店。
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 中央厨房材料效率差异 | (实际领料 - 理论用量) × 标准单价 | 生产环节超耗 |
| 中央厨房制造费用差异 | 实际制造费用 - 标准分摊额 | 能耗人工异常 |
| 内部结算价差异 | (结算价 - 全制造成本) × 配送量 | 中央厨房内部利润 |
| 配送价差异 | (配送价 - 结算价) × 配送量 | 总仓加价 |
| 门店库存变化差异 | 期末库存 - 期初库存 | 库存增减影响 |
| 门店损耗差异 | 退货金额 + 报损金额 | 门店端损失 |
| 本地采购差异 | 实际消耗 - 总部配送 - 库存变化 | 本采推算 |
| BOM断链差异 | 无BOM的SKU销售成本 | 配方缺失影响 |
### 1.2 门店实际成本分析
门店成本新增字段:
| 新指标 | 管理意义 |
|---|---|
| 总仓配送成本 | 门店实际收到多少总部供应货品 |
| 中央厨房产品成本 | 门店使用多少中央厨房半成品 |
| 本地采购推算额 | 实际消耗减总部配送及库存变化 |
| 总部配送覆盖率 | 门店对总部供应链的依赖程度 |
| 配送与消耗差异 | 判断囤货、缺货或异常消耗 |
| 退货率 | 判断要货准确性和产品质量 |
| 非食材消耗 | 包装、纸巾、清洁品等消耗 |
**新增指标**
| 指标 | 公式 | 建议值 |
|------|------|--------|
| 总部配送覆盖率 | 总部配送额 ÷ 门店总消耗额 | ≥ 85% |
| 本地采购推算额 | 实际消耗 - 总部配送 - (期末库存-期初库存) | ≤ 10%消耗额 |
| 配送消耗差异率 | (配送额 - 消耗额) ÷ 配送额 | ±10%以内 |
| 门店退货率 | 退货金额 ÷ 配送金额 | ≤ 3% |
| 非食材消耗占比 | 非食材消耗 ÷ 总消耗 | ≤ 15% |
### 1.3 BOM成本断链分析
成本断链升级为三级:
```text
一级:销售SKU没有BOM
二级:SKU使用的中央厨房半成品没有生产配方
三级:中央厨房配方原料无法关联货品和库存成本
```
还能识别:
- 已生产但没有配送的半成品
- 已配送但没有进入任何门店BOM的货品
- BOM理论需要但中央厨房没有生产的产品
- 门店实际消耗但既无配送也无本地采购记录的货品
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 一级断链率 | 无BOM的SKU数 ÷ 总SKU数 | 应≤5% |
| 二级断链率 | 无配方的半成品数 ÷ 总半成品数 | 应≤10% |
| 三级断链率 | 无法关联成本的原料数 ÷ 总原料数 | 应≤15% |
| 孤产半成品 | 有生产无配送的半成品数 | 资金占用 |
| 孤配货品 | 有配送无BOM引用的货品数 | 要货不合理 |
### 1.4 门店经营贡献分析
原来门店贡献主要使用倒挤成本。现在可以同时展示:
```text
门店口径贡献
= 门店实收 - 门店倒挤成本 - 门店营业费用
集团还原贡献
= 门店实收
中央厨房完整制造成本
真实配送成本
门店费用
```
集团还原口径需要消除中央厨房、总仓和门店之间的内部加价,避免内部利润重复计算。
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 门店口径贡献率 | (实收-倒挤成本-费用) ÷ 实收 | 门店视角盈利 |
| 集团还原贡献率 | (实收-全制造成本-真实配送-费用) ÷ 实收 | 集团视角盈利 |
| 内部利润抵销额 | 内部结算加价 + 配送加价 | 合并报表需抵销 |
| 贡献差异率 | (集团还原贡献 - 门店口径贡献) ÷ 实收 | 口径差异影响 |
---
## 二、新增中央厨房分析
### 2.1 生产成本驾驶舱
核心指标:
| 指标 | 公式 | 说明 |
|------|------|------|
| 完工入库数量 | sum(inbound_quantity) | 1,708条成品入库 |
| 完工入库金额 | sum(inbound_amount) | 成品入库价值 |
| 理论材料成本 | sum(theoretical_cost) | BOM标准用量×标准单价 |
| 标准材料成本 | sum(standard_cost) | 标准成本表 |
| 实际材料成本 | sum(material_actual_cost) | 实际领料金额 |
| 完整制造成本 | sum(full_manufacturing_cost) | 材料+制造费用分摊 |
| 单位制造成本 | full_manufacturing_cost ÷ inbound_quantity | 单位成本 |
| 制造费用率 | manufacturing_cost ÷ material_actual_cost | 当前3.5% |
| 成本差异率 | (actual - standard) ÷ standard | >3%需关注 |
| 内部结算价差 | inbound_value - full_manufacturing_cost | 当前-29.5万 |
| 完工达成率 | actual_inbound ÷ standard_expected | 生产计划执行 |
| 退库率 | return_quantity ÷ inbound_quantity | 质量异常 |
| 无配方完工金额 | 无配方产品入库金额 | 应为0 |
| 待分摊材料成本 | 未分摊的材料成本余额 | 应≤0.5% |
### 2.2 配方效率分析
按配方、成品和日期分析:
```text
材料效率差异 = 实际分摊材料成本 - 理论材料成本
用量差异 = 实际领用量 - 理论用量
价格差异 = 理论用量 ×(实际单价 - 标准单价)
出成率差异 = 实际出成率 - 标准出成率
```
可以找出:
- 材料超耗最高的配方
- 出成率持续偏低的产品
- 实际单价上涨导致的成本异常
- 配方版本或标准用量不合理
- 领用正常但进销存耗用异常的原料
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 材料效率差异率 | (实际材料 - 理论材料) ÷ 理论材料 | >5%超耗 |
| 用量差异率 | (实际用量 - 理论用量) ÷ 理论用量 | >10%异常 |
| 价格差异率 | (实际单价 - 标准单价) ÷ 标准单价 | 采购波动 |
| 出成率差异 | 实际出成率 - 标准出成率 | <-3pct异常 |
| 超耗配方数 | 效率差异率>5%的配方数 | 生产异常 |
| 低出成产品数 | 出成率差异<-3pct的产品数 | 工艺问题 |
### 2.3 多级BOM成本穿透
建立:
```text
销售SKU
→ 中央厨房半成品
→ 中央厨房二级半成品
→ 基础原料
```
可以回答:
- 一碗牛肉面最终消耗多少鲜牛肉、调料和包装
- 原料涨价1%影响哪些SKU
- 某中央厨房半成品涨价影响哪些门店和菜品
- 调整一个中央厨房配方会影响多少销售额和毛利
- 某原料断供会影响哪些产品和门店
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 全链路原料消耗 | SKU销量 × 多级BOM展开量 | 原料需求 |
| 原料敏感度 | 原料涨价1%影响的SKU毛利变动 | 价格风险 |
| 半成品影响范围 | 半成品涉及的SKU数和门店数 | 变更影响面 |
| 配方调整影响 | 配方变更影响的销售额 | 决策依据 |
| 断供影响 | 原料断供影响的产品和门店数 | 供应链风险 |
### 2.4 自制与外采决策
按中央厨房产品比较:
```text
自制完全成本 = 材料+人工+能源+房租+维修+制造费用
外采到仓成本 = 采购价格+运输+损耗+税费
```
判断哪些产品应继续自制、优化工艺、集中生产或改为外采。
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 自制完全成本 | 材料+人工+能源+房租+维修+制造费用 | 全成本 |
| 外采到仓成本 | 采购价+运输+损耗+税费 | 替代方案 |
| 自制优势率 | (外采成本-自制成本) ÷ 外采成本 | >0值得自制 |
| 集中度评分 | 单产品产量÷总产量 | 规模效应 |
---
## 三、新增配送供应链分析
### 3.1 门店要货与配送效率
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 日均配送金额 | 配送总额 ÷ 30天 | 门店补货规模 |
| 配送频次 | 配送单数 ÷ 30天 | 补货频率 |
| 单次配送金额 | 配送总额 ÷ 配送单数 | 配送经济性 |
| 紧急要货率 | 紧急单数 ÷ 总单数 | 计划性 |
| 退货率 | 退货金额 ÷ 配送金额 | ≤3%正常 |
| 零数量单据率 | 零数量行数 ÷ 总行数 | 数据质量 |
| 重复小批量配送率 | 同货品<阈值配送次数 ÷ 总配送 | 合并机会 |
### 3.2 配送价格和内部加价
```text
配送加价额 = 配出金额 - 配送成本
配送毛利率 = 配送加价额 ÷ 配出金额
```
按门店、品牌、货品和财务分类分析:
- 哪些货品内部加价最高
- 门店承担多少供应链服务费
- 哈马尔罕、抖音店、直营门店的加价政策是否一致
- 内部结算价是否掩盖真实生产亏损
- 集团合并时应抵销多少内部利润
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 配送加价额 | 配出金额 - 配送成本 | 总仓内部利润 |
| 配送毛利率 | 加价额 ÷ 配出金额 | 加价幅度 |
| 品牌加价差异 | 各品牌配送毛利率对比 | 政策一致性 |
| 内部利润抵销额 | 中央厨房结算利润 + 配送利润 | 合并报表抵销 |
| 货品加价排名 | 按加价率排序 | 高加价货品 |
### 3.3 配送与门店实际消耗对账
每个门店、每种货品建立:
```text
配送入库 退货 实际倒挤消耗
= 库存增加 + 本地采购调整 + 盘点差异
```
异常类型:
| 异常类型 | 表现 | 可能原因 |
|----------|------|----------|
| 配送高消耗低 | 配送>>消耗 | 疑似积压或盘点异常 |
| 配送低消耗高 | 消耗>>配送 | 疑似本地采购或库存透支 |
| 有配送无销售 | 配送有但无BOM引用 | 要货不合理 |
| 有消耗无配送 | 消耗有但无配送记录 | 本采、调拨或数据断链 |
| 连续退货 | 多次退回 | 要货预测、质量或保质期问题 |
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 配送消耗差异 | 配送净额 - 消耗额 | 应≈库存变化 |
| 配送消耗差异率 | 差异 ÷ 配送净额 | ±10%以内正常 |
| 异常门店数 | 差异率>10%的门店数 | 需核查 |
| 异常货品数 | 差异率>10%的货品数 | 需核查 |
### 3.4 原料和货品流向分析
追踪:
```text
原料/半成品 → 中央厨房 → 总仓 → 门店 → 菜品SKU → 销售收入
```
识别:
- 高成本、低销售贡献原料
- 只服务少量SKU和门店的长尾原料
- 配送量大但销售贡献低的货品
- 可合并、替代或取消的原料规格
- 中央厨房产品的门店覆盖率
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 货品销售贡献度 | 关联SKU销售额 ÷ 总销售额 | 货品价值 |
| 长尾原料数 | 仅服务<3个SKU的原料数 | 可精简 |
| 中央厨房覆盖率 | 使用中央厨房产品的门店数 ÷ 总门店数 | 供应链渗透 |
| 货品配送效率 | 配送额 ÷ 关联销售额 | 投入产出比 |
---
## 四、新增计划与预测分析
### 4.1 销量驱动的原料需求预测
```text
预测SKU销量 × 门店BOM × 中央厨房多级BOM = 基础原料需求
```
可形成:
- 次日/次周门店要货建议
- 中央厨房生产计划
- 原料采购建议
- 安全库存
- 高峰、节假日备货计划
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 原料需求量 | 预测销量 × 多级BOM展开 | 采购依据 |
| 安全库存 | 日均消耗 × 交货周期 × 安全系数 | 库存下限 |
| 要货建议量 | 需求量 - 当前库存 + 安全库存 | 补货量 |
| 生产计划量 | 各门店要货合计 + 中央厨房安全库存 | 生产排程 |
### 4.2 生产与配送协同
比较:
```text
计划产量 → 实际产量 → 完工入库量 → 配送量 → 门店消耗量 → 期末库存变化
```
可以发现生产过量、生产不足、配送延迟和门店库存积压。
**新增指标**
| 指标 | 公式 | 说明 |
|------|------|------|
| 生产计划达成率 | 实际产量 ÷ 计划产量 | 生产执行 |
| 完工配送率 | 配送量 ÷ 完工入库量 | 产销匹配 |
| 配送消耗率 | 消耗量 ÷ 配送量 | 配送合理性 |
| 库存积压率 | 期末库存 ÷ 月消耗量 | 周转健康度 |
---
## 五、新增异常预警
建议建立每日或月度预警:
| 预警项 | 建议阈值 | 数据源 |
|--------|----------|--------|
| 配方材料超耗 | 超理论5%以上 | central_kitchen_recipe_consumption |
| 出成率异常 | 低于标准3个百分点 | central_kitchen_finished_receipt |
| 配送与消耗差异 | 超过配送额10% | distribution_detail + fact_inventory_snapshot |
| 门店退货率 | 超过3% | distribution_detail_records |
| 无配方完工 | 金额大于0即预警 | central_kitchen_finished_receipt |
| 待分摊材料成本 | 超实际材料成本0.5% | central_kitchen_manufacturing_cost_pool |
| 实际成本高于标准 | 超过3% | central_kitchen_processing_cost |
| 配送单价异常 | 偏离全店中位数5%以上 | distribution_detail_records |
| 生产后未配送 | 7天仍无配送 | central_kitchen_finished_receipt + distribution |
| 配送后无消耗 | 30天无倒挤消耗 | distribution + fact_inventory_snapshot |
| 负库存/负消耗 | 出现即预警 | fact_inventory_snapshot (is_negative) |
---
## 六、优先落地顺序
建议先实施四个分析模块:
1. **中央厨房成本驾驶舱**
理论、标准、实际、完整制造成本、分摊差异和产品盈亏。
2. **配送—倒挤成本对账**
先覆盖89家经营门店,按门店和货品找异常。
3. **多级BOM成本穿透**
将中央厨房配方接入现有SKU BOM和成本断链分析。
4. **销量驱动生产与要货计划**
用SKU销量反推半成品生产量和基础原料需求。
---
## 七、仍需补充的数据
现有数据已经能完成月度分析,但要做到日常运营管理,还应补充:
| 数据项 | 优先级 | 用途 |
|--------|--------|------|
| 采购入库和采购退货明细 | **最高** | 供应商管理、采购成本分析 |
| 门店及中央厨房每日库存 | **最高** | 日度库存周转、补货预警 |
| 生产工时、设备工时 | **高** | 产能分析、自制外采决策 |
| 门店本地采购 | 高 | 全成本还原、本采管控 |
| 仓库间调拨 | 高 | 库存调拨追踪 |
| 生产批次号和配方版本 | 中 | 成本追溯、质量追踪 |
| 独立水电燃气表 | 中 | 能耗精细化管理 |
| 报损、废弃和不合格品 | 中 | 损耗分析 |
| 在制品期初、期末数量 | 中 | 生产成本准确核算 |
| 供应商合同价、账期和交付时效 | 中 | 供应商评估 |
其中最优先的是**采购明细、每日库存和生产工时**。这三项补齐后,可以从月度事后分析升级为日常补货、生产排程和异常预警系统。
---
## 八、ETL脚本
已完成填充的维度表和事实表:
| 脚本 | 目标表 | 记录数 | 说明 |
|------|--------|--------|------|
| `sql/etl_dim_supplier.sql` | `analytics.dim_supplier` | 198 | 从配送流水去重提取供应商主数据 |
| `sql/etl_dim_material.sql` | `analytics.dim_material` | 6,777 | 从配送+盘点合并去重提取物料主数据 |
| `sql/etl_fact_inventory.sql` | `analytics.fact_inventory_snapshot` | 54,842 | 从盘点倒挤数据ETL库存快照 |
后续数据更新时可重复执行以上脚本(支持ON CONFLICT UPSERT)。