54页买方研报拆解:单店经济模型与门店扩张空间测算

发布时间:2026/10/29 12:57:28
54页买方研报拆解:单店经济模型与门店扩张空间测算 简介这份由雪湖资本于2022年11月发布的瑞幸咖啡投资研究报告面向消费行业分析师、投资研究人员及关注新消费赛道的读者系统梳理瑞幸在经历风波后的商业模式重塑与投资价值。报告围绕饮料化咖啡扩大潜在市场、单店经济模型成立、直营与加盟结合、盈利门店经营杠杆及品牌护城河等投资逻辑展开并讨论市场竞争加剧、疫情后份额可能反转等风险因素。压缩包内含1个PDF文件共54页约2.42MB内容涵盖总结摘要、投资逻辑与风险、财务预测与估值以及公司发展历史和股东结构附录便于按章节研读。已有138人学习。读者可从中获取机构视角下的行业规模测算、门店扩张空间判断、单店模型与估值框架并借助风险提示和免责声明理解报告边界适合作为瑞幸及现制咖啡赛道研究、投资决策辅助和案例学习的参考材料。1. 拿到一份 54 页的买方研报别急着翻到目标价那一页上周有人把一份 54 页的 PDF 丢过来问的却是「这玩意儿能不能直接当单店经济模型的模板用」。这问题问到点子上了。市面上大多数投资研究报告读者只记得最后那个结论真正值钱的东西全在中间几十页饮料化咖啡怎么把客群从咖啡爱好者扩到现制茶饮人群、单店经济模型的量价成本怎么摆、门店扩张空间用什么口径倒推、哪些因素被单独拎出来当风险、哪些被降级成中性因素。这份报告的价值不在它看好谁而在于它把一条「品类假设 → 单店模型 → 门店数天花板 → 经营杠杆」的链路完整写了一遍中间每一步都留了可校验的数字。做消费研究的、搭连锁门店测算表的、想学买方怎么把论证写扎实的都能从里面抠出东西。下面按我自己的拆解顺序走能抄的参数、口径和排错点都放在中间几章。2. 研报骨架拆解54 页里真正能复用的只有四块一份几十页的研报目录往往写得比正文还花哨但拆开来看真正有复用价值的就四块品类与市场规模的重新定义、单店经济模型的损益结构、扩张路径与商业模式、风险与中性因素的切分。剩下的公司发展史、股东结构、附录图表属于背景板读一遍知道来龙去脉就行不值得抄。这四块之间有严格的依赖关系——品类定义错了市场规模就错了市场规模错了门店扩张空间就错了单店模型的口径不统一后面所有利润率、回本周期全是空转。我一般按依赖顺序拆先啃第一块再往下推中间任何一步卡住就回头查假设不硬往下算。2.1 投资逻辑链条从品类改良推到门店数报告最核心的一条论证链是把「饮料化」当成一个品类事件来处理而不是当成产品创新。它的推法是这样的先指出本土现制咖啡的人均消费杯数明显低于现制茶饮然后给了一个反直觉的归因——差距不是因为喝咖啡的人喝得少而是因为喝咖啡的人口渗透率低。这一句是整条链的支点。承认了这个归因后面 「把咖啡做成更接近茶饮口感的饮品就能把茶饮客群拉进来」 才成立客群一扩单店日均销量才有提升空间销量和单价同步抬升单店经济模型才从「跑不通」变成「成立」模型成立之后加盟加直营的组合才能既保住品牌力又跑出扩张速度门店数上去了才有经营杠杆和整体利润率抬升最后落到「已建立护城河」这个结论。我在拆这一步时会做一张逻辑链表格把每一环的结论、支撑证据、可证伪条件三列写清楚。可证伪条件那一列最关键它决定了这份研报是能被检验的分析还是一篇自说自话的叙事。链条环节报告给出的支撑可证伪条件咖啡渗透率低而非频次低人均杯数拆分、消费者调研若高频用户占比已接近茶饮则「扩客群」空间有限品类改良能扩大客群爆款产品销量与上新节奏若新品复购率持续低于经典款则增量是一次性的单店量价齐升日均杯量与均价两条曲线同向若均价提升靠折扣退出而非新品则不可持续加盟加直营可并行两种模式的门店占比变化若加盟店单店产出显著低于直营则扩张质量存疑门店数还有数倍空间分城市层级渗透率测算若低线城市单店回本周期拉长则天花板下移这张表我自己用了很久好处是把「信不信」变成「验不验」。表里第二列的数字全部来自报告图表第三列是我自己补的报告不会写可证伪条件但一份合格的买方研究读完你应该能替它写出来。2.2 单店经济模型一张瀑布表里藏着七个口径报告里最值得抄的是那张单店损益瀑布。它把一家店从「一天卖多少杯」一路推到「多久回本」中间每一层都单独列了占比。结构大致是单店日均商品销量 → 单个商品均价 → 月营收分含配送费和不含配送费两个口径→ 单个商品成本 → 毛利与毛利率 → 租金、人工、水电杂费、配送费各自占营收比例 → 门店层面利润率 → 资本开支 → 回本周期月。这张表看着朴素其实是整份报告技术含量最高的部分因为它把「口径」这件事摆在了明面上。举几个我拆的时候特别注意的点日均销量标注了「仅直营店」也就是说加盟店不进这个池子月营收做了含配送费和不含配送费两套毛利率和费用率必须和营收口径配套混用就全错成本端把原材料、租金、人工、水电、配送拆成五条独立占比而不是笼统给一个「运营成本率」这样任何一条异常都能定位到具体科目。拆这张表有个笨办法但很管用把它还原成一张纵向的计算表从左到右一列一列填每一列标注单位和口径凡是报告没写清楚的口径自己打一个问号标记后面用财报或调研数据去补。我拆完这份报告问号大概有六七个集中在「其他产品占比」「配送费收入是否计入单店营收」「资本开支是否含装修」这几处。这些问号不是报告写得差而是单店模型本身就必须由使用者自己定口径报告只提供一个参考系。2.3 风险与中性因素为什么「中性」要单独列这份报告在结构上做了一个我很欣赏的处理把不利因素拆成「风险因素」和「中性因素」两类而不是一股脑塞进风险栏。风险因素写了两条一条是潜在竞争加剧但短期不构成直接威胁另一条是外部冲击期间抢到的市场份额可能在之后反转中性因素只写了一条非核心业务短期对收入和利润贡献度低。这个切分方式值得学。风险是「可能推翻主逻辑」的东西中性是「不推翻主逻辑但会影响读数」的东西。把两者混在一起读者就没法判断哪个才是真正需要盯的变量。非核心业务贡献低不会动摇「单店模型成立」这个核心结论所以它不配叫风险但它会让整体利润率读数偏离门店层面的真实表现所以也不能不写。还有一个容易被跳过的部分报告开篇的利益披露。它明确写了作者方持有标的股票、可能因股价涨跌获利、也可能随时改变持仓且没有通知义务。这段话很多人直接翻过去我一般把它当成读研报的第一步——先确认作者站在哪再决定用多大力气信它的论证。有持仓披露不等于结论不可信但它意味着你读到的每一个乐观假设背后都可能有一个方向性的动机所以假设部分必须自己重算一遍不能照抄。3. 单店模型复现把量价成本拆成可算的列拆完骨架下一步是把那张瀑布表变成能跑数的东西。这一步的产出不是「复现报告结论」而是「得到一个能改参数的模型」——报告给的是某一时点的快照你要的是一个能回答「如果均价降两块会怎样」「如果日均销量掉五十杯会怎样」的工具。下面这套写法我在好几个连锁消费项目里都用过改改参数就能迁移。3.1 六行核心参数与取值口径在写代码之前先把参数定死。我一般只留六行核心参数其余全部由这六行推导避免参数爆炸导致没人敢改。参数口径说明报告里的位置常见错法日均商品销量仅直营店商品件数不是订单数单店模型首行用订单数当件数少算每单多杯现制饮品均价元/杯不含赠饮单店模型第二行用标价而非实际成交价其他产品占比占商品总数比例非营收占比销量结构拆分直接拿营收占比代入单个商品成本原材料口径不含包装耗材毛利测算段把配送包材算进原材料四项费用率租金、人工、水电、配送各自占营收费用段合成一个总费用率失去定位能力单店资本开支含装修与设备不含押金回本周期段漏算装修导致回本周期偏短这六行里最容易翻车的是第二行和第四行。均价必须用实际成交价报告在讨论价格时反复强调折扣退出对均价的贡献这说明标价和成交价之间有实实在在的差额如果直接拿菜单价代入算出来的毛利率会虚高一大截。成本那行则要注意包装和配送耗材的归属不同公司把它放在成本项还是费用项会让毛利率差出几个点做横向对比时必须统一。3.2 用 Python 把门店层面利润率算出来参数定完就可以落地。下面这段代码把「一天卖多少杯」推到「门店层面利润率」和「回本周期」所有口径在注释里标死改参数只改最上面那个字典。# 单店经济模型从日均销量推到门店层面利润率与回本周期 # 所有金额单位为元时间口径统一为「月」按 30 天折算 params { daily_items: 350, # 日均商品销量件仅直营店口径 drink_price: 15.0, # 现制饮品实际成交均价元/杯非标价 other_ratio: 0.08, # 其他产品占商品总数比例件数口径 other_price: 12.0, # 其他产品均价元/件 unit_cost_rate: 0.35, # 单个商品成本占其售价比例原材料口径 rent_rate: 0.12, # 门店租金占营收比例 labor_rate: 0.18, # 人工成本占营收比例 utility_rate: 0.03, # 水电及其他杂费占营收比例 delivery_rate: 0.05, # 配送费占营收比例 capex: 450000, # 单店资本开支含装修与设备不含押金 } def store_model(p): days 30 # 拆件数饮品件数与其他产品件数分开各用各的均价 total_items p[daily_items] * days other_items total_items * p[other_ratio] drink_items total_items - other_items # 营收按不含配送费口径算配送费单列为费用避免重复计入 drink_rev drink_items * p[drink_price] other_rev other_items * p[other_price] revenue drink_rev other_rev # 商品成本按各自售价乘以成本率 cogs drink_rev * p[unit_cost_rate] other_rev * p[unit_cost_rate] gross_profit revenue - cogs # 四项费用全部按营收比例计提 opex revenue * (p[rent_rate] p[labor_rate] p[utility_rate] p[delivery_rate]) store_profit gross_profit - opex margin store_profit / revenue payback_months p[capex] / store_profit if store_profit 0 else float(inf) return { 月营收: round(revenue, 0), 月毛利: round(gross_profit, 0), 毛利率: round(gross_profit / revenue, 4), 门店层面利润: round(store_profit, 0), 门店层面利润率: round(margin, 4), 回本周期(月): round(payback_months, 1), } print(store_model(params))逻辑说明分三层看。第一层是件数拆分把总件数按比例切成饮品和其他产品分别乘各自均价这一步决定了营收的准确性——报告里其他产品占比给的是件数口径如果拿它当营收占比用营收会系统性偏低。第二层是成本用「各品类售价 × 成本率」而不是「总营收 × 成本率」因为两类产品的成本率通常不同混算会在结构变化时失真。第三层是费用四项费用率全部挂在营收上这是零售业态的通行做法好处是费用随营收自动缩放坏处是忽略了租金和人工的阶梯性——真实世界里门店租金是固定金额营收跌到一定程度租金占比会跳升模型算不出来。参数怎么改daily_items和drink_price是两个主驱动做情景分析时优先动它们unit_cost_rate建议按品类分别设把字典里那一行拆成drink_cost_rate和other_cost_rate两个键capex一定要含装修报告在回本周期那段明确把装修计入资本开支漏掉这一项会让回本周期短好几个月这是血泪经验。3.3 敏感性分析杯单价和日均杯量谁更要命模型跑通之后第一件事不是看结果是看结果对什么敏感。我一般直接扫一个二维网格横轴日均件数、纵轴均价输出门店层面利润率格式化成百分比方便看。# 二维敏感性日均件数 × 实际成交均价 - 门店层面利润率 base dict(params) rows [] for items in [280, 320, 350, 380, 420]: row [] for price in [13.0, 14.0, 15.0, 16.0, 17.0]: p dict(base, daily_itemsitems, drink_priceprice) row.append(f{store_model(p)[门店层面利润率] * 100:5.1f}%) rows.append((items, row)) print(items\\price .join(f{p:6.0f} for p in [13, 14, 15, 16, 17])) for items, row in rows: print(f{items:10} .join(f{v:6} for v in row))跑完这张网格通常会看到一件事利润率对均价的敏感度明显高于对销量的敏感度因为均价直接乘在每一杯上而销量提升会同时带起成本和费用。这解释了一个现象——报告在讨论单店模型优化时把「折扣减少 高价新品」放在首位把「销量自然增长」放在其次顺序不是随便排的。反过来这也意味着如果均价是靠一次性提价换来的模型好看但不可持续后面第 5 章会专门讲这个坑。还有一处要留意网格里的结果是「稳态月」但真实门店有爬坡期新店头几个月销量远低于稳态。做回本周期测算时我习惯把第一年按爬坡曲线打折第二年才用稳态值否则回本周期会被系统性低估。这个折扣率报告里不一定给得自己按行业经验设通常首年按稳态的六到八成取。4. 门店扩张空间测算人均杯数法怎么落地单店模型回答的是「一家店赚不赚钱」门店扩张空间回答的是「能开多少家」。这两个数乘起来才是这门生意的天花板。报告在这一块的推法很典型用分城市层级的人口渗透率和人均消费杯数倒推可承载门店数再和现有门店数一比得出一个数倍的扩张空间。这套方法不难难的是假设怎么设、结果怎么校验。4.1 三层假设人口、渗透率、单店承载倒推模型只有三层假设但每一层都能把结果放大或缩小一倍。第一层是人口基数。要按城市层级分层因为不同层级的咖啡消费习惯差得很远。用户调研里有一个很值得注意的结论月购买频次随城市等级提高而增加也就是说低线城市的单店模型不能直接套用高线城市的频次参数。第二层是人均年消费杯数。这一层最玄学因为它是「渗透率 × 频次」的乘积而这两个因子经常被混着用。报告的归因很明确差距主要来自渗透率而非频次。这意味着提升空间应该主要从「多少人有喝的习惯」去估而不是从「喝的人能喝多少杯」去估——后者容易高估因为重度用户的比例是有天花板的。第三层是单店承载量也就是一家店一年能卖出多少杯。这一层直接决定分母通常用第 3 章的稳态日均件数乘以 365 得到。注意这里要用稳态值而不是爬坡期值否则算出来的门店数会虚高。4.2 分城市层级测算的实现把三层假设写成代码结构就清晰了。下面这段用一个简化的三层结构演示参数全部可调实际使用时把每个层级拆得更细即可。# 门店扩张空间测算人口 × 人均杯数 / 单店年承载量 tiers [ # 人口单位百万人cup_penetration喝现制咖啡的人口比例 # cups_per_user喝的人年均杯数两者乘积即人均年杯数 {tier: 一线, pop: 80, cup_penetration: 0.35, cups_per_user: 60}, {tier: 新一线, pop: 180, cup_penetration: 0.25, cups_per_user: 45}, {tier: 二线, pop: 250, cup_penetration: 0.18, cups_per_user: 35}, {tier: 三线及以下, pop: 700, cup_penetration: 0.10, cups_per_user: 25}, ] STEADY_DAILY_ITEMS 350 # 稳态日均件数来自第 3 章模型 DAYS 365 ANNUAL_CAPACITY STEADY_DAILY_ITEMS * DAYS total_stores 0 for t in tiers: # 人均年杯数 渗透率 × 喝的人年均杯数 cups_per_capita t[cup_penetration] * t[cups_per_user] # 总杯数百万杯换算成杯 annual_cups t[pop] * 1_000_000 * cups_per_capita stores annual_cups / ANNUAL_CAPACITY total_stores stores print(f{t[tier]:6} 人均年杯数{cups_per_capita:5.1f} f可承载门店{stores:8.0f}) print(f合计可承载门店约 {total_stores:,.0f} 家)逻辑说明核心是cup_penetration × cups_per_user这一步拆分。很多人直接把「人均年杯数」当成一个参数填进去结果每次调整都不知道该动哪个因子。拆成渗透率和频次之后调参就有了方向——如果判断低线城市的习惯培养还需要时间就压低渗透率如果判断重度用户还能增长就抬频次。这两个动作对结果的影响完全不同前者影响面广但慢后者影响面窄但快。参数怎么改STEADY_DAILY_ITEMS要和第 3 章的模型保持一致两处不一致是这类测算最常见的内部矛盾pop用常住人口而不是户籍人口口径要在表头写清楚cup_penetration这一列建议做三档情景保守/中性/乐观而不是给一个点估计因为这一层的误差最大。4.3 用头部品牌门店数做反向校验算出来的门店数一定要校验否则就是自娱自乐。我常用的校验方式有两种。第一种是横向对齐把同赛道几个头部品牌的现有门店数拉出来看算出来的天花板是现有头部品牌门店数的几倍。如果这个倍数大得离谱八成是渗透率给高了如果小得可怜八成是单店承载量给低了。第二种是纵向对齐看头部品牌从成立到现在的门店增速曲线反推它用了多少年达到当前规模再用同样的增速去检验「数倍空间」需要多少年兑现。这一步能筛掉很多「理论上限」——理论上还有十倍空间但按行业实际增速要三十年才能开出来那这个空间对当下的判断意义有限。校验维度做法结果偏差时的调整方向横向对齐对比同赛道头部品牌现有门店数倍数过大 → 下调渗透率纵向对齐用行业历史开店增速推兑现年限年限过长 → 下调频次假设单店反算用现有门店数反推单店年杯量反算值远高于模型 → 上调承载量这三种校验里单店反算最容易被忽略但最有用。拿现有门店总数去除该品类的总杯量得到的是一个「平均单店年杯量」把它和第 3 章的稳态值比一比两个数差太多说明有一边的假设站不住。我一般要求这两个数相差不超过两成否则不往下做估值。5. 避坑与排查复现这类研报最容易翻车的五处这类报告拆起来不难难的是别在口径上翻车。下面五条都是我在复现过程中真实踩过或者见别人踩过的每条按现象、原因、解决顺序写照着排查能省不少时间。5.1 月度数据和季度数据混着用现象自己算的单店月营收和报告图表对不上差个百分之十几怎么调参数都调不平。原因这类报告里的单店图表绝大多数是月度口径而公司财报披露的是季度累计数直接拿季度数除以三会引入季节因子误差——现制饮品的旺季在夏季淡旺季单店杯量能差两三成简单除以三得到的「平均月」根本不存在。解决所有数据先统一到月度季度数除以三之后要再乘一个季节调整系数系数用往年的月度分布反推。更稳的做法是只用报告图表的月度序列财报数据只用来校验年度总量不参与月度模型的参数标定。5.2 一次性科目重分类被当成经营恶化现象某一年的毛利率突然掉了一大截但同期单店杯量和均价都没怎么变看起来像是成本失控。原因这一年做了一次科目重分类把原本记在销售费用里的赠饮成本挪到了营业成本里。这不是经营变差是会计口径变了重分类前后不可比。解决做可比口径调整把重分类涉及的那部分金额从成本里还原回费用再算毛利率。判断方法很简单如果毛利率下降的同时销售费用率等额下降基本就是重分类不是真恶化。这条坑我吃过一次当时对着报表怀疑了半天运营效率最后发现是虚惊一场。5.3 同店增长的分母口径没对齐现象自己算的同店增速和报告给的差好几个点方向甚至相反。原因同店的定义没有统一。有的口径要求门店开业满 12 个月才计入有的要求满 15 个月有的剔除临时闭店有的不剔除加盟店是否纳入也各说各话。分母差一点增速就差很多。解决先看报告的脚注确认同店定义再按同一规则重算。如果脚注没写清楚就用「开业满 12 个月且期间未闭店超过 30 天」这个通用口径并在表头注明方便别人复核。另外注意新客稀释效应新开门店带来的低頻用户会拉低平均购买频次这会让同店增速在扩张期系统性偏低不是经营变差。5.4 直营店模型套到加盟店上现象把单店模型直接乘上总门店数去估公司营收算出来的数比财报高出一大截。原因直营店确认的是终端零售额加盟店确认的是卖给加盟商的原材料收入加加盟费两者差着好几倍。拿直营店模型乘以总门店数等于假设每家加盟店都按零售额结算必然高估。解决分开建两个模型。直营模型算终端零售加盟模型算「单店进货额 × 加盟店数 加盟费收入」两个模型的门店数分别取各自的存量。合并时注意内部交易抵消别把直营和加盟的营收简单相加。5.5 忽略披露与数据截止日现象拿着报告的结论直接用几个月后发现结论早就不成立了。原因报告开篇有持仓披露作者明确可能随时改变持仓且没有通知义务同时报告有明确的数据截止日截止日之后的经营变化不在分析范围内。这两条很多人直接跳过。解决读报告的第一步就是翻到免责和披露部分确认作者立场和数据截止日在笔记里写死「as-of 日期」。所有引用的数据都标注日期超过三个月的结论一律重新校验。做研究的后悔药就是日期标注事后追查时能救命。6. 进阶把一次拆解沉淀成可复用的模板拆完一份报告如果只是记住几个结论那这次拆解基本白做。真正划算的做法是把过程沉淀成模板下次换一家公司填数就能跑。我自己用的是三层结构假设层、模型层、校验层。假设层放所有需要判断的输入比如渗透率、频次、均价、成本率每个假设标注来源报告图表 / 财报 / 行业调研 / 自己估和可信度高/中/低。这一层的关键是区分「事实」和「判断」事实可以直接引用判断必须给区间。模型层放第 3 章和第 4 章那两段代码参数从假设层读不硬编码。校验层放第 4.3 节那三种反向对齐每次跑完模型自动打印偏差。下面这张表是我模板里固定的字段清单按它填不容易漏项层级字段填法假设人口渗透率分城市层级给保守/中性/乐观三档假设人均年杯数拆成渗透率 × 频次不合并填写假设实际成交均价用折扣后价格不用菜单价模型稳态日均件数用成熟门店剔除爬坡期模型四项费用率分开列不合成总费用率校验平均单店年杯量与模型稳态值偏差控制在两成内校验天花板倍数与头部品牌现有门店数对比异常则回查假设还有一个小技巧每次更新数据后不要只看新结果要看「哪个假设变了导致结果变了」。我一般在模板里加一行记录写下本次调整的参数和结果变动幅度跑上几次就能看出模型对哪个参数最敏感以后精力就往那一处放。这套东西积累下来比读十份报告都管用。最后说个习惯。从那以后我每次拆这类报告都强制自己先不看结论页从目录开始把每一章的图表标题抄一遍抄完再回头判断哪几页值得细读。这么做一开始很慢抄到第五份的时候速度就上来了而且能明显感觉到自己对「哪些论证是真材实料、哪些是包装」的判断力在提高。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询