Yummy PLAN
2026-09-13AUDIENCE: INTERNAL规划稿 · 只出方案 · 不改代码

门店营收增长故事:数字算一次、到处引用

这份文档只回答一个问题:要不要排期把「营收数字一处出、多处用」做成固定流程。它本身不建任何东西,不改网站,不改数据库。读完你能判断值不值得做、做哪种、大概要花多少。
这份文档要做什么
把「门店营收增长」这组数字的来源、生成方法、谁在用、怎么防止各处数字对不上,一次说清楚,给出两条主要做法的代价对比,让你决定要不要真的排期。
什么算做完(对这份规划而言)
你看完能回答四件事:数字从哪来、怎么生成、哪些页面该用、怎么保持一致;并且对「做法 A 还是做法 B、现在做还是先放着」做出选择。
如果批了,第一步是什么
先把现在已经对不上的几处清零(第 6 节 P0-1),再写那个生成脚本。清零那一步不依赖任何新工具,半天能做完。
1 · 问题框定 · Problem framing

一句话问题:门店营收数字(比如 2026 年第二季度卖了多少钱)在官网、招商页、投资人更新、融资材料里各自手抄,同一个季度已经出现了两个不同的数,而且没人知道哪个数字被抄到了哪里。

今天现查到的证据(2026-09-13)

在哪写的是什么问题
公司事实表2026 Q2 营收 = 333,540 美元(09-04 用收银系统逐月对过,分毫不差)这是唯一的正本,本身没问题
投资人更新 09-01 两份草稿Q2 2026 = $333,541,Q2 2025 = $140,640跟正本各差 1 美元:写手是拿收银日线自己加的,四舍五入方式不同
融资演示稿(pitch deck)「333.5」(缩成千位)、「$1.3M」缩写口径没有登记在正本里,下次正本变了不会有人想起来改它
Series A 数据室计划手抄 2026 年 1 到 6 月每个月的数6 个数手抄,正本 09-04 又补了 7、8 月,这份不会自己跟上
官网首页「运营者」段 + 招商页首屏同一句「3 stores · 240,000+ cups served · 25+ LOIs」复制了两份;还有一句「Q1 2026 连续三个月环比增长」「25+ LOI」在事实表里按标签查不到;「连续三个月环比增长」对应的那条事实(CF-88)标着「洞 · 不许对外」
事实表的「用在哪些页面」这一列140 行里只有 9 行填了表自己也不知道谁在引用它
事实表的数值写法CF-01 写「$262,534」,CF-02 写「333540 USD/quarter」,CF-83 写「from 17995 · to 50203 · growth_pct 178.98 …」三种写法,直接复制不能用,每次都要人手「翻译」一遍
事实文件有四份Supabase 事实表(正本)、视频工具自带的一份、公司故事仓库的一份、投资人更新仓库钉在 8 月 2 日的一份投资人更新工具里那个「点一下插入事实」面板读的是 8 月 2 日那份旧文件,里面根本没有 Q2 2026
成功标准(做成之后应该是这样)
  • 一个数字只有一处出处;改了正本,各处要么自动跟着变,要么会有人被提醒
  • 每个用到营收数字的页面/材料,能说出自己引用的是哪几条(用事实表的 CF 编号)
  • 新一季数字进了正本以后,半小时内所有消费方拿到新数,或者拿到「你过期了」的提醒
  • 投资人材料只拿得到「允许对外」的数字,逐字一样,不四舍五入
  • 数字对不上时会自己响,不靠人记得去查
边界(这次不做什么)
  • 不去和解那四份事实文件——那是 8 月 29 日留下的另一件独立的活
  • 不改「众筹合规怎么措辞」的规则,只管数字本身
  • 不做预测数字、财务模型
  • 不动视频工具那边的事实文件
约束(绕不过去的现实)
  • 正本只认 Supabase 里的公司事实表(8 月 29 日已拍板:以后只看后台这份,其他的作废)
  • 官网是纯静态网页,没有「先编译再发布」这一步;发生产是整个网站目录一起换
  • 投资人更新材料是纯文本草稿再粘到 Wefunder,不是网页,所以网页那套办法管不到它
  • 众筹合规要求数字逐字一致,不许把 94,798 写成 94.8K——投资人更新工具的测试已经把这条写成硬规矩
证据来源:Supabase company_facts 表 2026-09-13 现查(A 营收与经营 组 74 行)· investor-update 仓 05-updates/2026-09-01 两份 draft.md · wefunder-pitch 仓 pitch-deck/deck.html 与 Series_A_Data_Room_Plan_2026-09-04.html · website 仓 site/index.html §04 与 site/partner.html 首屏

2 · 数据从哪来Source of truth

只认一处:Supabase 数据库里的公司事实表(表名 company_facts)。它有 140 行,每行一条事实,带编号(CF-01、CF-02 …)。「营收与经营」这一组有 74 行,其中 52 行标着「可用」。用 ops/analytics/run-readonly-sql.mjs 这个只读工具能直接查。

素材包要从每一行取哪些字段

字段拿来干什么
cf_number编号,消费方引用时写的就是它(例:CF-02)
label_zh / label_en这条事实叫什么(中/英)
value_text原始数值,写法不统一,素材包要先按固定规则整理成「$333,540」这种能直接贴的形式
basis_note / source_ref这个数怎么算出来的、原始文件在哪,给较真的人查证用
evidence_tier可信度档位(审计·POS / 推算·创始人说的 / 没出处·过期),对外材料只能用前两档
publishable + status能不能对外、现在能不能用;素材包只收 publishable = true 且 status = 可用 的行
regcf_rule众筹合规备注(营收组 74 行里只有 1 行填了,素材包先原样带着)
updated_at / superseded_by_id什么时候改的、有没有被更新的行替代——这两个是「发现过期」的钥匙
used_on_pages用在哪些页面。现在几乎没填,以后由生成脚本反向回填

第一批进素材包的数字(建议 11 条,都是今天现查的值)

编号数字可信度说明
CF-182025 Q2 营收 $140,641审计·POS同比的分母
CF-012026 Q1 营收 $262,534审计·POS
CF-022026 Q2 营收 $333,540审计·POS09-04 刚从「创始人说的」升为「收银系统核过」
派生Q2 同比 +137.2%算出来的333,540 ÷ 140,641 − 1;素材包现算,不另存一行
CF-1262026 年 1–8 月逐月营收(8 个数)审计·POS含销售税口径,见 CF-304
CF-83Champaign 两店 2026 Q1 环比 +178.98%($17,995 → $50,203)审计·POS不含 Palo Alto,句子里必须带这句话
CF-302近 12 个月(到 2026-08)营收 $1,055,822,同比 +113.1%推算含税;税前另有一个数
CF-112026 全年营收计划 $1,300,000推算·创始人说的是计划不是预测,对外要按合规规矩措辞
CF-12累计 240,000+ 杯审计·POS首页和招商页正在用
CF-143 家店审计·POS
CF-58审计年报 FY2025 营收 $554,212(FY2024 $414,341)审计Series A 材料要的是这个口径,不是收银口径

两个现在在用、但不在正本里的数字:「25+ LOI」(意向书数量)按标签在表里查不到;「Q1 2026 连续三个月环比增长」对应 CF-88,但那行标着「洞 · 不许对外」。要么补进表并定级,要么从页面上撤下来——这是不管选哪种做法都得先做的事。

3 · 生成机制 · 做法对比Options — costs side by side

「素材包」指的是:从事实表算一次、导出来的一份固定文件,里面每个数字带编号、带中英文整句、带出处、带能不能对外。下面四条路都以它为中心,差别在消费方怎么拿数漂了谁来发现

做法 0 · 维持现状,只立规矩零建设
核心理念
不写工具。写一条规矩:「引用营收数字前先查事实表」
代价
建设 0;每次靠人自觉
为什么不行
已经被证明会漂:09-01 那两份投资人草稿就是有规矩的情况下写出 $333,541 的
做法 A · 一个生成脚本 + 一份素材包 + 人手贴 + 一个对账脚本Claude 倾向先做这个
核心理念
一条命令读事实表,产出三样东西:给机器读的 JSON、给人看的一页网页(每个数字一张卡:中英文整句、编号、出处、能不能对外)、给投资人材料复制用的整句清单。消费方仍然是人手复制,但复制的是带编号的整句,不是裸数字。另一条命令做对账:扫所有消费方文件,发现旧值或对不上的值就报红。
建设成本
1 个工作会话(约半天):生成脚本 + 对账脚本 + 一份「监视清单」(哪 11 个数字要盯、各自的旧值黑名单)
每次刷新的成本
约 30 分钟:重跑脚本 → 提交 → 按对账脚本点名的位置逐个手动替换
漂移怎么发现
对账脚本挂在发生产的脚本前面(发之前先跑)+ 常开的那台电脑每天跑一次,红了发到 Slack 测试频道
风险
人手贴的那一步还是会漏,只是漏了会被抓;只有登记在监视清单里的数字才查得到,没登记的散文照样漂
动不动生产
不动网页、不动发布流程本身;只是多跑一个检查
做法 B · 页面打标签 + 发布时自动填数更彻底,更贵
核心理念
网页里每个营收数字外面包一个带编号的标签(例:<span data-cf="CF-02">$333,540</span>)。发生产时多一步:拿素材包把标签里的数对一遍,对不上就拒绝发布(或自动改成正本的值)。投资人的纯文本材料走另一条:投资人更新工具里已有的「点一下插入事实」面板,把它的数据源从 8 月 2 日的旧文件换成这份素材包。
建设成本
2–3 个工作会话:改首页和招商页(打标签)+ 发布脚本加一道门 + 投资人更新面板换数据源 + 补测试。做法 A 的脚本是它的前置,不是白做
每次刷新的成本
约 5 分钟:重跑脚本 + 发一次生产
漂移怎么发现
打了标签的地方不可能漂(发布时强制对齐);没打标签的散文还是靠 A 的对账脚本
风险
要动生产网页和发布脚本——发生产是整个目录一起换,09-12 一天里就踩过四次「把别人的东西打回去」;官网从来没有「发布前改文件」这一步,第一次引入要格外小心。另外合规看的不只是数字还有整句措辞,自动填数解决不了句子要人审这件事
动不动生产
动:两个页面 + 发布脚本
做法 C · 网页打开时实时从数据库拉数最省事,但放弃
核心理念
网页里放脚本,访客打开时直接从接口拉最新数字填上
代价
建设最少(一个接口 + 几行前端代码)
为什么放弃
数字会绕过人审直接上线,众筹合规不允许;搜索引擎和不开脚本的访客看不到数字;投资人的纯文本材料根本用不上这条路

三条路放一起看

做法 A做法 B做法 C
建设1 个会话2–3 个会话(含 A)半个会话
每次刷新约 30 分钟,人手贴约 5 分钟,自动0
漂移会漂,但会响标签处不会漂;散文会漂但会响不会漂,但没人审
动生产不动动两页 + 发布脚本动所有相关页
管得到投资人纯文本材料管得到(整句清单)管得到(面板换源)管不到
合规(数字逐字、人审)过(句子仍人审)不过

Claude 的倾向(不是拍板):先做 A,一个会话;等它真的刷新过两次、对账脚本真的抓到过一次漂移之后,再决定要不要升到 B。理由:A 已经解决「没人知道数字抄到了哪」和「漂了没人发现」这两个最疼的问题,B 多花的两个会话买的是「刷新时不用人手贴」,而现在一个季度才刷新一次。放弃了什么:C 整条放弃;B 里「投资人面板换数据源」这一块其实可以单独拆出来先做,不必等页面打标签——列在第 6 节 P1-3。

4 · 消费方清单Who uses these numbers

消费方现在怎么引用做法 A 之后做法 B 之后
官网首页 §04 「运营者」段
site/index.html
手写:3 家店、240,000+ 杯、25+ LOI、「Q1 2026 连续三个月环比增长」。首页第 3 屏(机型段)现查没有营收数字,不在范围人手换成素材包整句,旁边留编号注释;对账脚本盯它数字包标签,发布时自动对齐
招商加盟页首屏
site/partner.html
跟首页同一句,复制粘贴的第二份同上;两处从「两份复制」变成「两处引用同一编号」同上
投资人更新草稿
investor-update 仓 05-updates/
写手拿收银日线自己加总,写出 $333,541;工具里的「插入事实」面板读的是 8 月 2 日旧文件从素材包的整句清单复制,句子自带编号面板换成读素材包,点一下插入的就是正本
融资演示稿 p08
wefunder-pitch 仓 pitch-deck/
「333.5」千位缩写、「$1.3M」;事实表里有 4 行标了「用于 pitch-deck p08」,是全表唯一填了用途的地方缩写口径登记进素材包的「显示规则」,对账脚本盯 deck.html同 A(演示稿不走网站发布流程)
Series A 数据室计划 / 中文一页简介
wefunder-pitch 仓 campaign-comms/
手抄 1–6 月逐月数;正本已补到 8 月从素材包复制 CF-126 整段;对账脚本盯它同 A
公司 GTM 战略稿附录
docs/prd/company-gtm-strategy-appendix.html
手抄但每个数都标了 CF 编号——这正是想要的引用方式,可以当样板不用改不用改

5 · 怎么保持同步Who regenerates, when, and who catches drift

环节什么时机怎么做
改正本Jack(在后台管理系统 Directus 里改事实表——事实表的编辑界面就在那里)每月收银结账后;每季度末不变,跟现在一样
重新生成素材包改了正本的那个人/会话改完正本立刻跑一条命令,提交结果。忘了跑也没关系——下一环会抓
发现「素材包比正本旧」脚本常开的那台电脑每天跑一次比事实表的 updated_at 和素材包的生成时间;旧了就发 Slack 测试频道
发现「消费方比素材包旧」脚本每天一次 + 每次发生产之前拿监视清单扫消费方文件:出现旧值黑名单里的值、或数字跟素材包不同,报红并点名文件和行号
发现「线上跟本地不一样」脚本(已有)每次发生产之后发布脚本现有的「线上文件逐个比对」那道门,不用新做
处理报警当周维护网站的会话报警当天按点名位置替换;Jack 不用看报警
回填「用在哪」生成脚本每次生成时把消费方清单反向写回事实表的 used_on_pages 列,让表自己知道被谁引用

成本一句话:每天一次检查,跑几秒钟,要联网查一次数据库;每季度一次真正的刷新,做法 A 约 30 分钟人工、做法 B 约 5 分钟。

6 · 如果批了,怎么拆Decomposition — each block ≤ one session

P0
P0-1 · 先把现存的对不上清零
依赖:无。不需要任何新工具,半天
完成 = 投资人草稿的 $333,541 / $140,640 改回正本值;「25+ LOI」要么补进事实表并定可信度、要么从两页撤下;「Q1 连续三个月环比增长」那句核对 CF-88 后决定留或撤;这几处的处理结果各写一行进拍板台账
P0
P0-2 · 定素材包格式 + 显示规则 + 监视清单
依赖:无
完成 = 一份 JSON 样例,第 2 节那 11 条每条都有:编号、中英文整句、显示写法(「333540 USD/quarter」→「$333,540」,逐字不四舍五入;千位缩写单独登记)、出处、能否对外;监视清单列出每条的旧值黑名单
P0
P0-3 · 生成脚本
依赖:P0-2
完成 = 一条命令读事实表,产出 JSON + 给人看的一页 + 整句清单;跑两次结果一模一样;Q2 那条跟表里逐字一致
P0
P0-4 · 对账脚本,并证明它会响
依赖:P0-2、P0-3
完成 = 扫第 4 节全部消费方文件,全绿;然后故意把招商页改成旧值 $333,541,脚本必须报红并点名到行;改回去再绿。没验过红的锁不算锁
P1
P1-1 · 把对账脚本挂进发布前门 + 常开电脑每日任务 + Slack 提醒
依赖:P0-4
完成 = 发生产的脚本在「不落后于 main」那道门后面多一道「营收数字对账」,红了不发;每日任务跑过一次并在 Slack 测试频道留下一条带【AUTOTEST】的消息
P1
P1-2 · 生成脚本反向回填事实表的 used_on_pages
依赖:P0-3;写表前先只读 diff 亮出预期改动
完成 = 那 11 行的 used_on_pages 列填上真实消费方;只写这一列,不碰别的
P1
P1-3 · 投资人更新工具的「插入事实」面板换成读素材包
依赖:P0-3;那个工具已有 20 条「逐字保真」测试,改完必须仍然全绿
完成 = 面板里点「Q2 2026 营收」插进来的是 $333,540;原有测试 0 失败
P2
P2-1 · (做法 B)首页、招商页数字打标签 + 发布时自动对齐
依赖:P1-1 跑稳;单独一个会话,走预览再上生产
完成 = 两页的营收数字都带编号标签;发布脚本对不上就拒发;预览环境验过一次「故意写错 → 拒发」

7 · 未知项Unknowns — three tiers

正本只认 Supabase 事实表
已知:8 月 29 日拍板,今天现查它有 Q2 2026 且已升为收银核实
官网没有编译步骤,发生产是整目录替换
已知:package.json 里只有站点地图和 SEO 测试;发布脚本注释明写「整棵树一起换」
投资人更新工具已有「数字逐字、不四舍五入」的测试
已知:investor-update 仓 docs/investor-update-facts-test-cases.md,20 条用例
?
「25+ LOI」和「Q1 连续三个月环比增长」有出处,只是没进表
验证方式:问 Jack LOI 数从哪来;CF-88 的月环比数据本身在表里(1→2 月 +50.16%,2→3 月 +10.34%,3→4 月 +37.96%,4→5 月 −16.59%),它标「洞」的备注是「页面还在显示旧的约 79% 和 33%」,核一下首页那句到底对应哪几个月
?
写投资人更新的人愿意从「整句清单」复制,而不是自己算
验证方式:下一篇投资人更新用素材包试写一次,看有没有人绕开
?
一个季度只刷新一次,所以做法 A 的 30 分钟人工可以接受
验证方式:数一下过去 90 天事实表营收组的 updated_at 变了几次(今天看到的日期是 08-29、09-04、09-06、09-08 四批)
??
同一个营收数字有「含销售税」和「税前」两种口径(CF-304),对外材料该统一用哪种Regulatory
转交调研:查已发的众筹帖和审计年报各用的哪种,以及律师有没有说过
??
四份事实文件的和解要不要作为这件事的前置Organizational
转交调研:8 月 29 日那次整理发现,视频工具自带的那份事实文件跟后台正本相比有约 1049 行内容不一样,谁对谁错还没人判、也没排期;本规划假设不用等它,但投资人更新面板换数据源(P1-3)时会碰到它
??
首页第一屏这周偏向「机器人可信度」(9 月 13 日拍板第 ⑦ 条)之后,营收句在首页还留不留Business
问 Jack;留就照第 4 节处理,撤就消费方少一个
标记说明:✓ 已经确认的事实 · ? 有把握但还没验证的假设(带验证方式) · ?? 完全不知道、要转交调研的问题(带信道标签:Regulatory=合规 · Organizational=组织内部 · Business=商业判断)

8 · 决策记录Decision log

数据源只认 Supabase 公司事实表,不认其他三份事实文件
理由:8 月 29 日已拍板「以后只看后台这份,其他的作废」;本规划沿用,不重开
2026-08-29 · 承旧决定
本文只规划、不建设
理由:9 月 13 日公司 GTM(市场打法)战略稿的 8 条拍板里,第 ④ 条原话是「把营收增长故事素材做成一次生成、到处复用的固定流程 = 值得立项」,只批了「值得立项」,没批「现在就建」
2026-09-13 · 承旧决定
做法 A、做法 B,还是先 A 后 B未决
Claude 倾向先 A(1 个会话),跑稳后再议 B;不替 Jack 定
待 Jack
现在排期,还是先放着未决
本周优先级是 ①Wefunder → SEO/UTM → ②Series A → ③O-1 → ④销售 → ⑤招聘 → ⑥demo;这件事服务 ① 和 ②,但不是它们的阻塞项。P0-1「清零」半天就能做,可以先单独批
待 Jack
「25+ LOI」的出处;首页留不留营收句未决
见第 7 节
待 Jack
关联文档 · Linked