拆解连锁咖啡看多研报:单店模型与扩张预测的验证方法

📅 发布时间:2026/10/11 18:01:24
拆解连锁咖啡看多研报:单店模型与扩张预测的验证方法
简介雪湖资本发布的《瑞幸咖啡投资研究报告》2022年11月54页是一份面向投资者、分析师及关注中概消费赛道人士的深度投研资料。报告围绕瑞幸咖啡的浴火重生系统拆解其商业重塑路径饮料化咖啡如何扩大市场规模、直营与加盟结合的模式如何提升扩张效率、盈利门店如何带来经营杠杆并明确给出目标市值与股价预测。风险因素部分同样完整涵盖行业竞争加剧、疫情红利消退等不确定性。文件包为单个PDF文件大小2.42MB便于直接阅读和检索已有137人学习。通过这份报告读者不仅能梳理瑞幸的护城河和单店经济模型还能学习其复兴过程中的关键决策与财务测算思路形成从商业模式、财务预测到风险判断的闭环分析能力为独立评估咖啡赛道公司提供参考。1. 《雪湖资本-瑞幸咖啡投资研究报告中-2022.11-54页》到底在讲什么一份想说服你长期看多的投研拆解这份PDF被转到我手上时群里已经在讨论它是不是又一个“咖啡信仰充值包”。文件名里信息很足发布方是对冲基金背景的团队标的是从造假风波里爬出来的连锁咖啡品牌时间是2022年11月恰好卡在当年三季报之后。它要回答的问题不复杂这家公司能不能从“恢复增长”走到“稳定盈利”以及什么价格才算有安全边际。这篇文章不替你复述那54页内容而是把这类看多研报的骨架拆开给你一套能照着复现的单店模型测算模板再讲清楚哪些参数最容易被乐观假设带偏。适合两类人想认真评估这家公司基本面的人以及想把这套方法迁移到其他连锁业态的从业者。2. 研报分析的骨架咖啡连锁的四层递进从行业空间到单店模型我拿到一份这类报告习惯不是先翻结论页而是先看它怎么搭结构。头部机构的行业研报高度模板化但模板本身恰恰是信息先讲赛道空间再讲单店模型然后讲扩张路径最后给利润预测与估值。四层结构层层递进每一层都在为下一层提供输入。如果你读到的报告跳过了其中某层比如直接给你利润预测却不给单店假设那这份报告的透明度就要打问号。这套框架之所以被反复使用是因为连锁消费的利润预测本质上是一个乘法结构利润等于门店数量乘以单店利润再乘以公司层面的费用率。任何一个因子的微小偏差在乘法结构里都会被逐层放大。所以读报告的第一步不是判断结论对不对而是把每一层的假设原文摘出来单独验证。2.1 行业空间测算为何所有连锁消费报告都从人均杯数讲起行业空间是估值天花板。常见做法是先给一个总量公式市场容量等于目标人口乘以咖啡渗透率再乘以年人均消费杯数与单杯价格。四类参数里人口是相对确定的渗透率有调研数据支撑单杯价格可观测唯一需要拍脑袋的是“人均杯数增速”。这一层的核心矛盾在于渗透率提升的叙事很难被证伪但它决定了五年后门店总数的上限。我一般会做两件事。第一把报告里引用的市场容量数字拆成上述四个因子看哪个因子贡献了最多的增长。第二用城市层级做交叉验证一线城市咖啡渗透率已经很高增长主要靠杯数提升下沉市场的杯数很低增长主要靠门店渗透。如果一份报告只用全国平均渗透率讲故事那它对区域差异的敏感度就偏弱五年预测的置信度要下调。2.2 单店经济模型把一杯咖啡拆成收入与成本的九个参数单店模型是整个报告的承重墙。门店拆解的逻辑是单店收入等于日均销量乘以客单价再乘以营业天数单店利润则是从这个收入里依次扣掉原材料、人工、租金、水电杂费和折旧。九个参数里日均销量和租金占比是最大的两个变量。销量决定收入上限租金决定成本刚性这两个参数一旦偏离真实值单店利润会被成倍拉偏。成熟标的的单店模型通常落在以下区间仅供参考不构成任何投资建议参数含义常见健康区间需要警惕的信号日均销量每天出杯数400-600杯外卖占比过高导致忙而不赚客单价实际到手均价14-18元促销期均价下探超过10%原材料占比原料成本/收入40%-48%占比持续上行说明提价能力弱租金占收入月租/月收入低于20%商场店续约时普遍涨租15%起回本周期总投资/单店月净利8-18个月超过24个月基本不能碰单店模型的输出不只是单店利润还有一个关键中间变量现金回本周期。这个指标能把“账面盈利”和“真实可复制”区分开。回本周期短意味着加盟商有动力持续开店扩张不需要太多自有资金回本周期长加盟商就会躺平门店网络增长一定会放缓。2.3 自营与加盟的报表口径扩张速度取决于哪种现金流连锁咖啡普遍采用自营加加盟并行的结构但两种模式对报表的影响完全不同。自营门店的收入全额确认收入规模大、毛利率薄、资本开支重加盟门店的终端收入不进报表公司确认的是向加盟商销售原料、设备和收取加盟费对应的供应链收入毛利率高、收入规模小。行业报道和研报里常用的“终端销售规模”是GMV口径和财报收入往往是两倍以上的差距。读报告的判断点是扩张预测里如果把加盟门店按自营门店的单店收入去算收入预测就会系统性虚高。反过来如果只看财报收入不看GMV又会低估品牌对加盟体系的控盘能力。正确做法是把两类门店拆开建模自营看收入与利润加盟看供应链毛利与门店增速之间的领先滞后关系。2.4 利润预测与估值锚点乘法结构如何把乐观吹大三倍利润预测是整个报告的终点。它的结构是公司净利润等于自营门店利润加加盟供应链利润再减去总部费用与税费。总部费用包含研发、管理和营销在扩张期通常会增长但不少报告假设总部费用增速远低于收入增速这一条本质上在赌规模效应可以持续释放。规模效应确实存在但它不是线性的门店密度达到某个水平后管理半径和品控成本会重新抬头。估值锚点随之而来。报告给出的目标价通常是基于几年后的预期利润乘以一个目标市盈率再贴现回来。这里的弹性非常大门店数多预测一成单店利润多预测一成市盈率多给五倍三者叠加后的目标价可能比中性假设高出百分之三四十。所以不要只记住目标价要把目标价拆回门店数、单店利润和市盈率三个输入分别问一句“这个数是否激进”。3. 把研报观点变成能复现的测算表用 Python 重建门店扩张与利润模型读完结构之后下一步是动手把报告里的观点变成自己的测算表。我习惯用 Python 做这件事原因很简单门店扩张是多年度的循环计算Excel 也能做但参数改起来没有脚本方便敏感性分析更是要重复操作。下面这套代码不针对任何特定公司参数全部用演示值你可以把财报或研报里读到的数字直接替换进去。3.1 输入数据准备四张指标卡的字段与口径动手写代码前先把输入整理成四张表门店数据、单店模型参数、扩张计划、费用率假设。门店数据要区分自营和加盟的期末数量、全年净增数量单店模型参数需要日均销量、客单价、原材料占比、月租金、月人工、月水电扩张计划按年度给出自营与加盟各自的新增门店数费用率假设单独记录总部费用占收入的比重。口径统一为年度避免混入季度数据。# 四张指标卡演示数据替换为标的公司最新披露值 store_data { self_owned: 6000, # 自营门店期初数 franchise: 3000, # 加盟门店期初数 } unit_model { daily_cups: 500, # 日均销量杯 price: 15.5, # 客单价元 material_ratio: 0.45, # 原材料成本占收入比 rent: 22000, # 月租金元 labor: 32000, # 月人工与社保元 other: 9000, # 水电、杂费等元 } expansion_plan { self_owned_new: [900, 1000, 1100, 1200, 1200], # 五年自营净增 franchise_new: [1200, 1100, 1000, 900, 800], # 五年加盟净增 } overhead_ratio 0.12 # 总部费用占收入比例这里需要特别说明“净增”和“新开”的区别。净增是期末减期初的门店数已经扣除了关店。扩张计划应该用净增而不是新开因为连锁业态每年都有一定比例的门店关闭如果只按新开数预测收入会高估。演示数据里自营净增逐年走高加盟净增逐年回落代表模型假设品牌逐步从加盟扩张转向自营深耕这是一种常见的战略叙事不是固定规则。3.2 单店月度利润测算先算 EBITDA 再谈净利单店模型直接从指标卡里读取参数先算收入再扣变动成本和固定成本得到单店月度EBITDA。注意这里刻意不直接算净利润因为折旧和税费在门店层面经常由不同主体承担自营门店的折旧在公司报表里加盟门店的折旧由加盟商承担。先把EBITDA算清楚后面做公司和门店的分拆才不会打架。def store_monthly_ebitda(m, days30): revenue m[daily_cups] * m[price] * days material revenue * m[material_ratio] gross_profit revenue - material ebitda gross_profit - m[rent] - m[labor] - m[other] return revenue, ebitda rev, ebitda store_monthly_ebitda(unit_model) print(f单店月收入: {rev:,.0f} 元) print(f单店月EBITDA: {ebitda:,.0f} 元)逻辑上这个函数做了三件事先用量价乘出月收入再用原材料占比算毛利最后把租金、人工、水电作为固定成本一次扣掉。参数里最容易翻车的是租金一线城市核心商圈和下沉市场社区店的月租金可以差出三四倍用平均值做单店模型没有意义。所以这个函数更适合用来做分层测算比如把门店分成商圈店、写字楼店、社区店三档分别给参数而不是只跑一个全国平均。如果运行结果里单店月EBITDA接近零说明日均销量或租金参数有一个偏离了健康区间。不要急着改参数让结果好看而是回头检查报告里引用的单店数据是开业满一年的成熟店还是包含大量新店的加权平均新店有爬坡期前三个月销量普遍低两到三成单店模型如果直接用稳态参数会高估短期利润。3.3 五年门店扩张预测自营看资本开支加盟看供应链毛利有了单店EBITDA接下来把门店扩张和收入预测连起来。这里的关键是自营和加盟分开算自营门店用终端收入乘以单店数量得到报表收入加盟门店只贡献供应链收入通常是加盟商向公司采购原料产生的毛利。演示代码里用“单店年供应链收入”这个参数来简化加盟端。def forecast_years(store, unit, plan, years5): rows [] self_owned store[self_owned] franchise store[franchise] annual_rev 0 # 单店年收入与单店年供应链收入演示值 rev_per_self 1800000 # 自营单店年收入 supply_rev_per_fran 120000 # 加盟单店年供应链收入 for y in range(years): self_owned plan[self_owned_new][y] franchise plan[franchise_new][y] self_rev self_owned * rev_per_self fran_rev franchise * supply_rev_per_fran total_rev self_rev fran_rev annual_rev total_rev # 演示用累计实际可按年输出 rows.append([y 1, self_owned, franchise, total_rev]) return rows for row in forecast_years(store_data, unit_model, expansion_plan): print(f第{row[0]}年: 自营{row[1]}家 加盟{row[2]}家 收入合计{row[3]:,.0f}元)这段代码里自营单店年收入与加盟单店年供应链收入之间大概有十几倍的差距这是因为两者的确认范围本来就不是一回事。报告中如果要验证收入预测最直接的办法是把测算结果和公司披露的季度收入做对照。预测模型建好之后至少要做一次“回看校验”用模型跑最近三年拿实际收入去撞模型输出误差超过百分之十就必须回头检查参数。3.4 三变量敏感性测试哪些参数的坑不能踩模型跑完第一版之后不要直接去看结果而是做敏感性测试。最常见的做法是对日均销量、客单价、租金三个最不确定的变量各给一组悲观和乐观值观察利润或收入的变化幅度。三个变量里日均销量的不确定性最高因为它受季节、促销、竞争店开业影响波动范围可以到正负两成。客单价相对稳定但促销期的实际均价会明显下移。租金则是一年一签的重定价变量续约涨租在核心商圈几乎是必然事件。敏感性的意义在于定位“承重参数”。如果收入或利润对某个参数特别敏感那这份研报的结论就在很大程度上依赖这个参数的成立你后续跟踪财报时就要优先盯它。不要一次性同时改所有参数否则你分不清是哪个假设在推着结论走。三变量分别跑一遍再挑两个最敏感的组合跑一次极端场景基本就能看到这份预测的韧性边界。4. 读看多研报必须绕开的五个坑乐观假设、报表口径与幸存者偏差研报读得多了你会发现看多报告最常见的特征不是数据造假而是选择性呈现。数据是真的但边界条件常常被模糊处理。以下是这类研报里高频出现的五类坑每一条我都踩过写出来供你对照。4.1 现象净利率预测比公司历史峰值高出一截不少看多报告预测的净利率会比公司过去三年的历史峰值高出两三个百分点。表面原因是规模效应释放实际上模型通常做了两个隐藏假设一是总部费用增速远低于收入增速二是补贴和促销费用大幅收缩。这两个假设在逻辑上存在互斥关系因为补贴收缩会直接影响销量增长而销量增长又是收入增速的来源。解决的办法很简单把报告的净利率预测拆回费用率。看总部费用占收入的比例从当前值下降到预测值的路径如果下降速度超过每年一个百分点就要找依据。费用率的改善通常是台阶式的而不是线性的指望每年平滑下滑往往过于理想。4.2 现象同店增速假设与宏观消费数据对不上有些报告给的同店销售增速长期维持在百分之八以上但同期社会消费品零售中的餐饮收入增速只有个位数。同店增速本质上是价格与销量的乘积如果客单价没有明显提升同店增速就只能靠销量拉动而销量增长必然受制于商圈人流和消费频次。研报里很少解释“同店增长从哪里来”默认顾客消费频次会自然提升。我习惯把同店增速和社会餐饮零售额增速放在同一张图里看。如果报告的假设长期高于宏观数据就需要一个额外的催化剂说明比如新品驱动、门店改造、外卖占比提升。没有具体驱动因素的同店假设本质上是在赌消费升级这种赌注在扩张期很难被证伪但一旦宏观走弱回撤会非常快。4.3 现象加盟与自营混合口径下的收入虚高部分报告讲收入规模时用的是GMV口径也就是所有门店的终端销售额而公司财报收入只有自营收入加加盟供应链收入。两个口径之间的差距可能达到销售额的三成甚至更多。当报告正文强调“突破多少家门店”“销售规模达到多少亿”时要特别警惕是否混用了口径。检查方法把报告中引用的收入与公司财报收入做一次比值计算。如果比值接近一比一说明只看自营如果明显大于一就是包含了加盟终端流水。加盟占比越高的品牌这个口径差异越大。看多逻辑如果建立在GMV增速上那你至少要确认利润增长是否跟得上GMV本身不产生报表利润。4.4 现象把管理层指引当成研报必然结论管理层在业绩会上的指引通常偏保守但在品牌向上周期里指引会被市场理解成下限。于是研报经常做的一步是在管理层指引基础上再上浮一定比例当作自己的中性预测。问题是管理层的指引有其自身立场它既要给市场信心又不愿承担超预期落空的责任这个折中的结果未必是真实经营状态的映射。我的处理方法是给三类数据分权重已实现的财报数据权重最高月度经营数据次之管理层指引只能作为参考下限。报告中如果出现“我们预计超过公司此前指引”这类表述要去看它给出的额外增长来源是什么。没有具体来源的超额预测情绪成分多于分析成分。4.5 现象只看中篇忽略系列研报之间的假设修正标题里的“中”字提示这是一份系列报告。系列报告最有价值的信息往往不是本期的结论而是相对上期修正了什么。如果上期预测的门店数被下调但收入预测反而上调意味着单店收入假设变得更强如果收入预测没变但利润预测上调意味着费用率或毛利率假设被修正。系列之间的差异能直接告诉你报告团队自己认为哪些地方此前看错了。拿到一份中篇报告先找它和上篇或下篇交集的预测指标做一个简单的差值表。修正方向与幅度比本期结论重要得多因为本期的结论已经在价格里反映而修正方向代表增量信息。忽略这个对比等于把最有价值的半页纸扔掉了。5. 方法论迁移用单店模型给连锁消费标的做体检这套从咖啡研报里拆出来的框架不只是用来读报告。我后来做其他连锁消费标的评估时几乎原样把它迁移过去了。餐饮、茶饮、烘焙、便利店单店模型的核心变量大同小异无非是把客单价换成对应品类把原材料占比换成该行业的食材或进货成本占比。真正需要改的是判断标准不同业态的合理回本周期和租金占比差异很大。5.1 第一步判断这生意赚单店的钱还是扩张的钱连锁生意分两种单店利润很厚但门店数量天花板明显比如高端正餐单店利润一般但门店网络可以无限加密比如咖啡和茶饮。前者的价值核心在单店模型的利润率后者的价值核心在扩张速度与供应链效率。如果一个标的单店利润一般门店增速也在放缓那它两个钱都赚不到直接淘汰。评估时我会算一个“扩张效率”指标最近两年净增门店数除以同期资本开支或加盟相关收入增速。净增门店很多但资本开支消耗巨大说明自营扩张在烧钱换规模净增门店很多但供应链收入增速跟不上说明加盟商可能没有从公司采购全部原料品牌对品质的控盘力存疑。5.2 用“现金流拐点”淘汰伪成长门店网络门店网络的质量要看现金流而不是会计利润。有一个我经常用的观察方法把累计净增门店数画一条曲线同时把单店模型里的回本周期叠加进去。当净增门店数持续高于“回本周期内可以消化”的数量时说明大量新店还在爬坡期利润表上的收入增长带着较多水分。等到新增门店数量放缓而收入增速没有同步下滑说明老店同店增长在扛大梁这才是现金流的真实拐点。很多标的在扩张期讲的故事是门店数增长但在现金流拐点出现之前扩张的每一家店都在占用资金。看多研报通常会把注意力放在收入曲线的前半段你要自己把现金流的后半段画出来。回本周期越长这个拐点来得越晚中间的风险敞口越大。5.3 一张检查清单与三个一票否决信号把前面所有分析项收敛成一张检查表方便对新标的快速打分。这份表我一般用在正式建模之前先把不合格的排除掉避免在垃圾标的上浪费时间。检查项验证方式通过标准单店回本周期模型测算自营低于24个月加盟低于18个月同店增速来源财报拆解有明确驱动因素不只是宏观叙事扩张口径财报与GMV对比口径混用程度低增速可解释现金流拐点净增门店与回本周期对比增速放缓时收入未同步恶化管理层指引依赖度历史指引兑现率过去两年指引偏差在10%以内三个一票否决信号分别是单店模型在悲观参数下EBITDA转负加盟收入增速连续三个季度低于门店增速门店净增数量连续两个季度为负而利润预测还在上行。三者的共同点是模型输出与实际经营数据方向背离出现任何一个都不该继续在预测模型上花时间。5.4 三个推翻看多研报的关键信号同店增速连续两个季度低于研报隐含水平时看多逻辑的第一根支柱就断了。门店扩张预测可以因为开店节奏延后而自动下调但同店增速是单店模型的底座底座下滑不是延后能解决的。第二个信号是租金成本占比上升通常出现在续约节点或新店选址下沉能力不足时这直接侵蚀单店模型的利润率。第三个信号是加盟供应链收入占加盟门店总数比例下降说明加盟商开始寻找外部货源品牌对网络的控盘力在松动。这三个信号有一个共同点都可以从季度财报里直接观察到不需要额外调研。所以读研报不是终点把研报结论转成可跟踪的季度指标并建立预警线才是这套方法完整落地的方式。6. 验证一份看多研报的终局把每一条核心结论写成可证伪条件拿到一份看多研报我最后一定会做一件容易被人忽略的事把它的核心结论转换成“如果错了会看到什么信号”的清单。研报不会自己写这些因为它们的目标是说服而我的目标是验证。转换完成之后这份54页的报告在我手里就缩成了半页纸的观察指标后续每个季度只需要花十分钟核对。研报核心论点可观察数据证伪条件门店扩张加速季度净增门店数连续两季度净增低于预测的八成单店收入提升单店月均收入连续两季度单店收入同比下滑毛利率改善季度毛利率低于研报隐含水平两个百分点总部费用摊薄费用率费用率连续两季度不降反升加盟体系健康供应链收入与门店数比值比值连续三季度下降我自己的习惯是把这个清单存在手机备忘录里每个季度财报发布当天拿出来逐项核对并且只记录实际值和预测值的差值不做解释。半年之后回看哪些研报在讲事实哪些在讲愿望差距非常清楚。这个方法帮我避开过不止一个看起来逻辑自洽的成长故事也希望帮到你。本文还有配套的精品资源点击获取