以下情境为教学假设,人物与数字不代表经核实的真实案例。
三个案例摆在同一条时间轴上,第一眼看上去差别不大:LedgerLite 年收入 24 万美元,Tidecast 净得 13.8 万美元,Nord Studio 年收入 15.4 万美元。收入区间只有 1.7 倍,但三者的 SDE(Seller’s Discretionary Earnings,卖方可支配收益)分别是 130,240、121,171 和 34,320 美元,最高与最低相差 3.8 倍。
这不是「谁更努力」的问题,而是三种生意的收入结构不同:订阅卖的是持续访问权,买断卖的是一次性拷贝,服务卖的是人的时间。三种收入进入利润表的位置不同,离开企业的现金节奏也不同。把它们放进同一张表,才能看清差异究竟来自哪里。
三个案例,同一套口径
先把三个案例的基本盘放在一起。所有数字来自附录 B 的案例事实表,本节不做额外推断。
| 项 | LedgerLite | Tidecast | Nord Studio |
|---|---|---|---|
| 形态 | 一人 B2B 订阅 SaaS | 一人买断制独立游戏 | 两人服务 + 产品混合 |
| 产品 | 小会计事务所对账与报税协作 | 海潮主题横版解谜 | 品牌官网 + 订阅小工具 |
| 主体 | 新加坡 Pte Ltd | 美国 Wyoming LLC | 英国 Ltd |
| 团队 | 1 人 + 外包 | 1 人 + 外包美术 | 2 名合伙人 + 外包 |
| 年收入 | $240,240 | $138,171(净得) | $154,320 |
| SDE | $130,240 | $121,171 | $34,320 |
| 估值锚 | 3.2× ARR = $768,768 | 1.8× 收入 = $248,708 | 4.5× SDE = $154,440 |
年收入最高的是 LedgerLite,SDE 最高的也是 LedgerLite;年收入居中偏低的 Tidecast,SDE 却几乎追平 LedgerLite;年收入排第二的 Nord Studio,SDE 只有前两者的四分之一左右。估值锚的差异更大:LedgerLite 的 3.2 倍 ARR 是 768,768 美元,是 Nord Studio 标准锚 154,440 美元的近五倍。
估值差异会在第 11 章展开,本节只回答一个更基础的问题:为什么收入差不多,SDE 会差近四倍?
把三种生意算成利润表
统一口径只有五个输入:收入、变动成本、运营费用、创始人薪酬、所得税率。利润表的推导顺序是:
毛利 = 收入 − 变动成本
SDE = 毛利 − 运营费用
税前利润 = SDE − 创始人薪酬
净利润 = 税前利润 − 所得税
三个案例代入后得到下表。金额单位为美元,比率按精确金额计算后再四舍五入展示。
| 项 | LedgerLite | Tidecast | Nord Studio |
|---|---|---|---|
| 收入 | $240,240 | $138,171 | $154,320 |
| 变动成本 | $38,000 | $0 | $24,000 |
| 毛利 | $202,240 | $138,171 | $130,320 |
| 毛利率 | 84.2% | 100.0% | 84.4% |
| 运营费用 | $72,000 | $17,000 | $96,000 |
| SDE | $130,240 | $121,171 | $34,320 |
| 创始人薪酬 | $60,000 | $0 | $0 |
| 税前利润 | $70,240 | $121,171 | $34,320 |
| 所得税 | $11,941 | $29,081 | $8,580 |
| 净利润 | $58,299 | $92,090 | $25,740 |
Tidecast 的毛利率显示为 100%,容易引起误解。它的 138,171 美元是净得,Steam 分成 30%、退款 4%、官网支付费 5% 已经在收入之前扣掉;标价收入 191,904 美元到净得 138,171 美元的折损率是 72.0%。在利润表里,这笔折损不重复出现为变动成本,所以毛利率是 100%,但净得率只有 72.0%。
LedgerLite 的 38,000 美元变动成本拆开是云 18,000、支付 12,000、支持 8,000;Nord Studio 的 24,000 美元是外包 18,000 加工具 6,000。三者的毛利率在 84.2% 到 100.0% 之间,但 Tidecast 的 100% 是净得口径;真正拉开 SDE 的是运营费用:LedgerLite 72,000,Tidecast 17,000,Nord Studio 96,000。
Nord Studio 的 96,000 美元是两位合伙人的工资,每人每年 48,000 美元。服务收入需要人来交付,人就是固定成本;产品收入不需要按客户增加交付人力,固定成本可以压得很低。Tidecast 的 17,000 美元运营费用里,营销 12,000、服务器 3,000、工具 2,000,没有工资项,因为开发者本人的报酬已经通过 SDE 体现。
三种现金节奏
利润表按权责发生制看一年,现金流按收付实现制看每个月。三种生意的差别在现金节奏上更明显。
| 生意 | 主要收款方式 | 现金特征 | 主要波动来源 |
|---|---|---|---|
| 订阅 | 月付 70%、年付 30%,年付折扣 15% | 月初可预测,年付形成递延收入 | 月流失 1.5%,年流失约 16.6% |
| 买断 | 售出即收,平台月结 30 天 | 上线期集中,之后长尾衰减 | 12 月 2,400 份、1 月 480 份,Q4 占 38% |
| 服务 | Net 30 开票 | 项目制,回款滞后 | 咨询续约率 70%,前 3 家占 48% |
LedgerLite 的 MRR 是 260 家 × 77 美元 = 20,020 美元,ARR 240,240 美元。月流失 1.5% 意味着平均每个客户停留约 66 个月,收入在月初就能大致确定;年付客户占 30%,年付折扣 15%,这部分现金提前进来,形成递延收入。案例里年末递延收入增加 8,000 美元,经营现金流因此高于净利润。
Tidecast 的 9,600 份销量不是均匀发生的。月均 800 份,12 月 2,400 份,1 月 480 份,Q4 占全年 38%。这意味着全年现金高度依赖上线期和假日季;如果 12 月的 2,400 份没有发生,全年收入会少四分之一。买断制的现金节奏是「先高后低」,而成本往往在开发期已经发生,14 个月开发的机会成本 84,000 美元是沉没成本,不计入 SDE,但它真实影响了开发者的现金储备。
Nord Studio 的咨询收入是 110 小时 × 85 美元 = 9,350 美元/月,产品收入是 90 家 × 39 美元 = 3,510 美元/月。咨询按 Net 30 开票,回款滞后一个月;续约率 70%,意味着每年有 30% 的咨询收入需要重新赢得。产品月流失 3.0%,比 LedgerLite 的 1.5% 高一倍。两条线都不算差,但都依赖两位合伙人:一条靠他们的时间,一条靠他们的维护。
收款、确认收入、现金到账是三个不同的时点。三者的时间差可以放在一张表里:
| 生意 | 收款时点 | 收入确认 | 现金到账的时间差 |
|---|---|---|---|
| 订阅年付 | 年初收全年 | 按月确认 | 最长 12 个月,形成递延收入 |
| 订阅月付 | 月初收款 | 当月确认 | 基本无时差 |
| 买断 | 售出即确认 | 平台月结 | 约 30 天 |
| 服务 | 交付或验收后开票 | 按履约进度确认 | Net 30,约 30–60 天 |
LedgerLite 的年付客户占 30%,年付折扣 15%,这部分收入在年初收进来,但只能按月确认,差额留在递延收入里。Tidecast 的买断收入在售出时确认,平台月结 30 天后到账。Nord Studio 的咨询收入在交付后开票,Net 30 到账。三种时间差对应三种现金流形状,利润表上的「收入」却都按确认时点计算。
这也是为什么「利润」和「现金」不能互相替代。LedgerLite 的净利润是 58,299 美元,净现金增加是 61,299 美元,差额来自递延收入、应收和资本开支;Tidecast 的 SDE 是 121,171 美元,但 Q4 的现金集中意味着年初可能很紧;Nord Studio 的 SDE 是 34,320 美元,可支配现金只有 25,740 美元。看利润表能判断生意赚不赚钱,看现金流量表才能判断它会不会在某个月断粮。
毛利结构为什么差这么多
把「毛利率」和「SDE 率」放在一起看,会发现一个反直觉的现象:毛利率看起来都不低(84.2%、100.0%、84.4%),SDE 率却从 22.2% 到 87.7% 不等。
| 指标 | LedgerLite | Tidecast | Nord Studio |
|---|---|---|---|
| 毛利率 | 84.2% | 100.0% | 84.4% |
| SDE 率(SDE ÷ 收入) | 54.2% | 87.7% | 22.2% |
| 净得率(净得 ÷ 标价收入) | 不适用 | 72.0% | 不适用 |
| 收入性质 | 经常性 | 一次性 | 72.7% 服务 + 27.3% 产品 |
Tidecast 的 SDE 率最高,因为它的收入已经扣掉平台分成和退款,运营费用又只有 17,000 美元,几乎每一美元净得都能落到 SDE。代价是收入不经常:今年卖 9,600 份,不保证明年还能卖 9,600 份。估值锚 1.8 倍收入,远低于 LedgerLite 的 3.2 倍 ARR,反映的正是这种不确定性。
LedgerLite 的 SDE 率 54.2%,低于 Tidecast,但它的收入是经常性的,月流失 1.5%、NRR 102%、GRR 83%,收入的可预测性高。它愿意承担 72,000 美元运营费用,因为订阅模式需要持续获客和产品维护;这些费用换来的是下一年的收入基础,而不是一次性的销量。
Nord Studio 的 SDE 率只有 22.2%,因为 96,000 美元工资是刚性的。服务收入 72.7% 依赖两位合伙人的时间,产品收入只占 27.3%,还处在早期。毛利率看起来健康,但毛利要先养活两个人,剩下的才是 SDE。这也是为什么它的标准估值锚 4.5 倍 SDE 只有 154,440 美元,而且因为服务收入占比高、依赖合伙人,买方报价还会下调到 3.0 倍 SDE = 102,960 美元。
这里的关键不是「哪种生意更好」,而是三种生意的财务差异落在不同的位置:
- 订阅的差异在留存和获客成本,利润表上的毛利率高,但运营费用也高。
- 买断的差异在销量和平台分成,单笔毛利高,但收入不经常。
- 服务的差异在人的成本,毛利率高,但 SDE 被工资吃掉。
从收入到 SDE:LedgerLite 的逐项复算
上面三张表是结果,中间每一步都应该能手工复算。以 LedgerLite 为例,从客户数到净利润一共七步:
| 步骤 | 公式 | 结果 |
|---|---|---|
| MRR | 260 家 × $77 | $20,020 |
| ARR | $20,020 × 12 | $240,240 |
| 毛利 | $240,240 − $38,000 | $202,240 |
| 毛利率 | $202,240 ÷ $240,240 | 84.18% |
| SDE | $202,240 − $72,000 | $130,240 |
| 税前利润 | $130,240 − $60,000 | $70,240 |
| 净利润 | $70,240 − 17% × $70,240 | $58,299 |
每一步都只用一个加减乘除,没有隐藏的「行业系数」。这也是后面三表建模的基础:利润表不是另一套数字,而是同一组数字换一种排列。
再把利润和现金对一次。LedgerLite 的 SDE 是 130,240 美元,减创始人薪酬 60,000、减所得税 11,941,加递延收入增加 8,000、减应收增加 2,000,得到经营现金流 64,299 美元;再减设备投资 3,000,净现金增加 61,299 美元。净利润 58,299 与净现金增加 61,299 相差 3,000,正好是资本开支。这个差额说明:利润表告诉你「赚了多少」,现金流量表告诉你「手里多了多少」。
Tidecast 的复算更短,但有一个容易漏掉的步骤。标价收入是 9,600 × 19.99 = 191,904 美元;退款 4% 扣 7,676;Steam 的 7,680 份扣 30% 分成 44,215;官网的 1,920 份扣 5% 支付费 1,842;净得 138,171 美元。净得率 138,171 ÷ 191,904 = 72.0%。这 72.0% 是买断生意的「毛利率替身」,但它不是利润表里的毛利率,因为平台分成发生在收入确认之前。
Nord Studio 的复算要先把两条线分开:咨询 110 × 85 × 12 = 112,200;产品 90 × 39 × 12 = 42,120;合计 154,320。直接成本 24,000 先算出毛利 130,320,毛利率 84.4%;再减两人工资 96,000,SDE 34,320。服务收入占比 112,200 ÷ 154,320 = 72.7%,产品占比 27.3%。这两个占比会在 1.2 节用来计算收入组合。
估值锚在比较什么
三个案例的估值锚用的是三种不同的基数,不能直接比大小:
| 案例 | 估值锚 | 计算 | 结果 | 基数为什么不同 |
|---|---|---|---|---|
| LedgerLite | 3.2× ARR | 3.2 × $240,240 | $768,768 | 订阅收入可续,按年化经常性收入定价 |
| Tidecast | 1.8× 收入 | 1.8 × $138,171 | $248,708 | 买断收入一次性,按历史收入打折 |
| Nord Studio | 4.5× SDE | 4.5 × $34,320 | $154,440 | 服务生意按可分配收益定价 |
Nord Studio 的标准锚还有一次下调:因为服务收入占 72.7%、依赖两位合伙人,买方报价从 4.5× SDE 降到 3.0× SDE,即 102,960 美元。同一个 SDE,倍数从 4.5 降到 3.0,差的是「收入能不能离开创始人继续存在」。
这三个锚放在一起,能看出估值差异不是随意的倍数偏好:
- ARR 倍数高,因为订阅收入下一期还会来;3.2 倍买的是续费惯性。
- 收入倍数低,因为买断收入下一期不保证;1.8 倍买的是 IP 和长尾。
- SDE 倍数居中,但服务收入占比高时要打折;4.5 倍买的是可分配收益,3.0 倍买的是打折后的可转移性。
所以「年收入差不多,估值差五倍」并不矛盾。估值锚的基数不同,倍数的经济含义也不同;把它们换算成同一口径之前,任何横向比较都只是数字游戏。第 11 章会把倍数、增长和风险放进同一个估值区间,本节只需要记住:收入性质决定基数,基数决定倍数的可比性。
把利润表写成代码
下面的 pnl.ts 把五个输入固化成一条可复算的链路。金额统一用整数美分,比率统一用基点(bps,1% = 100 bps),避免浮点误差和口径漂移。Result 类型让非法输入返回错误,而不是静默算出一个看起来合理的数。
// file: src/fin/pnl.ts
// tier: L1
// verify: node --test test/fin/pnl.test.ts
import { type Cents, sub } from "../core/money.ts";
import { type Bps, applyRate, divide } from "../core/rate.ts";
import { type Result, fail, ok } from "../core/result.ts";
export type PnlInput = {
revenue: Cents;
variableCosts: Cents;
operatingExpenses: Cents;
founderSalary: Cents;
taxRate: Bps;
};
export type Pnl = {
revenue: Cents;
variableCosts: Cents;
grossProfit: Cents;
grossMargin: Bps;
sde: Cents;
pretax: Cents;
tax: Cents;
net: Cents;
};
export function buildPnl(input: PnlInput): Result<Pnl> {
if (input.revenue < 0 || input.variableCosts < 0 || input.operatingExpenses < 0) {
return fail("amounts must be non-negative");
}
const grossProfit = sub(input.revenue, input.variableCosts);
const sde = sub(grossProfit, input.operatingExpenses);
const pretax = sub(sde, input.founderSalary);
const tax = pretax > 0 ? applyRate(pretax, input.taxRate) : 0;
return ok({
revenue: input.revenue,
variableCosts: input.variableCosts,
grossProfit,
grossMargin: divide(grossProfit, input.revenue),
sde,
pretax,
tax,
net: sub(pretax, tax),
});
}
三个案例的输入可以直接从案例事实表抄进夹具:LedgerLite 收入 24,024,000 美分、变动成本 3,800,000、运营费用 7,200,000、创始人薪酬 6,000,000、税率 1,700 bps;Tidecast 收入 13,817,100、变动成本 0、运营费用 1,700,000、薪酬 0、税率 2,400 bps;Nord Studio 收入 15,432,000、变动成本 2,400,000、运营费用 9,600,000、薪酬 0、税率 2,500 bps。
代码只做四件事:校验非负、算毛利、算 SDE、在税前利润为正时计税。它不处理折旧、摊销、利息、汇兑和一次性项目,这些会在第 3 章的三表建模里补齐。对第 1 章来说,这套最小口径已经足够回答「三种生意的 SDE 为什么不同」。
如果要把这套口径继续往下推,下一步是单位经济:ARPA、毛利、CAC、回本周期。三个案例的客户数和获客方式不同,单位经济会把「收入差不多」进一步拆成「每个客户值多少」。那部分内容见 2.1 单位经济的四个数 。
订阅状态机的具体操作,包括试用、升降级、暂停和催收,不在本节的财务口径里展开,相关流程见 订阅状态机 。本节只关心这些状态变化最终如何反映到 MRR、递延收入和现金上。
小结
- 三个案例年收入 138,171–240,240 美元,SDE 34,320–130,240 美元,最高与最低相差 3.8 倍。
- 毛利率看起来都不低,真正拉开差距的是运营费用:订阅 72,000、买断 17,000、服务 96,000。
- 订阅的现金在月初可预测,年付形成递延收入;买断的现金集中在上线期和 Q4;服务的现金受 Net 30 和续约率影响。
- 买断的毛利率在利润表里是 100%,因为平台分成和退款已在收入前扣除;它的净得率是 72.0%。
- 服务的毛利率看起来健康,但 96,000 美元工资是刚性成本,SDE 率只有 22.2%。
- 估值锚的差异不是倍数偏好,而是收入性质、集中度和对创始人依赖的财务投影。
阅读导航:上一节:目录与学习路径 · 下一节:1.2 收入模型组合:主收入与第二收入线 。
常见错误与边界
- 把买断的净得当毛收入。 Tidecast 的 138,171 美元已经扣掉平台分成、退款和支付费,标价收入是 191,904 美元;用净得算 30% 平台分成会重复扣减。
- 用毛利率判断生意质量。 三者毛利率都不低,SDE 却差 3.8 倍;毛利率只说明直接成本结构,不说明固定成本和收入持续性。
- 忽略创始人薪酬。 LedgerLite 的 SDE 130,240 美元不是创始人可全部拿走的现金,扣掉 60,000 美元薪酬和 11,941 美元所得税后,净利润是 58,299 美元。
- 把 SDE 当自由现金流。 SDE 还没扣营运资金变化、资本开支和债务偿还;LedgerLite 的经营现金流是 64,299 美元,净现金增加 61,299 美元。
- 用单月销量外推买断收入。 Tidecast 月均 800 份,但 12 月 2,400 份、1 月 480 份;用月均乘以 12 会抹平季节性,也会高估淡季现金。
- 把服务收入当成稳定收入。 Nord Studio 的咨询续约率只有 70%,每年有 30% 的服务收入需要重新赢得;服务收入不是订阅收入。
- 忽略平台账期。 Tidecast 的平台月结 30 天,LedgerLite 的 Net 15,Nord Studio 的 Net 30;同样一笔收入,到账时间不同,现金缺口也不同。
- 把一次性收入按经常性倍数估值。 Tidecast 的估值锚是 1.8 倍收入,LedgerLite 是 3.2 倍 ARR;倍数差异来自收入性质,不是谈判技巧。
- 用税前利润比较不同主体。 新加坡 17%、美国示例 24%、英国 25%,税率不同;比较净利润必须先统一税务假设。
- 忘记递延收入。 LedgerLite 年末递延收入增加 8,000 美元,经营现金流高于净利润;只看利润表会低估订阅业务的现金。
这三种生意的边界不是永久的。订阅可以叠加服务,服务可以产品化,买断可以转订阅;第 1.3 节会讨论转型的算术,第 4 章会讨论收入质量,第 11 章会把 SDE 和 ARR 放进估值倍数。本节的任务只是把三种生意的财务差异拆开,让后面的比较有同一把尺子。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。