《独立开发者的商业指南·资本与退出》1.3 什么时候不该融资

LedgerLite 的经营现金流 64,299 美元、CAC 140 美元、回本 2.2 个月,增长可以自给;Nord 的 SDE 只有 34,320 美元,按 4.5× 估值融 10 万美元要出让 39.3%,还要让出治理权。本节给出四个不该融资的条件,并把每个条件变成一个可计算的判据。

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

「不该融资」不是一句道德判断,而是一句价格判断。融资有价格:股权比例、治理条款、退出门槛。价格合适,融资买的是速度;价格不合适,融资买的是负担。判断该不该融,不需要预测未来,只需要把四个条件逐个变成可计算的数。

这四个条件是:现金流为正、增长不依赖资本、估值不过低、治理代价不高于收益。四个条件不必同时成立;任何一个成立,都足以让创始人先停下来算一算,而不是先签 term sheet。本节用 LedgerLite 和 Nord Studio 做正反两个方向的计算,Tidecast 只做一段对照。

条件一:现金流为正

LedgerLite 的年经营现金流是 64,299 美元,扣除 3,000 美元设备投资后,净现金增加 61,299 美元,年末现金 95,000 美元。月运营费用是 72,000 ÷ 12 = 6,000 美元;加上创始人薪酬 60,000 美元,月固定支出是 11,000 美元。

指标金额计算
年末现金$95,000资产负债表
月运营费用$6,00072,000 ÷ 12
只算运营费用的 runway15.8 个月95,000 ÷ 6,000
含创始人薪酬的 runway8.6 个月95,000 ÷ 11,000
经营现金流$64,299SDE 130,240 − 薪酬 60,000 − 税 11,941 + 递延 8,000 − 应收 2,000
净现金增加$61,299经营现金流 64,299 − 设备 3,000

经营现金流为正,意味着公司不融资也能活下去。8.6 到 15.8 个月的 runway 不是无限的,但它给了创始人一个选项:可以融资,也可以不融资。这个选项本身就是谈判筹码。现金流为负时,融资是生存问题,估值和条款都没有太多拒绝的余地;现金流为正时,融资是加速问题,创始人可以对低估值和重治理条款说不。runway 的下限口径见 8.3 现金下限与 runway floor 。

条件二:增长不依赖资本

LedgerLite 的 CAC 是 140 美元,月毛利/客户是 77 × 84.2% = 64.8 美元,回本周期是 140 ÷ 64.8 = 2.2 个月,LTV 是 64.8 ÷ 1.5% = 4,320 美元,LTV/CAC = 30.9。每一个新客户在 2.2 个月内就能把获客成本赚回来,增长本身是自融资的。

指标数值计算或含义
CAC$140年营销 16,800 ÷ 年新签 120 家
月毛利/客户$64.877 × 84.2%
回本周期2.2 个月140 ÷ 64.8
LTV$4,32064.8 ÷ 1.5%
LTV/CAC30.94,320 ÷ 140
年营销预算$16,800当前增长投入
SDE 覆盖7.75×130,240 ÷ 16,800
经营现金流覆盖3.83×64,299 ÷ 16,800

SDE 是当前营销预算的 7.75 倍,经营现金流是 3.83 倍。也就是说,即使不融资,LedgerLite 也能把现有增长计划再放大数倍。融资在这里买的不是「能不能增长」,而是「增长能快多少」。如果增长依赖库存、硬件、监管资本或长销售周期,结论会反过来;LedgerLite 的 SaaS 模式没有这些约束,所以它的增长不依赖外部资本。

条件三:估值过低

Nord Studio 的 SDE 是 34,320 美元。按案例锚 4.5× SDE,估值是 154,440 美元;按服务收入占 72.7%、依赖两位合伙人的折价 3.0× SDE,估值是 102,960 美元。假设 Nord 融资 100,000 美元,两种锚下的稀释如下。倍数口径见 11.1 三种估值口径 。

锚pre-money融资额post-money稀释
4.5× SDE$154,440$100,000$254,44039.3%
3.0× SDE$102,960$100,000$202,96049.3%

在 4.5× 锚下,100,000 美元要换走 39.3% 的股份;在 3.0× 折价锚下,要换走 49.3%。这不是一个小比例。更关键的是,这笔钱要买到多少增长,才能对得起让出的股份?

按同样的倍数做价值中性检验:融资 100,000 美元,在 4.5× 下需要新增 100,000 ÷ 4.5 = 22,222 美元 SDE;在 3.0× 下需要新增 100,000 ÷ 3.0 = 33,333 美元 SDE。Nord 当前 SDE 是 34,320 美元,22,222 美元相当于增长 64.7%,33,333 美元相当于增长 97.1%。

检验项4.5× 锚3.0× 折价锚
融资额$100,000$100,000
价值中性所需新增 SDE$22,222$33,333
占当前 SDE 34,320 的比例64.7%97.1%
这笔钱能覆盖第三位员工 55,000/年多久1.82 年1.82 年
第三位员工盈亏平衡所需新增收入$75,000$75,000
新增收入占当前收入 154,320 的比例48.6%48.6%

100,000 美元能覆盖第三位员工 1.82 年的工资,但这位员工需要带来 75,000 美元新增收入才能覆盖自己的工资与税,相当于当前收入的 48.6%。如果这笔钱买不到这样的增长,融资就没有通过价值中性检验:创始人让出了 39.3% 到 49.3% 的股份,却没有换回同等比例的 SDE 增长。这就是「融资的钱买不到相应增长」的具体含义。

条件四:治理代价高于收益

Nord 是两位合伙人各 50%,没有期权池,也没有书面退出条款。引入一个持股 39.3%、拿到一个董事会席位的投资人后,两位合伙人从各 50% 降到各 30.35%,50/50 的平衡被打破:一位合伙人加上投资人,可以在董事会和股东表决中压过另一位合伙人。治理代价不只是稀释,它是决策权的重新分配。

优先清算权是治理代价里最容易量化的一项。假设投资人投入 100,000 美元、持股 39.3%、条款是 1x 优先清算权。在 4.5× 锚的 154,440 美元退出时,投资人先拿走 100,000 美元,两位合伙人只剩 54,440 美元,每人 27,220 美元;不融资时,每人可以拿 77,220 美元。

退出估值无融资:每位合伙人融资后:投资人融资后:每位合伙人
$154,440$77,220$100,000$27,220
$254,440$127,220$100,000$77,220
$400,000$200,000$157,200$121,400

创始人要把退出做到 254,440 美元,每位合伙人才回到不融资时 154,440 美元退出下的 77,220 美元。也就是说,融资后的公司必须比原锚多值 100,000 美元,合伙人才能在绝对金额上打平;这正好等于融资额。低于这条线,融资让合伙人更穷,同时还让出了治理权。

把治理代价按锚定估值的比例折算,Nord 的教学假设是 70%:154,440 × 70% = 108,108 美元,已经超过 100,000 美元的融资额。LedgerLite 的教学假设是 10%:768,768 × 10% = 76,877 美元,低于 300,000 美元的融资额。治理代价超过融资额时,融资在经济上已经不划算,董事会席位和否决权只是把这个问题放大。

把四个条件写成一个判据

下面的 no-funding.ts 把四个条件变成 evaluateFundingNeed 的输入与输出:现金流是否为正、增长投入是否在现金流覆盖范围内、按锚定估值计算的稀释是否超过上限、治理成本是否超过融资额。它不替创始人做决定,只把四个判断并排放在一张表上。

// file: src/capital/no-funding.ts
// tier: L1
// verify: node --test test/capital/no-funding.test.ts

import { type Cents } from "../core/money.ts";
import { type Bps, applyRate, divide } from "../core/rate.ts";
import { type Result, fail, ok } from "../core/result.ts";

export type FundingRecommendation = "raise" | "self-fund" | "debt";

export type FundingNeedInput = {
  annualOperatingCashFlowCents: Cents;
  annualGrowthSpendCents: Cents;
  currentSdeCents: Cents;
  raiseCents: Cents;
  preMoneyCents: Cents;
  anchorValueCents: Cents;
  valuationMultipleBps: Bps;
  governanceCostBps: Bps;
  maxDilutionBps: Bps;
};

export type FundingNeedResult = {
  positiveCashFlow: boolean;
  selfFundsGrowth: boolean;
  dilutionAtPreMoneyBps: Bps;
  dilutionAtAnchorBps: Bps;
  valuationTooLow: boolean;
  requiredSdeIncreaseCents: Cents;
  requiredSdeGrowthBps: Bps;
  governanceCostCents: Cents;
  governanceExceedsRaise: boolean;
  recommendation: FundingRecommendation;
};

function positive(value: number, label: string): string | null {
  if (!Number.isInteger(value) || value <= 0) {
    return `${label} must be a positive integer`;
  }
  return null;
}

function nonNegative(value: number, label: string): string | null {
  if (!Number.isInteger(value) || value < 0) {
    return `${label} must be a non-negative integer`;
  }
  return null;
}

/**
 * Four tests decide whether equity is the right source. Two are about need:
 * operating cash flow is positive, and growth spend fits inside that cash
 * flow. Two are about price: dilution at the defensible anchor stays under
 * the limit, and the estimated governance cost stays below the cash raised.
 * A positive answer on all four does not forbid raising; it says the company
 * can grow without selling equity, so any round should be for acceleration or
 * a buffer, not for survival.
 *
 * The required SDE increase is the value-neutral test: at a given SDE
 * multiple, the cash raised must eventually add raise / multiple of SDE, or
 * the founder has sold a share of the company for cash that did not create
 * matching value.
 */
export function evaluateFundingNeed(
  input: FundingNeedInput,
): Result<FundingNeedResult> {
  if (!Number.isInteger(input.annualOperatingCashFlowCents)) {
    return fail("operating cash flow must be an integer amount in cents");
  }
  const growthError = nonNegative(
    input.annualGrowthSpendCents,
    "annual growth spend",
  );
  if (growthError) {
    return fail(growthError);
  }
  const sdeError = positive(input.currentSdeCents, "current sde");
  if (sdeError) {
    return fail(sdeError);
  }
  const raiseError = positive(input.raiseCents, "raise");
  if (raiseError) {
    return fail(raiseError);
  }
  const preMoneyError = positive(input.preMoneyCents, "pre-money");
  if (preMoneyError) {
    return fail(preMoneyError);
  }
  const anchorError = positive(input.anchorValueCents, "anchor value");
  if (anchorError) {
    return fail(anchorError);
  }
  const multipleError = positive(
    input.valuationMultipleBps,
    "valuation multiple",
  );
  if (multipleError) {
    return fail(multipleError);
  }
  const governanceError = nonNegative(
    input.governanceCostBps,
    "governance cost",
  );
  if (governanceError) {
    return fail(governanceError);
  }
  if (input.governanceCostBps > 10000) {
    return fail("governance cost must be at most 10000 bps");
  }
  const maxDilutionError = nonNegative(
    input.maxDilutionBps,
    "maximum dilution",
  );
  if (maxDilutionError) {
    return fail(maxDilutionError);
  }
  if (input.maxDilutionBps > 10000) {
    return fail("maximum dilution must be at most 10000 bps");
  }

  const positiveCashFlow = input.annualOperatingCashFlowCents > 0;
  const selfFundsGrowth =
    input.annualOperatingCashFlowCents >= input.annualGrowthSpendCents;

  const dilutionAtPreMoneyBps = divide(
    input.raiseCents,
    input.raiseCents + input.preMoneyCents,
  );
  const dilutionAtAnchorBps = divide(
    input.raiseCents,
    input.raiseCents + input.anchorValueCents,
  );
  const valuationTooLow = dilutionAtAnchorBps > input.maxDilutionBps;

  const requiredSdeIncreaseCents = Math.round(
    (input.raiseCents * 10000) / input.valuationMultipleBps,
  );
  const requiredSdeGrowthBps = divide(
    requiredSdeIncreaseCents,
    input.currentSdeCents,
  );

  const governanceCostCents = applyRate(
    input.anchorValueCents,
    input.governanceCostBps,
  );
  const governanceExceedsRaise =
    governanceCostCents > input.raiseCents;

  let recommendation: FundingRecommendation;
  if (positiveCashFlow && selfFundsGrowth) {
    recommendation = "self-fund";
  } else if (
    !positiveCashFlow &&
    !valuationTooLow &&
    !governanceExceedsRaise
  ) {
    recommendation = "raise";
  } else {
    recommendation = "debt";
  }

  return ok({
    positiveCashFlow,
    selfFundsGrowth,
    dilutionAtPreMoneyBps,
    dilutionAtAnchorBps,
    valuationTooLow,
    requiredSdeIncreaseCents,
    requiredSdeGrowthBps,
    governanceCostCents,
    governanceExceedsRaise,
    recommendation,
  });
}

代码里的 requiredSdeIncreaseCents 是价值中性检验的核心:融资额除以估值倍数,得到这笔钱必须买回多少 SDE。valuationTooLow 用锚定估值而不是谈判估值计算,因为谈判估值可以被包装,锚定估值是买方在尽调后愿意付的价格。governanceExceedsRaise 则把治理代价折成美元,和融资额直接比较。

判据LedgerLiteNord Studio
经营现金流$64,299$25,740
年增长投入$16,800$55,000
现金流覆盖增长是,3.83×否,0.47×
锚定估值稀释28.1%39.3%
估值过低(上限 30%)否是
治理成本 ÷ 融资额76,877 ÷ 300,000 = 25.6%108,108 ÷ 100,000 = 108.1%
判据结论可自给不融股权,考虑债

LedgerLite 的结论是「可自给」:现金流覆盖增长,锚定估值稀释 28.1% 没有超过 30% 的上限,治理成本只占融资额的 25.6%。这不等于它永远不该融资;它意味着融资的理由必须是加速,而不是生存。Nord 的结论是「不融股权,考虑债」:现金流覆盖不了 55,000 美元的第三人成本,锚定估值稀释 39.3% 超过上限,治理成本 108,108 美元超过融资额 100,000 美元。三个条件同时指向同一个方向,融资的性价比就很低。

Tidecast 是第三种对照。它年净得 138,171 美元、SDE 121,171 美元,买断制没有续费基数;下一部作品的 120,000 美元预算用自有现金更合适,股权融资买不到一条可续期的收入流。

小结

  • 条件一:LedgerLite 经营现金流 64,299 美元、净现金增加 61,299 美元;只算运营费用的 runway 是 15.8 个月,含创始人薪酬是 8.6 个月。现金流为正,融资不是生存问题。
  • 条件二:CAC 140 美元、回本 2.2 个月、LTV/CAC 30.9;SDE 是营销预算的 7.75 倍,经营现金流是 3.83 倍。增长可以自给,融资买的是速度。
  • 条件三:Nord 按 4.5× SDE 融 100,000 美元出让 39.3%,按 3.0× 出让 49.3%;价值中性需要新增 22,222 到 33,333 美元 SDE,相当于当前 SDE 的 64.7% 到 97.1%。
  • 条件四:Nord 的治理成本按锚定估值 70% 算是 108,108 美元,超过 100,000 美元融资额;4.5× 锚退出时每位合伙人从 77,220 美元降到 27,220 美元。
  • 四个条件不用同时成立;任何一个成立,都值得先算一算再签 term sheet。

阅读导航:上一节:1.2 融资的稀释与治理代价 · 下一节:2.1 股权结构与表决权 。

常见错误与边界

  1. 把「现金流为正」当成「永远不需要融资」。 LedgerLite 的 runway 是 8.6 到 15.8 个月,不是无限;现金流为正只说明融资是选项,不是生存必需。
  2. 用当前 CAC 外推所有增长。 140 美元 CAC 对应的是当前渠道和当前规模;渠道饱和后 CAC 会上升,回本周期会变长,条件二的结论也会变。
  3. 用谈判估值代替锚定估值。 谈判估值可以被包装;判断估值是否过低,要用尽调后买方愿意付的锚定估值,而不是 term sheet 上的 pre-money。
  4. 只看稀释比例,不看价值中性检验。 39.3% 的稀释是否合理,取决于 100,000 美元能不能买回 22,222 美元新增 SDE;买不回来,稀释就是净损失。
  5. 把治理代价当成「虚的」。 Nord 的 1x 优先清算权在 154,440 美元退出时让每位合伙人从 77,220 美元降到 27,220 美元,这是实打实的现金差额。
  6. 忽略融资额与治理成本的比较。 108,108 美元的治理成本超过 100,000 美元融资额时,融资在经济上已经不划算,董事会席位只是把问题放大。
  7. 把 Nord 的结论套到所有服务型公司。 Nord 的特殊性是两位合伙人各 50%、服务收入 72.7%、前 3 家客户占 48%;换一家服务公司,三个数字都要重算。
  8. 把 Tidecast 的买断制当成「不需要资本」。 它不需要股权融资,是因为 138,171 美元净得可以覆盖下一部作品的 120,000 美元预算;如果下一部作品预算更高,结论会变。
  9. 把「不融资」当成「不增长」。 条件二的核心是增长可以自融资;不融资只意味着不用股权换速度,不意味着放弃增长。
  10. 把本节的比例当成真实报价。 30% 稀释上限、70% 治理成本、8% 到 12% 利率都是教学假设;真实交易需要专业意见,本节只做算术。

继续阅读

探索更多技术文章

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

全部文章 返回首页

「books」更多文章

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