返回技能市场

餐饮选址决策与ROI分析系统

资深商业地产数据分析师视角的餐饮商铺量化评估与决策工具。融合 Reilly 零售引力定律、 Hotelling 区位模型、TQI 客流质量指数与 GIS 逻辑,并深度调用地图 MCP(如腾讯地图 MCP) 采集人流量代理、竞品分布、消费水平与商业密度,输出数据驱动的品类选址建议, 以及面向决策人的专业 Markdown 报告(含可视化)。 当用户提及"商铺评估"、"开店测算"、"选址"、"雷利定律"、"商圈吸客力"、"投资回报"、 "Reilly"、"Hotelling"、"GIS"、"断裂点"、"客流质量"、"地图"、"人流量"、"竞品分布"、 "消费水平"、"商业密度"、"品类选择"、"选址决策报告"等关键词时触发。 基于结构化 JSON(位置/客流/竞争/财务 + 可选地图MCP采集),调用 scripts 下引擎输出: 商圈断裂点与捕获面积、TQI 修正有效客流、三情景财务预测与回本周期置信区间、 数据驱动的品类推荐排序,以及谈判筹码。内置消防/排烟/产权一票否决(Red Flag)。

版本: 1.0.1分类: 文档处理
中文

SKILL.md

餐饮选址决策与 ROI 分析系统 v3.0.0

角色设定

以「资深商业地产数据分析师」身份执行。不输出"感觉",而是基于人口统计学与空间经济学的 置信区间做量化评估。核心工具:Reilly's Law(雷利零售引力定律)、Hotelling's Location Model(霍特林区位模型)、TQI(Traffic Quality Index 客流质量指数)与 GIS 逻辑 (Buffer Zone、Network Analysis、Catchment Area)。

v3.0 新增能力:深度联动地图 MCP 采集结构化空间数据(人流量代理 / 竞品分布 / 消费水平 / 商业密度),并基于数据给出餐饮品类选址建议与决策人级 Markdown 报告。

适用场景(触发条件)

用户提出以下任意意图时激活:

  • 评估某餐饮铺位的商圈吸客力与断裂点(Reilly)
  • 量化客流质量(可视性衰减 + 物理阻抗)并预测翻台/客单
  • 基于竞品距离与规模测算分流率(Hotelling)
  • 输出三情景(乐观/中性/悲观)财务预测与回本周期置信区间
  • 测量目标区域人流量 / 商业密度(调用地图 MCP)
  • 评估周边商圈价值:竞品分布、消费水平、商业密度
  • 基于数据给出餐饮品类选择建议
  • 需要带 GIS 术语的专业决策报告与租约谈判筹码
  • 存在消防/排烟/产权硬伤时的"一票否决"判定

使用指南

1. 功能说明

本 Skill 面向餐饮 / 零售商铺选址决策,提供以下能力:

  • 地图 MCP 数据采集:调用已连接的地图 MCP(如腾讯地图 MCP)测量目标区域人流量代理、竞品分布、消费水平、商业密度与路网可达性(详见 references/map_mcp_guide.md)。
  • Reilly 零售引力定律:计算断裂点(Breaking Point)与核心商圈半径、有效捕获面积(Catchment Area)。
  • TQI 客流质量指数:可视衰减 × 物理阻抗,将"通过人流"折算为"进店人流"。
  • Hotelling 区位模型:基于竞品距离与规模测算分流率,量化竞争影响。
  • 三情景财务 + 置信区间:乐观 / 中性 / 悲观营收与回本周期,输出风险等级。
  • 数据驱动品类推荐:基于商圈类型 / 消费水平 / 商业密度 / 竞争强度 / TQI / 合规硬伤,给出餐饮品类评分排序与回避清单。
  • 决策人 Markdown 报告:七节结构化报告(含客流漏斗、回本区间等 ASCII 可视化与行动清单)。
  • Red Flag 一票否决:命中消防 / 排烟 / 产权 / 排污硬伤直接终止。

2. 使用方法

方式一 · 对话触发(推荐) 直接对 AI 描述选址需求,例如:"帮我评估 XX 路这个铺位,做茶饮合不合适?""测量一下这个商圈的竞品分布和人流量"。命中关键词(选址 / 雷利定律 / 商圈吸客力 / 置信区间 / 人流量 / 品类选择 / 选址决策报告 等)即触发;AI 会引导补全信息并自动跑完工作流,最终输出 Markdown 决策报告。

方式二 · 本地脚本直跑(可选,便于批处理 / 二次开发)

# 1) 量化分析(Reilly / TQI / Hotelling / 三情景)
python scripts/roi_calculator.py --json input.json      # 自定义输入
python scripts/roi_calculator.py --demo                 # 内置示例

# 2) 品类推荐
python scripts/category_recommender.py --json feats.json
python scripts/category_recommender.py --demo

# 3) 生成决策人 Markdown 报告(整合 1+2 + 可选地图数据)
python scripts/report_generator.py --json input.json --map-json map_data.json --out report.md
python scripts/report_generator.py --demo --map-json examples/demo_map_data.json --out examples/decision_report_demo.md

脚本仅依赖 Python 标准库(argparse / json / math / re / datetime / os / sys),无需任何第三方包,Python 3.8+ 即可运行。

地图 MCP 前置:若要用到真实空间数据,请先在连接器面板将 tencent-map(或等效地图 MCP)状态置为 connected;未连接时按降级策略以人工估算推进,并在报告中明确标注。

3. 参数描述(输入 JSON)

以下为 roi_calculator.py 的输入 schema,缺失项由 references/benchmarks.md 基准估算(* 为可选):

字段路径类型必填说明示例 / 缺省
projectstring是项目名(报告标题用)"新店001"
categorystring*品类,决定捕获率基准(正餐/快餐/茶饮/火锅/烘焙…)"正餐"
location.addressstring*地址(供地图 MCP 地理编码)"XX路XX号"
location.longitude / latitudenumber*经纬度(有则跳过地理编码)121.47 / 31.23
location.scale_sqmnumber是本店营业面积,作为 Reilly 吸引力 Sa150
location.visibility_anglenumber*门头可视角度(度),决定可视衰减45(缺省 90)
location.foot_traffic.weekday_noonnumber是工作日午市过点人流2500
location.foot_traffic.weekday_nightnumber是工作日晚市过点人流800
location.foot_traffic.weekend_avgnumber是周末平均过点人流1800
impedancearray*物理阻抗标签:step/median/low_ceiling/pillar/bad_parking["step"]
competition[].namestring是竞品名"竞品A"
competition[].distance_mnumber是本店与竞品间距(米)50
competition[].scale_sqmnumber*竞品面积(吸引力 Sb)150(缺省同本店)
financials.rent_monthlynumber是月租金50000
financials.deposit_termsstring是押付条款,解析为 首期租金 = 月租×(押+付)"3押1付"
financials.renovation_costnumber是装修设备投入300000
financials.transfer_feenumber*转让费0
financials.avg_checknumber是客单价45
financials.cogs_rationumber是食材成本率0.35
financials.opex_rationumber是运营费用率(占营收)0.25
red_flagsarray*合规硬伤:no_fume/no_vent/fire_hazard/no_sewage/unknow_title 等[]

完整 JSON 示例:

{
  "project": "新店001",
  "category": "正餐",
  "location": {
    "address": "XX路XX号",
    "longitude": 121.47, "latitude": 31.23,
    "scale_sqm": 150,
    "visibility_angle": 45,
    "foot_traffic": {"weekday_noon": 2500, "weekday_night": 800, "weekend_avg": 1800}
  },
  "impedance": ["step"],
  "competition": [{"name": "竞品A", "distance_m": 50, "scale_sqm": 150}],
  "financials": {
    "rent_monthly": 50000, "deposit_terms": "3押1付", "renovation_cost": 300000,
    "transfer_fee": 0, "avg_check": 45, "cogs_ratio": 0.35, "opex_ratio": 0.25
  },
  "red_flags": []
}

category_recommender.py 另需商圈特征(trade_area_type / consumption_level / commercial_density / competition_intensity / tqi / red_flags),通常由 report_generator.py 从地图数据与分析结果自动推导,亦可由 map_data.json 直接提供(schema 见 references/map_mcp_guide.md)。

4. 注意事项

  • 地图数据是代理,不是实时人流:地图 MCP 提供 POI 密度、业态构成、路网可达性等空间代理指标,是客流潜力的强信号;真实客流仍需现场分时段人工计数或第三方移动大数据补充。二者在报告中须明确区分。
  • 置信区间非收益承诺:三情景回本区间为数据推演,不代表确定结果;悲观情景受"竞争分流 50% 半实现"假设影响。
  • Red Flag 一票否决:命中消防 / 排烟 / 产权 / 排污硬伤,系统直接终止评估,不进入乐观叙事。
  • 竞争距离禁编造:竞品距离须来自地图 MCP 实测或现场测距,不得凭印象虚构。
  • 数据来源透明度:未接入地图 MCP 时,商圈价值相关结论标注"人工估算/待补",不混入地图结构化数据的置信度。
  • 地图数据出境必须 opt-in:调用地图 MCP 前须向用户明确说明"将把铺位地址/坐标发送至地图服务商"并征得同意;用户拒绝则纯本地降级,绝不静默外发。且仅地址/经纬度出境,财务与合规数据一律本地处理(详见「安全与合规」与 references/map_mcp_guide.md 第六节)。
  • 发布前替换作者:SKILL.md 的 author 字段当前为 WorkBuddy,对外发布前请改为你的品牌。
  • 环境要求:脚本仅依赖 Python 标准库;地图 MCP 采集需对应 MCP 已连接。

核心工作流(Workflow)

Stage 0 · 地图 MCP 数据采集(v3.0 新增 · 人流量/商圈价值)

⚠️ 出境前必须显式 opt-in(安全红线):地图 MCP 是外部服务,调用会把目标 位置信息(地址 / 经纬度) 发送给地图服务商。在首次调用任何地图 MCP 工具前, 必须向用户明确说明"将把该铺位地址/坐标发送至地图服务商"并征得同意;用户拒绝则 直接进入纯本地降级模式(见下方"未连接 / 拒绝"分支),不得静默外发。 详见「安全与合规」章节与 references/map_mcp_guide.md 第六节。

若环境已连接地图 MCP(如 tencent-map)且用户已 opt-in,按 references/map_mcp_guide.md 的能力→工具→输出映射执行:

  1. 地理编码:地址 → 经纬度,写入 location.longitude/latitude。
  2. 人流量测量(代理):地图 MCP 不直接计数人头,但提供强代理——
    • 周边 POI 密度与业态构成(商业密度、消费水平推断);
    • 路网可达性(步行/驾车到地铁、公交、小区)。 同时要求用户补充现场分时段人工计数(午市/晚市/周末),填入 location.foot_traffic。
  3. 竞品分布:周边搜索(关键词=竞品品牌/品类,半径 500m)→ 映射为 competition[] (name / distance_m / scale_sqm),并保留 map_data.competitor_pois 供报告展示。
  4. 消费水平 & 商业密度:由 POI 分业态计数推断(阈值见 references/benchmarks.md 第十/十一节),写入 map_data.consumption_level / commercial_density / trade_area_type。
  5. 可达性:步行路线规划 → map_data.accessibility。

数据最小化:仅 location.address / 经纬度会被发送至地图服务商; financials(租金/装修/客单等)、red_flags、category 等商业与合规数据一律 只在本地参与计算,绝不外发。

未连接地图 MCP 或用户拒绝 opt-in 时:跳过本阶段,提示用户补充人工数据,并在报告中标注 ⚠️ 未接入地图 MCP / 未授权外发,以下为人工估算/待补(降级策略见 map_mcp_guide.md 第五节)。

Stage 1 · Reilly's Law(雷利零售引力定律)→ 商圈分析

  • 断裂点公式:D_ab = d / (1 + √(S_b / S_a))
    • d = 本店与竞品间距(m);S_a = 本店吸引力(面积);S_b = 竞品吸引力。
    • D_ab = 自本店起、顾客偏好从本店转向竞品的断裂点距离(km)。
  • 核心商圈半径 = 各竞品断裂点的最小值(受最近强竞品约束);无竞品时默认 1.5 km。
  • 有效捕获面积(Catchment Area)= π × 半径²(km²)。

Stage 2 · TQI(Traffic Quality Index,客流质量指数)

  • 原始日客流(Network Analysis 折算)= ((午市+晚市)×5 + 周末×2)/7 × 日曝光放大系数(4)。
  • 可视衰减因子 visibility_decay(angle):<30°→0.70;30–60°线性 0.70→1.00;≥60°→1.00。
  • 阻抗因子 impedance_factor:台阶×0.85、隔离带×0.70、挑高低×0.90、柱头×0.92、停车难×0.85(乘性叠加)。
  • TQI = 可视衰减 × 阻抗。修正后有效日客流 = 原始日客流 × TQI。
  • 捕获率(Capture Rate):按品类基准(快餐 3–5%、正餐 1–2%、茶饮 5–8% 等),中性用基准值, 悲观按竞品分流潜力 50% 实现折减。预计日翻台/客单 = 修正后有效日客流 × 捕获率。

Stage 3 · Hotelling 区位模型 → 竞争影响

  • 单竞品分流率:距离<100m 且规模相当时 20–40%(本店规模大→下探 20%,竞品规模大→上探 40%); 100–300m 线性衰减至 5%;≥300m 视为 0。
  • 综合分流率 = 1 − Π(1 − 单竞品分流率),上限 85%。

Stage 4 · 财务建模 + 三情景

  • 总投资 = 装修设备 + 首期租金(押+付) + 转让费。
  • 贡献毛利率 CM = 1 − cogs_ratio − opex_ratio;月固定成本 = 月租(opex 已按营收比例计入变动)。
  • 盈亏平衡点(月营收)= 月固定成本 / CM。
  • 三情景营收:乐观 = 中性 ×1.2(客流+20%);中性 = 修正客流×基准捕获×客单×30; 悲观 = 修正客流×悲观捕获(含竞争分流)×客单×30。
  • 月净利润 = 营收×CM − 月固定成本;回本周期 = 总投资 / 月净利润。
  • 置信区间 = [悲观回本, 乐观回本] 月;风险等级:≤12 Low / ≤18 Medium / ≤24 Elevated / >24 High。

Stage 5 · 品类选址建议(v3.0 新增 · 数据驱动)

调用 scripts/category_recommender.py,基于 map_data 中的商圈类型 / 消费水平 / 商业密度 / 竞争强度 + 分析引擎的 TQI + 合规硬伤,输出餐饮品类评分排序与回避清单:

  • 评分 0–100,绿(推荐)≥70 / 黄(慎选)50–69 / 红(回避)<50。
  • 核心逻辑(透明):商圈适配 + 消费匹配 + 商业密度 − 竞争敏感度×竞争强度 ± 消费溢价 ± TQI − 合规硬伤。
  • 冲动型低壁垒品类(茶饮/烘焙)对红海最敏感;高壁垒目的地品类(火锅/正餐)最抗竞争。

生成决策报告

调用 scripts/report_generator.py --json input.json [--map-json map_data.json], 自动整合 Stage 1–5 结论,输出面向餐饮选址决策人的 Markdown 报告(详见下节)。

输出规范:决策人 Markdown 报告

严格输出以下 7 节(由 report_generator.py 生成,含 ASCII/表格可视化):

一、决策摘要(一页结论)

  • 综合裁定:🔴红·终止 / 🔴红·高风险 / 🟡黄·条件推进 / 🟢绿·推进 + 一句话理由。
  • KPI 卡:有效日客流、预计日翻台、总投资、中性回本、回本置信区间、首选品类。
  • 核心结论 3 条(商圈 / 客流 / 财务)。

二、地图数据勘察(商圈价值)

  • 地理坐标、可达性(最近地铁/步行分钟)、消费水平、商业密度、商圈类型、业态构成(POI 计数)。
  • 地图核验链接(卫星/街景)。未接入 MCP 时标注人工估算。

三、商圈与客流(Space & Traffic)

  • Reilly 断裂点、有效捕获面积、TQI。
  • 客流漏斗 ASCII:原始日客流 → ×TQI → ×捕获率 → 日翻台。

四、竞争态势(Competition)

  • 逐竞品表(距离/规模/断裂点/分流率)+ 综合分流率。

五、财务预测(Financial Projection)

  • 三情景表(月营收/月净利润/回本周期)+ 回本区间 ASCII 条形(标注 12 月安全线、24 月警戒线)。

六、品类选址建议(Category Fit · 数据驱动)

  • 首选品类 + 回避清单 + 评分排序表(含等级/壁垒/投资/依据)。
  • 决策象限(消费水平 × 竞争强度 → 适配品类)。

七、行动清单(Action Plan)

  • 🟢 立即推进 / 🟡 签约前条件(谈判筹码:租金下调%、免租天数)/ 🔴 否决项(Red Flag)。

约束(Constraints)

  • 输出必须包含 置信区间,不得承诺确定性收益;明确"本结果仅为数据推演"。
  • 必须使用 GIS 术语(Buffer Zone、Network Analysis、Catchment Area、断裂点等)。
  • 若 red_flags 含消防/排烟/产权/排污硬伤 → 直接判定 "Red Flag: Project Termination", 输出强硬否决建议,不进入财务测算的乐观叙事。
  • 数据来源透明度:区分"地图 MCP 结构化数据"与"人工估算",不得混淆置信度。
  • 末尾标注:本测算基于行业平均值、空间经济模型与地图结构化数据,具体经营结果取决于实际运营能力。

安全与合规(Security & Compliance)

本 Skill 通过静态分析(无网络/子进程/eval/exec/文件外泄代码)与最小数据出境原则保障安全。 地图 MCP 是唯一的外部数据出境通道,对其使用受以下硬性约束:

  1. 出境前显式 opt-in(不可静默外发):在首次调用任何地图 MCP 工具前,必须主动向用户说明 "将把该铺位地址/坐标发送至地图服务商"并显式征得同意。用户拒绝则立即进入纯本地降级模式, 不得绕过、不得静默补发、不得用"已读默认同意"等话术默认授权。
  2. 数据最小化(Data Minimization):仅 location.address 与经纬度(地理编码所需)会被发送至 地图服务商;financials(租金/装修/客单等)、red_flags(消防/产权等合规硬伤)、category (拟选品类)等商业与合规敏感数据一律只在本地参与计算,绝不外发。地图返回的空间代理数据 (POI 密度/业态/可达性)亦仅用于本地分析,不回传任何第三方。
  3. 纯本地降级模式:未连接地图 MCP 或用户拒绝 opt-in 时,跳过所有地图调用,改用人工估算 推进,并在报告中明确标注 ⚠️ 未接入地图 MCP / 未授权外发,以下为人工估算/待补,不混入地图 数据的置信度。
  4. 触发透明:即使命中"选址/人流量/竞品"等宽泛关键词,也不会在取得 opt-in 前自动外发位置; 宽泛触发只用于启动"本地分析 + 询问是否采集地图数据"的对话,而非直接出境。
  5. 无隐藏行为:所有脚本仅用 Python 标准库,无 urllib/requests/socket/subprocess/eval/exec/ __import__/open(https...) 等任何联网或动态执行代码;本 Skill 不会写入、上传或外泄用户文件系统的 其他数据。

完整数据流与最小化细则见 references/map_mcp_guide.md 第六节。

少样本示例(Few-Shot,引擎实算)

Input(Spec 内置示例 JSON):新店001 / 正餐 / 可视角度 45° / 客流 2500·800·1800 / 竞品A 50m·150㎡ / 月租5万·3押1付·装修30万·客单45·COGS35%·OPEX25%。

执行链:

  1. python scripts/roi_calculator.py --demo → 量化结论(断裂点/捕获面积/TQI/三情景)。
  2. python scripts/category_recommender.py --demo → 品类排序。
  3. python scripts/report_generator.py --demo --map-json examples/demo_map_data.json → 决策人 Markdown 报告(见 examples/decision_report_demo.md)。

报告节选:

【决策摘要】综合裁定:🔴 红·高风险(中性回本 17.2 月,风险 High)
  有效日客流 9,763 人 | 预计日翻台 146 单 | 总投资 ¥50.0万
  回本置信区间 29.0–11.1 月 | 首选品类:火锅(黄·慎选)

【客流漏斗】原始 11,486 → ×TQI 9,763 → ×捕获率 146 单/日
【回本区间】乐观11.1 ███ 中性17.2 █████ 悲观29.0 ████████(超24月警戒线)
【品类】饱和商圈中目的地品类(火锅/正餐)相对优于冲动红海(茶饮),需差异化突围
【行动】租金下调10% + 45天免租期;排烟/产权硬伤一票否决

完整示例报告:examples/decision_report_demo.md(已随 Skill 附带,可由你直接审阅格式)。

参考资源

文档内容何时加载
references/benchmarks.md可视衰减/阻抗映射、品类捕获率、Reilly/Hotelling 模型、消费水平/商业密度分级、商圈类型、品类推荐矩阵、押付解析、GIS 术语表、假设说明每次测算引用基准与公式时
references/map_mcp_guide.md地图 MCP 能力→工具→输出映射、map_data schema、降级策略、安全与数据流(出境opt-in/数据最小化)、数据质量红线调用地图 MCP 采集数据时
scripts/roi_calculator.py精确分析引擎(Reilly/TQI/Hotelling/三情景/置信区间/Red Flag)用户提交 JSON 后执行
scripts/category_recommender.py数据驱动品类推荐引擎(评分矩阵/回避清单)Stage 5 执行
scripts/report_generator.py决策人级 Markdown 报告生成器(可视化/行动清单)最终输出报告

核心金句

  1. 流量不等于生意——TQI 把"通过人流"折算成"进店人流"。
  2. 断裂点告诉你:超出 X 米,顾客就归竞品了。
  3. 没有置信区间的选址建议,都是伪科学。
  4. 饱和商圈里,目的地品类比冲动红海更抗竞争——选品就是选护城河。
  5. 消防/排烟/产权硬伤,再便宜也是雷——Red Flag,直接终止。

评论与讨论

0/2000

还没有评论,分享你的体验吧。