线下门店销售持续增长方案(通用模板)
为一家线下门店产出「诊断 + 测算 + 动作 + 排期」的完整增长方案。
引擎与零售业态解耦:默认社区生鲜店,另内置水果 / 便利店 / 烘焙 / 母婴四套基准,
新增行业只改一个字典(见 references/template-guide.md)。
核心原则
数字只能来自脚本,不能来自感觉。 所有坪效、毛利、损耗、盈亏平衡、增量拆解、优先级排序,
一律由 scripts/calc_model.py 算出来。方案里的每个数字都要能在脚本输出或 Excel 里找到出处。
先判断这家店的主要矛盾是不是"增长"。 亏损店的主要矛盾通常是成本结构(人工/租金/毛利),
销售涨 60% 也填不上。脚本会给出这个判断,写方案时放在最前面,不要粉饰。
工作流
第 0 步:定行业
python scripts/calc_model.py --list-industries
| key | 行业 | 关键差异 |
|---|---|---|
fresh |
社区生鲜店(默认) | 损耗是生死线,13 项指标全适用 |
fruit |
水果专营店 | 客单更高、频次更低、损耗更大 |
cvs |
便利店 | 高频低客单,鲜食与自有品牌定毛利 |
bakery |
烘焙 / 面包店 | 毛利率 55%+ 但报损率是第一杀手 |
maternal |
母婴用品店 | 低频高客单,不适用损耗指标(自动隐藏),靠会员与私域 |
后续所有命令加 --industry <key>。基准阈值、默认参数、效率杠杆三件套会整体切换。
第 1 步:采集门店参数
先问用户要下面 8 个数(最低限度)。给不全就直接跑默认值,不要卡住:
| 参数 | 说明 | 默认值 |
|---|---|---|
| 日均销售额 | 近 30 天平均,剔除开业/大促异常日 | 9000 元 |
| 客单价 | 日销 / 成交笔数 | 35 元 |
| 综合毛利率(已扣损耗) | (销售额-进货-损耗)/ 销售额 | 21% |
| 损耗率 | 报损 + 折价,占销售 | 5% |
| 月租金 | 含物业 | 15000 元 |
| 员工数 / 人均月薪 | 含店长 | 4 人 / 4200 元 |
| 覆盖户数 | 500m 半径内常住户 | 2500 户 |
| 90 天目标增幅 | 建议 20-40% | 30% |
| 全店 SKU 总数(写 SKU 章节用) | 现状在营 SKU 数 | 806(53 个细分类中默认勾选 45 项) |
| 陈列面积 | 建筑面积 × 65-75% | 70㎡ |
其余参数(水电、耗材、会员数、线上占比等)用基准值。脚本末尾会列出哪些用了默认值,
报告里必须原样标注 [默认]。
第 2 步:跑测算,拿诊断和优先级
零依赖,任意 Python 都能跑:
python scripts/calc_model.py --industry fresh \
--daily-sales 9800 --rent 18000 --ticket 32 --gm 0.19 --shrink 0.078 --growth 0.35
输出七块:结论先行 / 现状体检 / 成本结构与盈亏平衡 / 90 天目标拆解 / 效率杠杆 / 优先级排序 / 敏感性。
【结论先行】和【五】优先级排序是方案的骨架,直接写进报告,不要重写。
加 --json 可拿到结构化数据。
第 3 步(可选):生成网页版诊断器
把同一套算法和基准导出成一个单文件网页,纯前端、无依赖、可发布成链接:
python scripts/build_webapp.py --out webapp/index.html
网页与命令行共用 calc_model.INDUSTRIES 这一份数据,不会算歪。
注意:改动 calc_model.py 后必须重新生成,否则网页会用旧基准。
第 4 步:生成 Excel 测算模型
需要 openpyxl。本机用受管 venv(已装):
C:/Users/zhang/.workbuddy/binaries/python/envs/default/Scripts/python.exe scripts/build_workbook.py \
--out "生鲜门店增长测算模型.xlsx" --daily-sales 9800 --ticket 32 --gm 0.19 --shrink 0.078 --rent 18000 --growth 0.35
门店参数默认全部留空,由人工填写 —— 这是刻意的:预填假数字会被当成结论用。
01 表 D 列给出每项的「参考基准」(行业区间,不参与计算),E 列说明取数方式。
日销/客单/面积三项没填时,02-04、06-08 各表一律显示「待填参数」,不会显示 0 或 #DIV/0!。
产出 8 张表,全是活公式:
| 表 | 内容 | 是否需人工填 |
|---|---|---|
| 01_参数输入 | 门店参数 + 品类结构 | 黄底全部手填,D 列是参考基准 |
| 02_现状诊断 | 13 项指标 vs 基准,红黄绿灯 | 自动 |
| 03_增长拆解 | 三杠杆 + 效率杠杆 + 敏感性矩阵 | 自动 |
| 04_品类与损耗 | 品类毛利/损耗金额 + 改善情景 | 品类结构可按门店改 |
| 05_品类SKU建议 | 53 个细分类(9 大类拆细 + 7 个可选扩展):是否经营下拉勾选 / SKU 数可改 / 陈列面积自动归一化 / 大类汇总 / 占比校验 | 是否经营 + SKU 数 + 占比可改 |
| 06_90天目标 | 13 周日销目标与阶段抓手 | 自动 |
| 07_月度损益 | 现状 vs 三个月爬坡 | 自动 |
| 08_日监控看板 | 31 天填写模板 | 每日人工填 |
想生成一份"已填好的样例"用于演示,加 --with-defaults(会用行业基准预填,正式使用仍需替换)。
第 5 步:补动作细节(按需读)
- 写诊断说明、定基准区间、写品类与 SKU 章节 → 读
references/benchmarks.md(含第九节 SKU 结构与必配清单) - 写具体动作清单 → 读
references/growth-levers.md(六大抓手,每个都有动作/验收/常见错误) - 写 90 天排期 → 读
references/90day-plan.md
不要一次全读,按报告写到哪一节读哪个。
第 6 步:写报告
用 assets/report-template.md 作骨架,填成 Markdown 报告,落盘到当前工作目录,
文件名 门店增长方案-{门店名}-{YYYY-MM-DD}.md。
不要写"建议加强社群运营"这类没有指标、没有验收、没有责任人的动作。
硬性规则
- 一个阶段只押一个主抓手。 三阶段:阶段一止血(损耗/陈列)、阶段二复购(社群/会员)、
阶段三提速(客单/结构/线上)。同时开三条战线是最常见的失败方式。 - 引流品红线:控制在 SKU 的 10-15%、销售的 20-25%。超过会把综合毛利拖垮。
- 损耗优先于一切增长动作:损耗率每降 1pp 直接等于净利增加月销的 1%,见效只要 15 天,
且不依赖客流。亏损店和毛利偏低的店,第一优先级永远是损耗和成本结构。 - 亏损店不要承诺"增长能救":脚本会算出"目标达成后仍亏损",这种情况报告必须直说,
并给出成本重构(人工/租金/品类)的优先动作。 - 目标超出三杠杆能力要说缺口:脚本会报缺口百分比,明说靠什么补(新增品类/线上渠道/延长周期),
不要假装可达成。 - 会员日放在客流最低那天(通常周二/周三)用来填谷,不要放在周末。
- 社群内容是"今天有什么货",不是促销广告。 早 7 点到货播报 + 晚 5 点折价预告,发图不发长文。
- 线上先做社群自提,再做外卖。 社群自提零佣金、零损耗、还带到店;外卖佣金 15-22%,且不能上叶菜。
- 别拿旺季数据定全年目标,也别用开业期数据当基准。
- 日销要和笔数、客单一起看:日销涨 10% 可能来自客单也可能来自笔数,动作完全不同。
- 排面按销售占比分,不按 SKU 数分。 粮油调味占全店 SKU 的 35%,却只贡献 5% 销售——
把好位置给它是最常见的结构错误。SKU 数 / 销售占比 / 陈列占比三者必须分开看。 - SKU 建议必须落到必配单品。 只写"蔬菜 130 个 SKU"没有用。05 表已把 9 大类拆成 53 个细分类,
每个细分类都列了必配单品——让使用方勾选自己实际经营的,再核对缺了哪些必配单品。
缺必配单品等于主动流失客流,这是最快能补的漏洞。 - 报告末尾必须保留「用完请回来一句话」这一节,不得删除或改写。 它是这套方法唯一的反馈闭环:
门店老板是这个技能唯一的真实样本来源,他不回话,下一版就没有依据可改。
原样照抄assets/report-template.md第十二节,别把它当成客套话删掉。 - 活鲜默认不勾选。 水产损耗 8-20% 全店最高,新手不要碰。核心品类默认勾选 45 项、合计 806 个 SKU;
用户把活鲜或可选扩展改成「是」后,销售占比合计会打破 100%,表内自动提示重新分配。
资源
| 文件 | 用途 |
|---|---|
scripts/calc_model.py |
零依赖测算与诊断 CLI:多行业基准 + 结论/体检/拆解/优先级/敏感性 |
scripts/build_workbook.py |
生成 8 表联动的 Excel 测算模型(需 openpyxl) |
scripts/build_webapp.py |
导出单文件网页诊断器(纯前端,数据取自 calc_model) |
references/template-guide.md |
通用模板说明:如何新增行业 / 换基准 / 改杠杆 / 改名换皮 |
references/benchmarks.md |
基准库:指标区间、品类毛利与损耗、时段节奏、成本结构、天花板校验、常见误判 |
references/growth-levers.md |
六大抓手动作库:症状 / 动作 / 验收指标 / 常见错误 / 优先级速查 |
references/90day-plan.md |
三阶段排期、数据基座清单、周任务与验收 KPI、复盘节奏、失败信号 |
assets/report-template.md |
报告骨架(十节,含占位符) |
参数速查
calc_model.py:--industry --list-industries --daily-sales --area --ticket --tickets --freq
--gm --shrink --rent --staff --salary --util --consum --misc --members --households
--online --growth,加 --json 输出 JSON。
不传的参数自动回落到所选行业的基准值,输出末尾会逐项列出哪些用了基准值。
完整列表:python scripts/calc_model.py --help。