有人点了 47 元的餐,用券实付 21.9 元,省了 25.1 元。直觉上:这一单平台/门店少收了 25.1 元。
那门店这单还剩多少?
按一个餐饮门店的典型成本结构粗算(食材 32%、人工 18%、房租物业 12%、特许权费 5%、其他 6%),算出来是:
顾客省下的钱,门店一分没多省——薯条不会因为打折变便宜,店员也不会。
这就是我做这个项目的全部动机:把"我省了多少"翻译成"门店这单赚多少",让优惠的代价变得具体。
同一个"成本率",乘在原价上还是乘在实付上,结果完全相反。
成本类型 | 例子 | 按什么计 | 为什么 |
|---|---|---|---|
固定类 | 食材/包装、人工、房租物业、其他 | 原价营收 | 门店该花的钱不会因为顾客用券而少花 |
变动类 | 特许权费(按营业额抽成) | 券后实付 | 抽成基数跟着实际到账走 |
写成代码就是一个分层:
# 固定类成本按「原价营收」计:顾客用券不会让门店少花一分钱
food_cost = list_total * params.food_cost_ratio
labor_cost = list_total * params.labor_ratio
occupancy_cost= list_total * params.occupancy_ratio
other_cost = list_total * params.other_ratio
# 变动类成本按「券后实付」计:特许权费跟着实付走
royalty_cost = revenue * params.royalty_ratio
gross_profit = revenue - (food_cost + labor_cost + occupancy_cost + royalty_cost + other_cost)盈亏平衡让利率(毛利率归零时的折扣力度)推导也不复杂。设 L=原价合计,r=让利率,F=固定成本率合计,R=特许权费率:
实付 = L(1-r)
成本 = L·F + L(1-r)·R
毛利 = 0 => (1-r)(1-R) = F => r = 1 - F/(1-R)例:F=0.68、R=0.05 时,让利率超过 28.4% 这一单门店就不赚钱了。
麦麦毛利镜(mcd-margin-mirror):一个只做确定性算术、不让大模型口算的门店毛利估算器。
src/estimator.py,纯标准库零依赖)关键设计:所有成本率必须使用者自己填,缺字段直接报错,项目不内置任何"行业经验值"——填不出真实口径就别用,这是刻意的。
输入一份订单 + 一份成本参数,输出:单品/单笔的成本拆解、估算毛利、毛利率、盈亏平衡让利率。
git clone https://github.com/Kormendierijon681-oss/mcd-margin-mirror.git
cd mcd-margin-mirror
python3 scripts/demo.py # 离线演示,无需 Token
open docs/demo.html # 出 HTML 报告
python3 scripts/selftest.py # 16 项断言自测接真实数据需要麦当劳 MCP 的 Token(免费申请),配置用环境变量占位符,仓库里不存任何真实凭证。
人工和房租属于期间固定成本,模型按"这一单原价占门店期间原价合计的份额"分摊到单笔——门店单期汇总时总额守恒,但单品层面会失真:一份高价订单会被多摊人工房租,看起来"更亏"。
所以要看单品的真实边际贡献,把人工率与房租率置 0,只留食材、包装和特许权费。这个口径我写进 README 了,不想让后来人重复踩。
先玩再读:在线试玩(零配置,打开即用)——拖动滑块改让利力度,实时看优惠怎么把门店毛利吃掉,成本率也能改成你自己的口径:
https://kormendierijon681-oss.github.io/mcd-margin-mirror/
源码、模型推导过程、踩坑记录都在 GitHub:
https://github.com/Kormendierijon681-oss/mcd-margin-mirror
这是我参加麦当劳程序员创意开发大赛的参赛作品(已报名成功)。如果你觉得这个模型对你有用,欢迎在 GitHub 上给它点个 Star——Star 数是这个赛事的排名依据,也是对我最实在的支持。评论区说一声你的用法,我也会回。
本文同步发布于我的 GitHub 仓库 README(含完整模型推导与自测断言)。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。