一个软件产品的成本,很少只是它的服务器账单。
一个小 App 可以跑在便宜的基础设施上,同时依赖支付处理、邮件、监控、设计工具、域名、客服时间和开发者的注意力。当你经营好几个产品时,这些成本会相互重叠。信用卡账单显示的是整个产品组合花了多少钱,却看不出每个产品各自需要多少。
把直接服务、共用工具、经营者时间和不定期成本分开列出。
按五个成本层次来思考
1. 直接的基础设施和服务
这些成本因为某个具体产品存在而存在:专用计算、存储、数据库、事务性邮件、产品 API、域名,以及只为这个产品做的监控。记录哪些随用量变化、哪些是固定的,这样你就能估算产品增长时会发生什么。
2. 交易和分发成本
支付服务商、应用商店、平台市场、退款、拒付和货币兑换,可能都夹在用户付款和你实际到账之间。
使用一致的收入口径。如果你记录的是总销售额,就把这些扣减显示为成本。如果你只记录实际到账的净额,就不要再扣一次。
3. 共同经营成本
一个代码托管账户、设计套件、AI 助手、记账服务或分析订阅,可能支撑着每一个产品。把这些成本放进共同成本池,并使用有记录的分摊规则,例如平均分摊、按收入、按用量或有意设定的自定义比例。
如果不清楚的是分摊规则,先读共同 SaaS 成本分摊指南,再用共同成本分摊计算器试一试不同方案。
4. 人力和经营者的注意力
对很多独立产品来说,时间是最大的隐形投入。维护、客服、发版、合规、故障处理、内容,以及在不同事务之间切换,都在消耗时间。
把经营者时间和现金支出分开,但不要把它藏起来。按产品粗略记录工时,想看经济视角时再乘以一个内部时薪。这个时薪是规划假设,不是一张发票。
5. 不定期的义务和风险
年度续费、法律审查、报税、设备更换、安全事件和平台政策变化,并不是每个月都会出现,但产品组合必须承受它们。
把已知的年度支出安排在预计扣费的月份。如果折算成月均值来比较有帮助,把它作为单独的分析视图,而不是替换计划中的成本。对于不确定的事件,保留一笔组合层面的储备金或做场景分析,而不是给每个产品编一个精确金额。
一个假设的产品组合
说明:MarginDeck 是我开发的。本文介绍的是我自己在这个产品上的工作。
假设有三个虚构的产品:PocketLedger、ClipForge 和 TinyStatus。经营者既想看现金经营视角,也想看包含时间成本的经济视角。这个例子中的收入是扣除下面所列手续费之前的金额。如果你的收入数字已经扣除了它们,就不要再扣一次。经营者时间是另一项单独的经济成本估算,MarginDeck 不会自动记录它。
| 每月项目 | PocketLedger | ClipForge | TinyStatus |
|---|---|---|---|
| 收入 | $900 | $500 | $100 |
| 直接基础设施 | $60 | $100 | $15 |
| 交易手续费 | $30 | $20 | $5 |
| 其他直接服务 | $20 | $40 | $0 |
这个组合每月还要支付 $300 的共用软件费用。在这个例子里,经营者选择按收入分摊。收入占比分别为 60%、约 33.3% 和约 6.7%,所以分摊金额是 $180、$100 和 $20。
经营者每月投入的时间估计为 5、10 和 3 小时。按假设的内部时薪每小时 $40 计算,时间价值分别是 $200、$400 和 $120。
| 结果 | PocketLedger | ClipForge | TinyStatus |
|---|---|---|---|
| 现金成本(含共同成本分摊) | $290 | $260 | $40 |
| 现金贡献 | $610 | $240 | $60 |
| 经营者时间价值 | $200 | $400 | $120 |
| 扣除经营者时间后的经济贡献 | $410 | -$160 | -$60 |
这个例子并不能证明 ClipForge 或 TinyStatus 应该关停。ClipForge 可能正处在计划中的投入期;TinyStatus 可能有战略价值,或者快要不需要维护了。
但它揭示了其中的取舍。只看现金看板,三个产品都在做贡献;加上时间之后,在所选的假设下,有两个产品目前消耗的经济价值多于它们创造的价值。
按你实际在运营的产品来算成本
一个常见错误是按理想化的架构建模,而不是按当前的产品。一个没用上的高级数据库套餐仍然是真实的现金成本;为一位老用户保留的客服工具也是。
检查实际的周期性账目,对每一行问:
- 如果这个产品不存在了,这项成本会消失吗?
- 它会随用户、用量或收入增长吗?
- 它是共用的吗?如果是,受益程度由什么决定?
- 它是当前必需、只是方便,还是被遗忘的浪费?
- 这个月度数字是否掩盖了一笔年度承诺?
把维护拖累算进去
收入和现金成本完全相同的两个产品,价值可能差别很大。
一个可能每月只需要一次安静的依赖更新;另一个可能频繁打断你处理客服、发版容易出问题、反复经历平台审核。工时能反映一部分差异,但被打断的成本同样重要。十个零散的十五分钟任务,可能比同样时长的一整块专注时间更具干扰性。
你不需要秒表。用维护、客服、增长工作和故障处理这样粗略而一致的分类来估算,每月复盘一次。如果某个产品反复消耗超出预期的注意力,即使估算不完美,这个规律也值得你做出决定。
区分沉没成本和未来成本
过去的开发投入可以解释你为什么舍不得一个产品,但不应该决定下一笔投入。把预期的未来收益和未来的现金、时间与风险放在一起比较。已经花了一年开发一个 App,并不能靠再花一年把它赚回来。
历史投入可以留着用于学习和回顾分析。除非它改变了某项未来义务,否则不要让它进入“继续、扩大、维持还是停止”这种面向未来的决定。
在增长到来之前先建模
有些软件成本会在很长时间里保持不变,然后在某个价格档位突然跳升;另一些会随请求、存储、消息或交易量平滑上升。
对每一项重要成本,记下它的驱动因素和下一个门槛,然后模拟几个场景:
- 当前的用量和收入;
- 收入翻倍、用户行为类似;
- 用量翻倍但收入没有翻倍;
- 供应商把你移到下一个计费档位;
- 产品进入低维护模式。
这些不是需要虚假精度的预测,而是压力测试。一个今天利润率健康的产品,可能建立在一个成本增长快于定价的 API 之上。
开发“即将发生的成本”视图让我学到的事
在开发 MarginDeck 的“即将发生的成本”视图时,我必须把几个很容易被压成一个月度数字的事实分开:金额、扣费日期、重复周期、停止月份和产品分摊。一笔 $120 的年度续费和一个每月 $10 的订阅,月均成本可能一样,但它们带来的现金安排和取消决定完全不同。
MarginDeck 里的推算来自用户记录的计划,它不会假装知道银行或供应商实际会扣多少钱。这个约束也让我在自己的复盘中坚持一条有用的规则:把预期计划、实际现金扣款和产品层面的经营成本当作相关但不同的视图。
这让不确定性更容易看见,也让行动更具体:更新一项计划、为某个续费月份做准备、从某个未来日期停止一项周期性成本,或者调查一笔和计划不一致的扣款。
把清单变成每月的习惯
从一份周期性成本登记表开始,包含供应商、金额、计费周期、续费日期、所属产品、成本驱动因素,以及取消后的影响。
每月一次:
- 核对各产品的实际收入和直接成本。
- 检查新增、取消或变化的订阅。
- 按有记录的规则分摊共同成本池。
- 在单独的经济视图中加上粗略的经营者工时。
- 把各产品的贡献与上个月比较。
- 选一个具体行动。
这个行动可能是取消一个多余的工具、更换套餐、提价、简化客服,或者明确接受一项补贴,直到某个具体的复盘日期。
每个季度,再回顾一次更大的结构:哪些产品值得投入增长工作,哪些应该保持维护,哪些已经不值得它们带来的义务。
为实验设定预算
如果要求每个实验都立刻盈利,真实成本分析就可能变得过于苛刻。探索有价值,有些产品需要一段明确的投入期。
关键是把这笔投入说清楚。“这个产品在 11 月之前每月最多使用 $300 和 12 小时”是一个可管理的决定;“它基本不花钱”往往掩盖了越来越多的订阅和打断。
一张电子表格就足以建立第一个清晰的视图,你可以把它和贡献利润指南中的方法结合起来。如果管理这些关系变得繁琐:说明一下,我是 Junhua,我开发了 MarginDeck,它专注于多个产品的成本和盈利情况。