《独立开发者的商业指南·收入与财务工程》1.1 三种生意:订阅、买断、服务的财务差异

三个案例的年收入都在 13.8 万到 24 万美元之间,SDE 却相差近四倍。本节用同一张利润表拆开订阅、买断与服务三种生意,比较毛利结构、现金节奏与可复算口径,并把 pnl.ts 跑成三行可对照的结果,最后说明估值倍数差异背后的财务来源。

以下情境为教学假设,人物与数字不代表经核实的真实案例。

三个案例摆在同一条时间轴上,第一眼看上去差别不大: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 的案例事实表,本节不做额外推断。

项LedgerLiteTidecastNord 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,7681.8× 收入 = $248,7084.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 − 创始人薪酬
净利润 = 税前利润 − 所得税

三个案例代入后得到下表。金额单位为美元,比率按精确金额计算后再四舍五入展示。

项LedgerLiteTidecastNord 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% 不等。

指标LedgerLiteTidecastNord 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 为例,从客户数到净利润一共七步:

步骤公式结果
MRR260 家 × $77$20,020
ARR$20,020 × 12$240,240
毛利$240,240 − $38,000$202,240
毛利率$202,240 ÷ $240,24084.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 节用来计算收入组合。

估值锚在比较什么

三个案例的估值锚用的是三种不同的基数,不能直接比大小:

案例估值锚计算结果基数为什么不同
LedgerLite3.2× ARR3.2 × $240,240$768,768订阅收入可续,按年化经常性收入定价
Tidecast1.8× 收入1.8 × $138,171$248,708买断收入一次性,按历史收入打折
Nord Studio4.5× SDE4.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 收入模型组合:主收入与第二收入线 。

常见错误与边界

  1. 把买断的净得当毛收入。 Tidecast 的 138,171 美元已经扣掉平台分成、退款和支付费,标价收入是 191,904 美元;用净得算 30% 平台分成会重复扣减。
  2. 用毛利率判断生意质量。 三者毛利率都不低,SDE 却差 3.8 倍;毛利率只说明直接成本结构,不说明固定成本和收入持续性。
  3. 忽略创始人薪酬。 LedgerLite 的 SDE 130,240 美元不是创始人可全部拿走的现金,扣掉 60,000 美元薪酬和 11,941 美元所得税后,净利润是 58,299 美元。
  4. 把 SDE 当自由现金流。 SDE 还没扣营运资金变化、资本开支和债务偿还;LedgerLite 的经营现金流是 64,299 美元,净现金增加 61,299 美元。
  5. 用单月销量外推买断收入。 Tidecast 月均 800 份,但 12 月 2,400 份、1 月 480 份;用月均乘以 12 会抹平季节性,也会高估淡季现金。
  6. 把服务收入当成稳定收入。 Nord Studio 的咨询续约率只有 70%,每年有 30% 的服务收入需要重新赢得;服务收入不是订阅收入。
  7. 忽略平台账期。 Tidecast 的平台月结 30 天,LedgerLite 的 Net 15,Nord Studio 的 Net 30;同样一笔收入,到账时间不同,现金缺口也不同。
  8. 把一次性收入按经常性倍数估值。 Tidecast 的估值锚是 1.8 倍收入,LedgerLite 是 3.2 倍 ARR;倍数差异来自收入性质,不是谈判技巧。
  9. 用税前利润比较不同主体。 新加坡 17%、美国示例 24%、英国 25%,税率不同;比较净利润必须先统一税务假设。
  10. 忘记递延收入。 LedgerLite 年末递延收入增加 8,000 美元,经营现金流高于净利润;只看利润表会低估订阅业务的现金。

这三种生意的边界不是永久的。订阅可以叠加服务,服务可以产品化,买断可以转订阅;第 1.3 节会讨论转型的算术,第 4 章会讨论收入质量,第 11 章会把 SDE 和 ARR 放进估值倍数。本节的任务只是把三种生意的财务差异拆开,让后面的比较有同一把尺子。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「books」更多文章

  1. 《移动游戏产品的架构·商业化与发行工程》附录 C 商业化与发行评审清单
  2. 《移动游戏产品的架构·商业化与发行工程》附录 B 双案例商业化事实表
  3. 《移动游戏产品的架构·商业化与发行工程》附录 A 商业化与发行术语速查