# 菜品成本分析指标体系 > 数据基础:`dish_cost_analysis_summary`(788道菜品)、`dish_cost_analysis_material_detail`(3,568条物料明细)、`fact_recipe_bom`(3,520条BOM)、`dim_sku`(765个SKU)、`dim_material`(600种物料)、`v_store_theoretical_actual_cost_april`(89门店)、`dish_sales_details`(555万行销售明细) > 核心限制:菜品成本报表缺少"月份+门店"字段,现阶段适合做公司级商品与供应链决策,不适合直接对具体门店进行SKU成本绩效考核。 --- ## 第一优先级:现有数据可直接开展 ### 模块1:SKU理论与实际成本分析 **解决的问题**:哪些菜品实际成本明显高于标准 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 理论成本 | 按BOM标准用量×标准单价计算的应有成本 | `theoretical_cost` | `dish_cost_analysis_summary` | | 实际成本 | 实际盘点耗用物料的成本 | `actual_cost` | `dish_cost_analysis_summary` | | 成本差异额 | 实际成本 - 理论成本 | `cost_variance_amount` | `dish_cost_analysis_summary` | | 成本差异率 | 成本差异额 ÷ 理论成本 × 100% | 计算字段 | 计算 | | 理论毛利率 | (售价 - 理论成本) ÷ 售价 × 100% | `theoretical_margin_rate_pct` | `dish_cost_analysis_summary` | | 实际毛利率 | (售价 - 实际成本) ÷ 售价 × 100% | `actual_margin_rate_pct` | `dish_cost_analysis_summary` | | 毛利率偏差 | 实际毛利率 - 理论毛利率 | 计算字段 | 计算 | **成本分层标准**: - 实际成本 ≤ 理论成本:正常 - 实际超理论 0-10%:关注 - 实际超理论 10-20%:重点整改 - 实际超理论 >20%:紧急核查 - 实际成本率 >100%(实际毛利率为负):先核查BOM/单位/分摊异常,不直接认定超耗 **当前数据概况**: - 理论成本合计:¥16,077,398.19 - 实际成本合计:¥16,547,027.90 - 超理论金额:¥469,629.70 - 整体差异率:2.92% - 实际超理论菜品:236道(30%) - 低毛利菜品(理论<50%):95道 --- ### 模块2:SKU原料差异贡献分析 **解决的问题**:一个菜品超耗具体由哪些原料造成 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 原料理论用量 | BOM标准每份用量 × 销量 | `theoretical_quantity` | `material_detail` | | 原料实际用量 | 实际盘点耗用量 | `actual_quantity` | `material_detail` | | 数量差异 | 实际用量 - 理论用量 | `loss_quantity` | `material_detail` | | 损耗率 | 数量差异 ÷ 理论用量 × 100% | `loss_quantity_rate_pct` | `material_detail` | | 金额差异 | 数量差异 × 物料单价 | `loss_amount` | `material_detail` | | 每份理论用量 | 单份菜品的标准用量 | `theoretical_quantity_per_dish` | `material_detail` | | 每份实际用量 | 单份菜品的实际用量 | `actual_quantity_per_dish` | `material_detail` | | 差异贡献度 | 单原料金额差异 ÷ 菜品总成本差异 × 100% | 计算字段 | 计算 | **分析路径**: ``` 菜品成本差异 → 哪种原料 → 理论用量 vs 实际用量 → 数量差异 → 金额差异 → 差异原因分类:份量超标 / 替代原料 / 分摊遗漏 / 门店错位 ``` **当前数据概况**: - 存在损耗的物料明细:1,193条(33.4%) - 严重损耗(>20%):894条 - 极重损耗(>100%):25条 --- ### 模块3:菜品盈利与菜单工程 **解决的问题**:哪些SKU销量高但不赚钱,哪些值得推广 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 销售额 | 菜品总销售金额 | `sales_amount` | `dish_cost_analysis_summary` | | 销量 | 菜品销售份数 | `sales_quantity` | `dish_cost_analysis_summary` | | 理论毛利 | 销售额 - 理论成本 | 计算字段 | 计算 | | 实际毛利 | 销售额 - 实际成本 | 计算字段 | 计算 | | 收入贡献度 | 菜品销售额 ÷ 总销售额 × 100% | 计算字段 | 计算 | | 毛利贡献度 | 菜品毛利 ÷ 总毛利 × 100% | 计算字段 | 计算 | | ABC销售等级 | 按销售额累计占比分类 | A(前70%) / B(70-90%) / C(后10%) | 计算 | **菜单工程矩阵**: | 类型 | 销售表现 | 成本表现 | 建议 | |------|---------|---------|------| | 明星盈利品 | 高销售 | 高实际毛利 | 推广和保证供应 | | 高销低利品 | 高销售 | 低毛利 | 调价、减量或优化BOM | | 低销高利品 | 低销售 | 高毛利 | 改善陈列和推荐 | | 低销低利品 | 低销售 | 低毛利 | 可能占用独有原料,优先下架 | | 数据异常品 | — | 成本率异常 | 先修复数据 | --- ### 模块4:BOM复杂度分析 **解决的问题**:哪些菜品配方太复杂、培训和执行难度高 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 原料种数 | SKU的BOM物料总数 | `count(*) GROUP BY sku_code` | `fact_recipe_bom` | | 半成品种数 | BOM中半成品物料数 | `count(*) WHERE major_category='半成品'` | `fact_recipe_bom` + `dim_material` | | 独有原料数 | 仅被该SKU使用的物料数 | 物料被引用次数=1 | `fact_recipe_bom` | | 单位种类数 | BOM中出现的不同单位数 | `count(DISTINCT unit)` | `fact_recipe_bom` | | 高损耗原料数 | waste_rate > 20%的物料数 | `count(*) WHERE waste_rate > 20` | `fact_recipe_bom` | | 零实际用量原料数 | standard_net_quantity = 0 | `count(*) WHERE standard_net_quantity = 0` | `fact_recipe_bom` | | 配方复杂度评分 | 综合评分 | 加权计算 | 计算 | **复杂度分级**: - ≤5种原料:低复杂度 - 6-10种:正常 - 11-15种:较复杂 - >15种:重点评审 **当前数据概况**: - 1个物料:163个SKU - 2-5个物料:150个SKU - 6-10个物料:180个SKU - 11-20个物料:100个SKU - >20个物料:4个SKU(最多42种:鲜花椒香锅烤鱼) --- ### 模块5:独有原料风险分析 **解决的问题**:哪些低收入SKU占用专用原料 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | SKU收入 | 菜品销售额 | `sales_amount` | `dish_cost_analysis_summary` | | 独有原料数 | 仅被该SKU使用的物料数 | 物料引用次数=1 | `fact_recipe_bom` | | 独有原料成本 | 独有物料的采购成本 | 独有物料金额合计 | `material_detail` | | 库存耗用 | 独有物料的实际耗用金额 | `actual_amount` | `material_detail` | | 替代品是否存在 | 是否有同类替代物料 | `substitute_material` | `fact_recipe_bom` | | 下架后原料释放 | 停用SKU后可减少的物料数 | 独有物料数 | `fact_recipe_bom` | **分析链路**: ``` 低收入SKU → 独有原料 → 门店库存及耗用 → 保质期 → 是否有其他菜品可以消化 → 下架后的处置方案 ``` --- ### 模块6:SKU精简供应链影响模拟 **解决的问题**:砍掉某SKU能真正减少多少原料和库存 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 可减少原料数 | 停用SKU后独有物料数 | 独有物料数 | `fact_recipe_bom` | | 独有库存金额 | 独有物料的库存价值 | 独有物料金额合计 | `material_detail` | | 替代SKU数 | 可替代该SKU的其他菜品 | 同品类同价位SKU | `dim_sku` | | 收入影响 | 停用SKU减少的销售额 | `sales_amount` | `dish_cost_analysis_summary` | | 毛利影响 | 停用SKU减少的毛利 | 实际毛利 | 计算 | | 仍需采购的共用原料 | 被其他SKU也使用的物料 | 物料引用次数>1 | `fact_recipe_bom` | | 一次性报损风险 | 独有物料的当前库存 | 库存金额 | `material_detail` | **核心价值**:避免"砍了很多SKU,但所有原料仍然需要采购"的假精简。 --- ### 模块7:原料共用度和标准化分析 **解决的问题**:建立"原料—SKU网络",识别核心原料与独有原料 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 物料共用度 | 被多少个SKU引用 | `count(DISTINCT sku_code)` | `fact_recipe_bom` | | 核心原料 | 被超过50个SKU使用的物料 | 共用度 > 50 | `fact_recipe_bom` | | 独有原料 | 仅被1个SKU使用的物料 | 共用度 = 1 | `fact_recipe_bom` | | 同物异名原料 | 名称不同但实际同类的物料 | 名称相似度分析 | `dim_material` | | 物料品类分布 | 原材料 vs 半成品 | `major_category` | `dim_material` | | 高依赖原料 | 高价值且共用度高的物料 | 金额×共用度排序 | `material_detail` + `fact_recipe_bom` | **管理意义**: - 高共用原料重点保供 - 独有原料严格控制新品准入 - 同物异名原料统一编码 - 规格过多的原料进行采购标准化 **当前数据概况**: - 五湖大豆油:被134个SKU使用(共用度最高) - 大葱(粗):130个SKU - 蒜米:129个SKU - 鲜姜:123个SKU --- ### 模块8:包装及耗材成本分析 **解决的问题**:餐盒、餐具、纸巾是否使用合理 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 每单用量 | 每份菜品耗用包装数量 | `theoretical_quantity_per_dish` | `material_detail` | | 每单成本 | 每份菜品包装成本 | `theoretical_amount / sales_quantity` | `material_detail` | | 费用率 | 包装成本 ÷ 销售额 × 100% | 计算字段 | 计算 | | 包装物料识别 | 餐盒/餐具包/打包袋/调味包等 | `material_name LIKE '%餐盒%餐具%打包%'` | `material_detail` | | 损耗量 | 包装物料的损耗数量 | `loss_quantity` | `material_detail` | | 损耗率 | 包装物料的损耗率 | `loss_quantity_rate_pct` | `material_detail` | **标准项目示例(餐巾纸)**: - 每单约5.30抽 - 每单费用约0.044元 - 全部纸巾费用约占营业收入0.145% - 建议标准:≤6抽正常、6-8抽关注、>8抽核查 --- ### 模块9:BOM数据质量分析 **解决的问题**:配方、单位和分摊数据是否可靠 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | BOM缺失率 | 无BOM的SKU占比 | 无BOM的SKU数 ÷ 总SKU数 | `dim_sku` + `fact_recipe_bom` | | 重复BOM | 同一SKU+物料+版本出现多次 | 重复记录数 | `fact_recipe_bom` | | 零实际用量 | standard_net_quantity = 0的BOM数 | `count(*)` | `fact_recipe_bom` | | 成本率异常 | 实际成本率 > 100% | `actual_margin_rate_pct < 0` | `dish_cost_analysis_summary` | | 理论成本异常 | 理论毛利率为负 | `theoretical_margin_rate_pct < 0` | `dish_cost_analysis_summary` | | 负数量 | 理论/实际用量为负 | `theoretical_quantity < 0 OR actual_quantity < 0` | `material_detail` | | 明细与汇总不一致 | 原料明细合计 ≠ 菜品汇总成本 | 逐菜品校验 | `material_detail` + `summary` | | 销售匹配率 | 菜品匹配到销售数据的比例 | `matched_to_dish_sales_by_name` | 视图 | | 库存匹配率 | 物料匹配到库存数据的比例 | `matched_to_inventory_by_name` | 视图 | **当前数据概况**: - BOM覆盖率:78.04%(597/765个SKU有BOM) - 菜品匹配率:91.75%(723/788) - 物料匹配率:96.65%(3450/3568) --- ### 模块10:品类成本对比 **解决的问题**:各品类的成本结构和毛利水平对比 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 品类平均理论毛利率 | 品类内所有菜品理论毛利率均值 | `avg(theoretical_margin_rate_pct)` | `dish_cost_analysis_summary` | | 品类平均实际毛利率 | 品类内所有菜品实际毛利率均值 | `avg(actual_margin_rate_pct)` | `dish_cost_analysis_summary` | | 品类销售额 | 品类内所有菜品销售额合计 | `sum(sales_amount)` | `dish_cost_analysis_summary` | | 品类成本差异 | 品类内实际成本-理论成本合计 | `sum(cost_variance_amount)` | `dish_cost_analysis_summary` | | 品类成本率 | 品类理论成本 ÷ 销售额 | 计算字段 | 计算 | | 品类菜品数 | 品类内SKU数量 | `count(*)` | `dish_cost_analysis_summary` | --- ### 模块11:物料损耗率分布 **解决的问题**:物料损耗的整体分布和异常识别 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 损耗率分档 | 按损耗率区间统计 | 7档分布 | `material_detail` | | 平均损耗率 | 所有物料的平均损耗率 | `avg(loss_quantity_rate_pct)` | `material_detail` | | 最大损耗率 | 单条物料明细的最大损耗率 | `max(loss_quantity_rate_pct)` | `material_detail` | | 高损耗物料数 | 损耗率>20%的物料数 | `count(*)` | `material_detail` | | 涉及菜品数 | 某物料被多少菜品使用 | `count(DISTINCT dish)` | `material_detail` | | 总损耗量 | 某物料的总损耗数量 | `sum(loss_quantity)` | `material_detail` | | 物料类型损耗对比 | 原材料 vs 半成品的损耗率对比 | `avg(loss_rate) GROUP BY material_type` | `material_detail` | **损耗率分档**: - 无损耗(0%) - 轻微(-1~0%) - 轻度(-1~-10%) - 中度(-10~-30%) - 严重(-30~-100%) - 极重(< -100%) - 正向(>0%,实际低于理论) --- ### 模块12:菜品定价合理性 **解决的问题**:售价与BOM标准成本的关系,定价是否合理 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 售价 | 菜品单价 | `price` | `dish_cost_analysis_summary` | | 理论成本率 | 理论成本 ÷ 售价 × 100% | 计算字段 | 计算 | | 实际成本率 | 实际成本 ÷ 售价 × 100% | 计算字段 | 计算 | | 毛利率分布 | 按毛利率区间统计菜品数 | 分档统计 | `dish_cost_analysis_summary` | | 低毛利菜品数 | 理论毛利率 < 50% | `count(*)` | `dish_cost_analysis_summary` | | 负毛利菜品数 | 实际毛利率 < 0 | `count(*)` | `dish_cost_analysis_summary` | | 定价偏离度 | 售价与同类菜品均价的偏差 | (售价 - 品类均价) ÷ 品类均价 | 计算 | --- ### 模块13:BOM驱动物料需求预测 **解决的问题**:根据历史销量×BOM标准用量预测物料采购量 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 预计物料需求量 | BOM标准用量 × 历史销量 | `sum(standard_gross_quantity × sales_quantity)` | `fact_recipe_bom` + `summary` | | 涉及菜品数 | 使用该物料的SKU数 | `count(DISTINCT sku_code)` | `fact_recipe_bom` | | 物料单位 | 物料的标准单位 | `base_unit` | `dim_material` | | 物料类型 | 原材料/半成品 | `major_category` | `dim_material` | | 需求金额 | 预计需求量 × 物料单价 | 需物料单价数据 | 计算 | --- ### 模块14:物料匹配率监控 **解决的问题**:物料名称标准化程度和库存匹配情况 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 已匹配物料数 | 成功匹配到库存的物料数 | `count(*) WHERE matched=true` | 视图 | | 未匹配物料数 | 未匹配到库存的物料数 | `count(*) WHERE matched=false` | 视图 | | 物料匹配率 | 已匹配 ÷ 总数 × 100% | 计算字段 | 计算 | | 菜品匹配率 | 已匹配销售 ÷ 总菜品 × 100% | 计算字段 | 计算 | | 未匹配物料清单 | 未匹配物料的名称和涉及菜品 | 明细列表 | 视图 | | 未匹配菜品清单 | 未匹配销售数据的菜品 | 明细列表 | 视图 | --- ## 第二优先级:门店级分析(基于现有门店成本数据) ### 模块15:门店成本差异分布 **解决的问题**:全部门店的成本异常分级分布 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 门店成本差异金额 | 实际食材成本 - 理论食材成本 | `food_cost_variance` | `v_store_theoretical_actual_cost_april` | | 差异分级 | 红/橙/绿/灰 | `variance_level` | `v_store_theoretical_actual_cost_april` | | 理论成本率 | 理论成本 ÷ 销售 × 100% | `theoretical_cost_rate_pct` | `v_store_theoretical_actual_cost_april` | | 实际食材成本率 | 实际食材成本 ÷ 销售 × 100% | `actual_food_cost_rate_pct` | `v_store_theoretical_actual_cost_april` | | 成本率偏差 | 实际成本率 - 理论成本率 | `cost_rate_gap_pct` | `v_store_theoretical_actual_cost_april` | | 可比状态 | 是否可比 | `comparison_status` | `v_store_theoretical_actual_cost_april` | **当前数据概况**: - 红色-严重超耗:35家门店,超耗¥203.6万 - 橙色-明显超耗:40家门店,超耗¥135.1万 - 绿色-基本正常:8家门店 - 灰色-口径异常:6家门店 --- ### 模块16:门店超耗金额排名 **解决的问题**:哪些门店超耗最严重 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 门店超耗排名 | 按成本差异金额排序 | `ORDER BY food_cost_variance` | `v_store_theoretical_actual_cost_april` | | 门店超耗率 | 差异 ÷ 理论成本 × 100% | 计算字段 | 计算 | | 门店销售额 | 门店总实收 | `sales_received` | `v_store_theoretical_actual_cost_april` | | 门店账单数 | 门店总账单数 | `bill_count` | `v_store_theoretical_actual_cost_april` | | 门店理论成本 | 门店理论成本合计 | `theoretical_cost` | `v_store_theoretical_actual_cost_april` | | 门店实际成本 | 门店实际成本合计 | `actual_food_cost` | `v_store_theoretical_actual_cost_april` | --- ### 模块17:门店理论vs实际成本率对比 **解决的问题**:门店成本率偏差的分布 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 理论成本率 | 理论成本 ÷ 销售 | `theoretical_cost_rate_pct` | `v_store_theoretical_actual_cost_april` | | 实际成本率 | 实际成本 ÷ 销售 | `actual_food_cost_rate_pct` | `v_store_theoretical_actual_cost_april` | | 成本率偏差 | 实际 - 理论 | `cost_rate_gap_pct` | `v_store_theoretical_actual_cost_april` | | 负库存项数 | 期末库存为负的物料数 | `negative_item_lines` | `v_store_theoretical_actual_cost_april` | | 负库存金额 | 负库存金额合计 | `negative_consumption_amount` | `v_store_theoretical_actual_cost_april` | --- ### 模块18:门店菜品成本交叉分析 **解决的问题**:按门店看菜品成本和毛利 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 门店匹配菜品数 | 门店销售中匹配到成本数据的菜品数 | `count(DISTINCT dish_name)` | `dish_sales_details` + `summary` | | 门店匹配销售额 | 门店匹配菜品的销售额合计 | `sum(gross_amount)` | `dish_sales_details` + `summary` | | 门店菜品覆盖率 | 匹配菜品数 ÷ 门店总菜品数 | 计算字段 | 计算 | | 门店理论成本合计 | 门店匹配菜品的理论成本 | `sum(theoretical_cost)` | 关联查询 | | 门店实际成本合计 | 门店匹配菜品的实际成本 | `sum(actual_cost)` | 关联查询 | > 注:菜品成本报表无门店维度,此分析通过菜品名称关联销售明细间接估算,精度受限。 --- ### 模块19:门店物料损耗排名 **解决的问题**:按门店汇总物料损耗率,识别操作异常门店 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 门店物料损耗率 | 门店物料损耗量 ÷ 理论用量 | 间接估算 | `dish_sales_details` + `material_detail` | | 门店高损耗物料数 | 损耗率>20%的物料数 | 计算字段 | 计算 | | 门店损耗金额 | 损耗物料的金额合计 | 间接估算 | 关联查询 | > 注:受限于菜品成本报表无门店维度,此分析为间接估算。 --- ## 第三优先级:BOM专项分析(基于构建的BOM数据) ### 模块20:BOM覆盖率分析 **解决的问题**:有多少SKU有BOM,缺BOM的SKU清单 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | BOM覆盖率 | 有BOM的SKU ÷ 总SKU × 100% | 计算字段 | `dim_sku` + `fact_recipe_bom` | | 有BOM的SKU数 | 在BOM表中出现的SKU数 | `count(DISTINCT sku_code)` | `fact_recipe_bom` | | 缺BOM的SKU数 | 不在BOM表中的SKU数 | 总SKU - 有BOM的SKU | 计算 | | 缺BOM SKU清单 | 按品类、销量排序 | 明细列表 | `dim_sku` + `fact_recipe_bom` | **当前数据概况**: - BOM覆盖率:78.04%(597/765) - 缺BOM的SKU:168个 --- ### 模块21:BOM适用门店覆盖 **解决的问题**:哪些SKU的BOM仅适用部分门店 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 全门店适用 | applicable_stores 为空(全部门店) | `applicable_stores IS NULL` | `fact_recipe_bom` | | 部分门店适用 | applicable_stores 有指定门店 | `applicable_stores IS NOT NULL` | `fact_recipe_bom` | | 门店缺失BOM | 某门店无对应SKU的BOM | 交叉校验 | `fact_recipe_bom` + `dim_store` | **当前状态**:所有BOM的 `applicable_stores` 均为空,表示全部门店适用。 --- ### 模块22:高损耗BOM预警 **解决的问题**:BOM标准损耗率超过阈值的SKU-物料组合 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | BOM损耗率 | BOM中记录的标准损耗率 | `waste_rate` | `fact_recipe_bom` | | BOM出成率 | BOM中记录的标准出成率 | `yield_rate` | `fact_recipe_bom` | | 高损耗BOM数 | waste_rate > 20%的BOM数 | `count(*)` | `fact_recipe_bom` | | 极端损耗BOM | waste_rate > 100%的BOM | 明细列表 | `fact_recipe_bom` | | 涉及菜品数 | 高损耗BOM涉及的SKU数 | `count(DISTINCT sku_code)` | `fact_recipe_bom` | --- ### 模块23:菜品物料构成分析 **解决的问题**:每道菜品的物料构成和主要成本物料 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 物料数量 | 菜品BOM中的物料总数 | `count(*)` | `fact_recipe_bom` | | 主要成本物料 | 金额占比最大的物料 | 排序 | `material_detail` | | 物料成本占比 | 单物料金额 ÷ 菜品总成本 | 计算字段 | `material_detail` | | 物料类型构成 | 原材料 vs 半成品数量 | `count(*) GROUP BY material_type` | `material_detail` | | 配方复杂度评分 | 综合物料数/类型/损耗 | 加权计算 | 计算 | --- ### 模块24:成本差异vs销量散点图 **解决的问题**:高销量高差异菜品优先整改 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | X轴:销量 | 菜品销售份数 | `sales_quantity` | `dish_cost_analysis_summary` | | Y轴:成本差异 | 实际成本 - 理论成本 | `cost_variance_amount` | `dish_cost_analysis_summary` | | 气泡大小:销售额 | 菜品销售额 | `sales_amount` | `dish_cost_analysis_summary` | | 颜色:品类 | 一级分类 | `category_level1` | `dish_cost_analysis_summary` | | 优先整改象限 | 高销量 + 高差异 | 右上角 | 散点图 | --- ### 模块25:理论/实际毛利率偏差分布 **解决的问题**:毛利率偏差的分布和异常菜品 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 毛利率偏差 | 实际毛利率 - 理论毛利率 | 计算字段 | `dish_cost_analysis_summary` | | 偏差分档 | 按偏差区间统计 | 5档分布 | 计算 | | 严重偏低 | 偏差 < -30% | `count(*)` | 计算 | | 偏低 | 偏差 -30% ~ -10% | `count(*)` | 计算 | | 略低 | 偏差 -10% ~ 0% | `count(*)` | 计算 | | 略高 | 偏差 0 ~ 10% | `count(*)` | 计算 | | 高于理论 | 偏差 > 10% | `count(*)` | 计算 | **当前数据概况**: - 实际略高0-10%:191道 - 实际高于理论>10%:177道 - 实际略低0-10%:140道 - 实际偏低10-30%:53道 - 实际严重偏低>30%:40道 --- ### 模块26:门店成本红橙绿分级地图 **解决的问题**:89门店按成本异常级别地图展示 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 门店经纬度 | 门店地理位置 | `latitude_gcj02, longitude_gcj02` | `v_store_location_operating` | | 成本分级 | 红/橙/绿/灰 | `variance_level` | `v_store_theoretical_actual_cost_april` | | 超耗金额 | 门店成本差异金额 | `food_cost_variance` | `v_store_theoretical_actual_cost_april` | | 门店名称 | 门店名称 | `store_name` | `v_store_theoretical_actual_cost_april` | | 地图标注颜色 | 按分级着色 | 红/橙/绿/灰 | 可视化 | --- ### 模块27:BOM版本时效监控 **解决的问题**:过期BOM/即将过期BOM/有效BOM统计 | 指标 | 定义 | 计算方式 | 数据来源 | |------|------|---------|---------| | 有效BOM数 | expiry_date 为空或 > 当前日期 | `count(*)` | `fact_recipe_bom` | | 过期BOM数 | expiry_date < 当前日期 | `count(*)` | `fact_recipe_bom` | | 即将过期BOM数 | expiry_date 在30天内 | `count(*)` | `fact_recipe_bom` | | BOM版本数 | 不同版本数量 | `count(DISTINCT bom_version)` | `fact_recipe_bom` | **当前状态**:所有BOM均为v1.0版本,expiry_date为空(长期有效),无过期风险。 --- ## 补齐数据后可增加的分析 > 当前菜品成本报表缺少"月份+门店"字段,补齐后可增加以下分析: | # | 分析模块 | 需要补齐的字段 | 解决的问题 | |---|---------|--------------|-----------| | 28 | 门店-SKU-原料理论与实际差异 | 门店+月份 | 精确到门店级的单品成本差异 | | 29 | 同一SKU不同门店份量执行差异 | 门店+月份 | 识别份量不统一的门店 | | 30 | 原料价格差异和用量差异分解 | 月份+采购单价 | 区分价格因素和用量因素 | | 31 | 门店替代原料使用情况 | 门店+月份 | 门店是否擅自替换原料 | | 32 | BOM版本变更前后毛利变化 | 月份+BOM版本 | 配方调整对毛利的影响 | | 33 | 新品试销实际毛利 | 月份+上架日期 | 新品是否达到预期毛利 | | 34 | 报损/赠送/员工餐成本归属 | 门店+月份+用途 | 非销售耗用的成本归属 | | 35 | 门店真实SKU利润表 | 门店+月份 | 门店级单品盈亏 | | 36 | 替代料使用率 | `substitute_material`有值 | 替代料的实际使用频率和成本影响 | | 37 | 供应商集中度分析 | `dim_material.supplier_code` | 供应商依赖度和断供风险 | | 38 | BOM标准成本波动追踪 | 多版本BOM | 同一SKU不同版本的成本变化趋势 | | 39 | 配方变更对毛利影响 | 多版本BOM+月份 | 版本变更前后的成本/毛利变化 | **标准差异分解最终目标**: ``` 实际成本差异 = 采购价格差异 + 原料用量差异 + 替代料差异 + 出成率差异 + 报损盘亏 + 赠送及员工餐 + 调拨和分摊差异 ``` --- ## 建议落地顺序 ### 第一批(公司级商品与供应链决策) 1. 模块1:SKU理论与实际成本及毛利 2. 模块2:SKU原料差异贡献 3. 模块4:BOM复杂度与独有原料 4. 模块6:SKU精简供应链影响模拟 5. 模块8:包装耗材每单成本 ### 第二批(成本执行管理) 6. 模块3:菜品盈利与菜单工程 7. 模块7:原料共用度和标准化 8. 模块9:BOM数据质量分析 9. 模块10:品类成本对比 10. 模块11:物料损耗率分布 ### 第三批(门店级分析) 11. 模块15:门店成本差异分布 12. 模块16:门店超耗金额排名 13. 模块17:门店理论vs实际成本率 14. 模块26:门店成本分级地图 ### 第四批(深度分析) 15. 模块5:独有原料风险 16. 模块12:菜品定价合理性 17. 模块13:BOM驱动物料需求预测 18. 模块14:物料匹配率监控 19. 模块24:成本差异vs销量散点图 20. 模块25:毛利率偏差分布 ### 分析闭环 ``` 卖得怎么样(模块3) → 实际赚不赚钱(模块1) → 为什么成本异常(模块2) → 配方是否复杂(模块4) → 是否应该保留(模块6) → 下架后能减少什么成本(模块6) ```