houguyin-ch7-opportunity.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. // 江中猴菇饮 · Ch7 新机会 × 新场景 × 新人群(3 子章)
  2. // 7.1 新机会 · PPI 离断过渡饮
  3. // 7.2 新场景 · "送胃"礼品赛道
  4. // 7.3 新人群 · 糖友无糖版 + 夜宵族
  5. const HGY = require('./houguyin-analyze.js');
  6. const C = require('./houguyin-components.js');
  7. const { BRAND, esc, renderVocCard, renderInsightHero, renderDecisionList, renderTheoryBox, renderStatStrip, renderBarChart, renderSectionHead } = C;
  8. // ================================================================
  9. // 7.1 · 新机会 · PPI 离断过渡饮
  10. // ================================================================
  11. function renderSub7_1(ctx) {
  12. const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
  13. const items = data.items || [];
  14. const real = items.filter((it) => it.source === 'real-collected');
  15. const ppiDep = HGY.getEvidence(real, { tag: 'PPI 依赖焦虑', top: 8, seed: 11 });
  16. const ppiAll = HGY.filterByHypothesis(real, 'H4').concat(HGY.filterByHypothesis(real, 'H3').filter((it) => /拉唑|ppi|奥美|雷贝|艾司/i.test(it.content || '')));
  17. const ppiHighLike = HGY.topByLikes(ppiAll, 4);
  18. const combinedVoc = [...ppiDep, ...ppiHighLike]
  19. .filter((it, i, arr) => arr.findIndex((x) => x.id === it.id) === i)
  20. .slice(0, 6);
  21. const personas = [
  22. { key: 'U1', color: BRAND.TECH_BLUE, name: '长期服用者 · 8-10 年', n: '2000万+',
  23. desc: '医生最初开的拉唑一吃就是8-10年 · 想停但每次停都反弹 · 对饼干/米稀不屑但愿意试"医生/营养师推荐"的饮',
  24. vocClue: '"反流性食管炎10多年了 奥美拉唑几乎没停过 人都搞抑郁了"' },
  25. { key: 'U2', color: BRAND.WARM_ORANGE, name: '焦虑服用者 · 1-3 年', n: '500万+',
  26. desc: '刚吃上 PPI 1-3 年 · 看科普越多越焦虑 · 想找食疗搭配 · 对江中品牌有基础信任',
  27. vocClue: '"医生告诉我如果已经依赖拉唑 就得配合养胃的慢调 比如食疗"' },
  28. { key: 'U3', color: BRAND.PURPLE, name: '已停药复发者', n: '300万+',
  29. desc: '曾经停过 · 停后胃酸反跳性爆发 · 怕再吃但症状受不了 · 最愿意试过渡方案',
  30. vocClue: '"停药综合征太难受了 比原来的胃病还折磨"' },
  31. { key: 'U4', color: BRAND.JIANG_GREEN, name: '家属代购者', n: '~1000万',
  32. desc: '子女/配偶看父母/伴侣长期吃 PPI 着急 · 主动寻找替代 · 愿意为"温和日常"付溢价',
  33. vocClue: '"我爸吃拉唑快 10 年了 我一直想给他找个食疗代替 但怕乱推荐反而不好"' },
  34. ];
  35. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  36. <div class="section-inner">
  37. ${renderSectionHead({
  38. eyebrow: `${c.num}.${subIdx} · 新机会 #1`,
  39. title: '<span style="color:' + BRAND.TECH_BLUE + ';">PPI 离断过渡饮</span> · 接住胃药焦虑的巨大溢出',
  40. subtitle: '2727 条真实 VOC 里,H3+H4 合计 <strong>超过 1000 条</strong>评论在讲"想停 PPI 但不敢" · 这是猴菇饮最大、最明确、最急迫的长尾赛道。',
  41. color: BRAND.TECH_BLUE,
  42. })}
  43. ${renderStatStrip([
  44. { num: '4000万+', label: 'PPI 活跃用户总盘', color: BRAND.TECH_BLUE },
  45. { num: '35-45%', label: '明确想减量/替代', color: BRAND.WARM_ORANGE },
  46. { num: '1500万', label: '强需求人群(保守)', color: BRAND.CORAL },
  47. { num: `${ppiAll.length}`, label: 'PPI 相关真实 VOC', color: BRAND.JIANG_GREEN },
  48. { num: '20-40亿', label: '保守年规模预估', color: BRAND.DEEP_AMBER },
  49. ], { accent: BRAND.TECH_BLUE })}
  50. <div class="grid" style="grid-template-columns:1.3fr 1fr; gap:24px; margin-top:28px;">
  51. <div>
  52. <div class="text-mono text-xs" style="color:${BRAND.TECH_BLUE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC 真实证据 · PPI 依赖痛点</div>
  53. <div style="display:flex; flex-direction:column; gap:12px;">
  54. ${combinedVoc.slice(0, 4).map((it) => renderVocCard(it, { accent: BRAND.TECH_BLUE, compact: true })).join('')}
  55. </div>
  56. </div>
  57. <div>
  58. <div class="text-mono text-xs" style="color:${BRAND.TECH_BLUE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">4 类子人群 · 接住策略</div>
  59. <div style="display:flex; flex-direction:column; gap:12px;">
  60. ${personas.map((p) => `
  61. <div style="padding:14px 16px; background:var(--bg-1); border:1px solid var(--border); border-left:3px solid ${p.color}; border-radius:6px;">
  62. <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:4px;">
  63. <div class="text-mono text-xs" style="color:${p.color}; font-weight:700; letter-spacing:0.1em;">${p.key} · ${esc(p.name)}</div>
  64. <div style="color:${p.color}; font-family:var(--font-mono); font-size:0.8rem; font-weight:700;">${esc(p.n)}</div>
  65. </div>
  66. <div style="color:var(--text-2); font-size:0.78rem; line-height:1.55; margin-bottom:6px;">${esc(p.desc)}</div>
  67. <div style="padding:6px 10px; background:${p.color}08; border-radius:4px; color:var(--text-1); font-size:0.72rem; font-style:italic; line-height:1.5;">${esc(p.vocClue)}</div>
  68. </div>`).join('')}
  69. </div>
  70. </div>
  71. </div>
  72. ${renderTheoryBox({
  73. theory: 'JTBD × 医学逻辑 · 不替代 PPI · 做"减量路上的伴侣"',
  74. accent: BRAND.PURPLE,
  75. mapping: `
  76. <strong style="color:${BRAND.TECH_BLUE};">定位公式</strong> = "<em>PPI 减量期间温和日常维持饮</em>" —— 不宣称替代 PPI 疗效(规避医疗宣称风险),但主打"<strong>帮用户建立可持续的温和管胃习惯</strong>";<br/>
  77. <strong style="color:${BRAND.WARM_ORANGE};">JTBD Functional</strong>:每天一瓶 · 胃部感受的主观改善;<br/>
  78. <strong style="color:${BRAND.JIANG_GREEN};">JTBD Emotional</strong>:摆脱"药瘾者"心理身份 · 重获对自己的胃的掌控感;<br/>
  79. <strong style="color:${BRAND.ROSE};">JTBD Social</strong>:告诉家人/同事"我在主动养胃 不是被动吃药"。`,
  80. })}
  81. ${renderDecisionList([
  82. `<strong>产品形态</strong>:300ml 日常装 + 90 天组合装(PPI 减量 12 周疗程关联)`,
  83. `<strong>定价策略</strong>:12-15 元/日 · 与 PPI 日费用持平 · 建立"等价替代"心理锚点`,
  84. `<strong>渠道重点</strong>:消化科医院周边药店 / 胃病管理 APP / 私域社群`,
  85. `<strong>教育内容</strong>:《PPI 减量日记》社群 + 与医生合作科普 + 真实用户故事`,
  86. `<strong>合规边界</strong>:不说"替代拉唑" / 不说"治疗胃病" · 只说"温和日常维持"`,
  87. `<strong>KPI · 18 月</strong>:PPI 焦虑人群的自报复购占比 >40%`,
  88. ], { title: '决策 · PPI 过渡饮 6 条落地', accent: BRAND.TECH_BLUE, columns: 2 })}
  89. </div>
  90. </section>`;
  91. }
  92. // ================================================================
  93. // 7.2 · 新场景 · "送胃"礼品赛道
  94. // ================================================================
  95. function renderSub7_2(ctx) {
  96. const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
  97. const items = data.items || [];
  98. const real = items.filter((it) => it.source === 'real-collected');
  99. const giftVoc = HGY.getEvidence(real, { tag: '送礼', top: 5, seed: 13 });
  100. const giftAll = HGY.filterByHypothesis(real, 'H8');
  101. const giftFallback = HGY.topByLikes(giftAll, 4);
  102. const voc = [...giftVoc, ...giftFallback].filter((it, i, arr) => arr.findIndex((x) => x.id === it.id) === i).slice(0, 5);
  103. const scenes = [
  104. { key: 'S1', color: BRAND.ROSE, scene: '春节回家', time: '腊月-正月', target: '父母',
  105. alt: '阿胶 / 蜂蜜 / 黄芪精', advantage: '日常饮 · 父母真能喝完 · 比阿胶轻便' },
  106. { key: 'S2', color: BRAND.DEEP_AMBER, scene: '中秋/端午', time: '8-9月', target: '父母/长辈',
  107. alt: '月饼 / 茶叶礼盒', advantage: '节日健康替代 · 告别糖分月饼 · 贴合养生话题' },
  108. { key: 'S3', color: BRAND.WARM_ORANGE, scene: '节前拜访客户', time: '年底 / 季度末', target: '客户 / 领导',
  109. alt: '白酒 / 保健品 / 土特产', advantage: '体面 · 不落俗套 · 健康话题破冰' },
  110. { key: 'S4', color: BRAND.JIANG_GREEN, scene: '员工关怀 / 团队福利', time: '节日 / 年末', target: '团队',
  111. alt: '茶叶 / 零食礼盒 / 咖啡', advantage: '全员适用 · 健康形象 · 企业定制化' },
  112. ];
  113. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  114. <div class="section-inner">
  115. ${renderSectionHead({
  116. eyebrow: `${c.num}.${subIdx} · 新机会 #2`,
  117. title: '<span style="color:' + BRAND.ROSE + ';">"送胃"礼品</span>赛道 · 对标阿胶的细分空白',
  118. subtitle: '中国送礼市场年规模 <strong style="color:' + BRAND.ROSE + ';">5000 亿</strong> · "送胃"品类几乎空白 · 猴菇饮是第一个有机会建立品类认知的产品。',
  119. color: BRAND.ROSE,
  120. })}
  121. ${renderStatStrip([
  122. { num: '5000亿+', label: '送礼市场年规模', color: BRAND.ROSE },
  123. { num: '8%', label: '健康礼品占比', color: BRAND.DEEP_AMBER },
  124. { num: '0', label: '"送胃"明确品类', color: BRAND.JIANG_GREEN },
  125. { num: `${giftAll.length}`, label: '送礼相关 VOC', color: BRAND.HOUGU_TAN },
  126. { num: '30-50亿', label: '3 年潜在规模', color: BRAND.WARM_ORANGE },
  127. ], { accent: BRAND.ROSE })}
  128. <div class="grid" style="grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:24px;">
  129. ${scenes.map((s) => `
  130. <div style="padding:18px 20px; background:var(--bg-1); border:1px solid var(--border); border-top:4px solid ${s.color}; border-radius:var(--radius-md);">
  131. <div class="text-mono text-xs" style="color:${s.color}; letter-spacing:0.2em; margin-bottom:6px; font-weight:700;">${s.key} · 场景</div>
  132. <h3 style="color:var(--text-1); font-size:1.04rem; font-weight:800; margin:0 0 4px;">${esc(s.scene)}</h3>
  133. <div style="color:var(--text-3); font-size:0.72rem; margin-bottom:10px;">${esc(s.time)} · 送 ${esc(s.target)}</div>
  134. <div style="padding:8px 10px; background:${BRAND.CORAL}08; border-radius:4px; margin-bottom:8px;">
  135. <div class="text-mono text-xs" style="color:${BRAND.CORAL}; font-weight:700; letter-spacing:0.1em; margin-bottom:4px;">替代品</div>
  136. <div style="color:var(--text-2); font-size:0.76rem;">${esc(s.alt)}</div>
  137. </div>
  138. <div style="padding:8px 10px; background:${s.color}0E; border-radius:4px;">
  139. <div class="text-mono text-xs" style="color:${s.color}; font-weight:700; letter-spacing:0.1em; margin-bottom:4px;">猴菇饮优势</div>
  140. <div style="color:var(--text-1); font-size:0.78rem; line-height:1.5;">${esc(s.advantage)}</div>
  141. </div>
  142. </div>`).join('')}
  143. </div>
  144. <div class="grid" style="grid-template-columns:1.1fr 1fr; gap:24px; margin-top:28px;">
  145. <div>
  146. <div class="text-mono text-xs" style="color:${BRAND.ROSE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC 证据 · 送礼原声</div>
  147. <div style="display:flex; flex-direction:column; gap:12px;">
  148. ${voc.slice(0, 4).map((it) => renderVocCard(it, { accent: BRAND.ROSE, compact: true })).join('')}
  149. </div>
  150. </div>
  151. <div>
  152. <div style="padding:22px 26px; background:${BRAND.JIANG_GREEN}0A; border:1px solid ${BRAND.JIANG_GREEN}33; border-radius:var(--radius-md);">
  153. <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.2em; margin-bottom:14px; font-weight:700;">对标阿胶 · 品类类比</div>
  154. <table style="width:100%; border-collapse:collapse; font-size:0.84rem;">
  155. <thead>
  156. <tr style="border-bottom:2px solid var(--border);">
  157. <th style="text-align:left; padding:8px 0; color:var(--text-3); font-size:0.72rem; font-weight:600;">维度</th>
  158. <th style="text-align:center; padding:8px 0; color:${BRAND.DEEP_AMBER}; font-size:0.72rem; font-weight:700;">东阿阿胶</th>
  159. <th style="text-align:center; padding:8px 0; color:${BRAND.JIANG_GREEN}; font-size:0.72rem; font-weight:700;">猴菇饮礼盒</th>
  160. </tr>
  161. </thead>
  162. <tbody>
  163. <tr style="border-bottom:1px solid var(--border);"><td style="padding:10px 0;">品类身份</td><td style="text-align:center; padding:10px 0;">中药 / 滋补</td><td style="text-align:center; padding:10px 0; color:${BRAND.JIANG_GREEN};">OTC / 食疗</td></tr>
  164. <tr style="border-bottom:1px solid var(--border);"><td style="padding:10px 0;">单次消耗</td><td style="text-align:center; padding:10px 0;">几个月</td><td style="text-align:center; padding:10px 0; color:${BRAND.JIANG_GREEN};">1-2 月</td></tr>
  165. <tr style="border-bottom:1px solid var(--border);"><td style="padding:10px 0;">礼盒价位</td><td style="text-align:center; padding:10px 0;">300-1000 元</td><td style="text-align:center; padding:10px 0; color:${BRAND.JIANG_GREEN};">128-248 元</td></tr>
  166. <tr style="border-bottom:1px solid var(--border);"><td style="padding:10px 0;">门槛感</td><td style="text-align:center; padding:10px 0;">高贵 · 隆重</td><td style="text-align:center; padding:10px 0; color:${BRAND.JIANG_GREEN};">日常 · 实用</td></tr>
  167. <tr><td style="padding:10px 0;">目标人群</td><td style="text-align:center; padding:10px 0;">老人 / 女性</td><td style="text-align:center; padding:10px 0; color:${BRAND.JIANG_GREEN};">全龄 · 全性别</td></tr>
  168. </tbody>
  169. </table>
  170. <div style="margin-top:14px; padding:12px 14px; background:${BRAND.JIANG_GREEN}15; border-radius:4px;">
  171. <div style="color:${BRAND.JIANG_GREEN}; font-size:0.82rem; line-height:1.6;"><strong>"送胃"定位 = 平民化阿胶</strong> · 同样是健康礼 · 但更日常、更年轻、更普适。</div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. ${renderDecisionList([
  177. `<strong>礼盒 SKU</strong>:12 支装 128 元 + 24 支装 248 元 + 48 支长期装 498 元`,
  178. `<strong>节日化营销</strong>:春节"送父母的胃" · 中秋"给爸的心意" · 父亲节定制`,
  179. `<strong>办公室团购</strong>:B2B 企业定制 · 500 强 HR 对接 · 团队福利产品`,
  180. `<strong>KOL 组合</strong>:孝心 / 职场 / 养生 3 条线同时启动`,
  181. `<strong>包装设计</strong>:礼盒规格独立开模 · 比单瓶装高阶一档 · 支持定制封套`,
  182. `<strong>品类教育</strong>:3 年内把"送胃就送猴菇饮"建成类似"送礼就送脑白金"的心智`,
  183. ], { title: '决策 · 送胃礼品赛道 6 条落地', accent: BRAND.ROSE, columns: 2 })}
  184. </div>
  185. </section>`;
  186. }
  187. // ================================================================
  188. // 7.3 · 新人群 · 糖友无糖版 + 夜宵族
  189. // ================================================================
  190. function renderSub7_3(ctx) {
  191. const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
  192. const items = data.items || [];
  193. const real = items.filter((it) => it.source === 'real-collected');
  194. const diabetesVoc = HGY.getEvidence(real, { tag: '糖尿病', top: 4, seed: 17 });
  195. const lateVoc = HGY.getEvidence(real, { tag: '熬夜场景', top: 4, seed: 19 });
  196. const groups = [
  197. {
  198. key: 'G1', color: BRAND.PURPLE,
  199. name: '糖友无糖版',
  200. pop: '1.4 亿糖尿病人 × 40% 合并胃病',
  201. core: '5600 万人 · 血糖管理 + 胃养护双重需求',
  202. pain: '"米稀甜 · 奶粉咖啡都怕 · 想养胃又要控糖"',
  203. solution: 'SKU · 木糖醇配方 · 低 GI · 胰岛素友好 · 独立包装不与主力版混放',
  204. vocCount: HGY.filterByHypothesis(real, 'H7').length,
  205. voc: diabetesVoc,
  206. },
  207. {
  208. key: 'G2', color: BRAND.TECH_BLUE,
  209. name: '夜宵族/熬夜党',
  210. pop: '3 亿经常熬夜 · 20-45 岁',
  211. core: '外卖+咖啡+饮料 高胃负担人群 · 高粘性 · 高复购',
  212. pain: '"熬夜胃空又不想吃夜宵 · 咖啡 + 奶茶喝出胃酸"',
  213. solution: 'SKU · 熬夜装 6 支组合 · 工位 / 直播间 / 深夜便利店渠道 · 夜宵替代语境',
  214. vocCount: HGY.filterByHypothesis(real, 'H5').length,
  215. voc: lateVoc,
  216. },
  217. ];
  218. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  219. <div class="section-inner">
  220. ${renderSectionHead({
  221. eyebrow: `${c.num}.${subIdx} · 新机会 #3`,
  222. title: '<span style="color:' + BRAND.PURPLE + ';">糖友无糖版</span> + <span style="color:' + BRAND.TECH_BLUE + ';">夜宵族</span> · 两个错位细分人群',
  223. subtitle: '这两个人群在主流养胃品类中<strong>被明显忽略</strong> · 但真实 VOC 信号强 · 各自都有千万级规模 · 值得独立 SKU 切入。',
  224. color: BRAND.PURPLE,
  225. })}
  226. ${renderStatStrip([
  227. { num: '1.4亿', label: '糖尿病人总盘', color: BRAND.PURPLE },
  228. { num: '5600万', label: '糖+胃双病', color: BRAND.PURPLE },
  229. { num: '3亿', label: '熬夜人群', color: BRAND.TECH_BLUE },
  230. { num: `${HGY.filterByHypothesis(real, 'H7').length}`, label: '糖友 VOC', color: BRAND.PURPLE },
  231. { num: `${HGY.filterByHypothesis(real, 'H5').length}`, label: '场景 VOC', color: BRAND.TECH_BLUE },
  232. ], { accent: BRAND.PURPLE })}
  233. <div class="grid" style="grid-template-columns:1fr 1fr; gap:24px; margin-top:28px;">
  234. ${groups.map((g) => `
  235. <div style="padding:24px 28px; background:var(--bg-1); border:1px solid var(--border); border-top:4px solid ${g.color}; border-radius:var(--radius-md);">
  236. <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
  237. <div class="text-mono text-xs" style="color:${g.color}; letter-spacing:0.2em; font-weight:700;">${g.key} · 新人群</div>
  238. <div style="color:${g.color}; font-family:var(--font-mono); font-size:0.78rem; font-weight:700;">VOC ${g.vocCount}</div>
  239. </div>
  240. <h3 style="color:var(--text-1); font-size:1.22rem; font-weight:800; margin:0 0 6px;">${esc(g.name)}</h3>
  241. <div style="color:var(--text-3); font-size:0.84rem; margin-bottom:14px;">${esc(g.pop)}</div>
  242. <div style="padding:12px 14px; background:${g.color}08; border-left:3px solid ${g.color}; border-radius:4px; margin-bottom:12px;">
  243. <div class="text-mono text-xs" style="color:${g.color}; letter-spacing:0.1em; font-weight:700; margin-bottom:4px;">CORE · 核心重合</div>
  244. <div style="color:var(--text-1); font-size:0.84rem; line-height:1.6;">${esc(g.core)}</div>
  245. </div>
  246. <div style="padding:12px 14px; background:${BRAND.CORAL}08; border-left:3px solid ${BRAND.CORAL}; border-radius:4px; margin-bottom:12px;">
  247. <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.1em; font-weight:700; margin-bottom:4px;">PAIN · 痛点</div>
  248. <div style="color:var(--text-1); font-size:0.82rem; line-height:1.6; font-style:italic;">${esc(g.pain)}</div>
  249. </div>
  250. <div style="padding:12px 14px; background:${BRAND.JIANG_GREEN}08; border-left:3px solid ${BRAND.JIANG_GREEN}; border-radius:4px; margin-bottom:14px;">
  251. <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.1em; font-weight:700; margin-bottom:4px;">SOLUTION · 猴菇饮方案</div>
  252. <div style="color:var(--text-1); font-size:0.82rem; line-height:1.6;">${esc(g.solution)}</div>
  253. </div>
  254. ${g.voc[0] ? renderVocCard(g.voc[0], { accent: g.color, compact: true }) : ''}
  255. </div>`).join('')}
  256. </div>
  257. ${renderInsightHero({
  258. eyebrow: '新机会总览 · 三条长尾赛道',
  259. color: BRAND.JIANG_GREEN,
  260. title: `Ch7 三子章 = <strong style="color:${BRAND.TECH_BLUE};">PPI 过渡饮(20-40 亿)</strong> + <strong style="color:${BRAND.ROSE};">送胃礼品(30-50 亿)</strong> + <strong style="color:${BRAND.PURPLE};">糖友+夜宵(20-30 亿)</strong> = 保守估算<strong style="color:${BRAND.JIANG_GREEN};">70-120 亿潜在总盘</strong>。`,
  261. subtitle: `每条赛道都有:① 真实 VOC 信号(非臆测)② 明确细分人群规模 ③ 独特 SKU 形态 ④ 差异化话术。<strong>不需要选一个</strong>——3 条可以并行推进,每条独立立项、独立 KPI、独立包装。这是<strong style="color:${BRAND.HOUGU_TAN};">从 5000 万到 5 亿</strong>最清晰的路线图。`,
  262. })}
  263. ${renderDecisionList([
  264. `<strong>三赛道并行</strong>:PPI 过渡 + 送胃礼品 + 糖友/夜宵 · 独立立项独立 KPI`,
  265. `<strong>主力装兼容</strong>:SKU 1 日常装作为基础盘 · 三赛道通过包装/话术/渠道差异化`,
  266. `<strong>投放分配</strong>:Y1 PPI 过渡 60% + 送胃 25% + 糖友/夜宵 15%`,
  267. `<strong>Y1 门票</strong>:PPI 过渡赛道必须先达到 3000 万销售 · 锁定其他赛道解锁`,
  268. `<strong>验证节奏</strong>:每季度复盘一次 · 赛道达不到 50% 预期 · 调整 SKU/话术`,
  269. `<strong>Y3 目标</strong>:3 赛道合计 5 亿 · 其中 PPI 过渡 2.5 亿占头肩`,
  270. ], { title: '决策 · 三赛道组合 6 条落地', accent: BRAND.JIANG_GREEN, columns: 2 })}
  271. </div>
  272. </section>`;
  273. }
  274. module.exports = {
  275. 'opportunity-1': renderSub7_1,
  276. 'opportunity-2': renderSub7_2,
  277. 'opportunity-3': renderSub7_3,
  278. };