使用方法
- 页面上方四个数字框分别是 ARPU(每用户月均收入,元)、毛利率(0 到 1 的小数)、平均寿命(月)与 CAC(每获得一位新客的获客成本,元)。四个框都写了 min、max、step,浏览器会先拦住超范围的键盘微调,脚本随后还会再校验一遍。
- 改完任意一个数字框,直接按 Enter 就会重算,不必去找按钮。下方「计算 LTV/CAC」按钮做的是同一件事,适合纯鼠标操作。
- 多行文本框是批量试算用的:每行写一组「ARPU,毛利率,寿命,CAC」,半角逗号分隔。它默认已经直出四行样本,打开页面就能看到结果;若清空后又想恢复,点「载入示例」。多行输入约定 Ctrl/Cmd + Enter 触发,避免换行时误触发。
- 结果区带 role="alert",读屏软件会朗读「LTV、比值、回本周期、毛利率倒数、月毛利」五张卡片,以及
<pre>里的逐行推导。推导把每一步的代入数字都列出来,方便你拿计算器手工复核。 - 点「复制结果」把推导快照存进剪贴板;「导出对照表 CSV」下载带 BOM 的表格,Excel 打开不乱码;「复制对照表 TSV」把整张表按制表符复制,可直接粘进表格软件。对照表默认只显示 12 行,点「加载更多」展开其余 4 行。
整个流程没有一步需要提交到服务器:不发起网络请求、不写 Cookie、不碰 localStorage,关掉页面数据就不在了。这也是本页敢把「输入即算」做成实时刷新的前提。
这个工具能解决什么问题
第一,把「LTV/CAC 要够大」这句口号拆成几个能核对的数。很多人只会背结论,真到复盘时说不清比值是从哪来的、自己的业务该填哪几个变量。本页把客户终身价值、获客成本、比值、回本周期一次性摆出来,任何一个数改动,其余几个立刻跟着变,口径透明,不需要信任黑箱。
第二,堵住「拿收入当价值」这个最常见的虚高 bug。客户的月均收入并不等于公司赚到的钱,中间要扣掉履约、带宽、售后、支付通道这些变动成本;毛利率就是把收入折成毛利的折扣系数。用收入直接乘寿命,会把 LTV 系统性放大,进而让比值虚高、让投放决策偏乐观。本页强制先乘毛利率,并把毛利率倒数单独列成一张卡片,提醒你每 1 元毛利背后对应多少收入。
第三,回答「钱多久能收回来」。比值高低只说明长期划算不划算,现金流却要看回本周期:同样的比值,客单价低、毛利薄的业务可能要压上好几个月才能把获客成本赚回来,期间还要持续垫付投放费用。本页把回本周期按「CAC ÷ 月毛利」单独算出来,让财务和投放能在同一张表上对话。
顺便说明边界:本页不做同期群留存曲线、不引入折现率、不拆分渠道,也不预测流失率随时间的变化,它只是把四个稳态变量代入公式并给出可复核的算术结果。另外,旧占位配置曾把本页错标成房贷价值比(Loan-to-value)并套用「贷款金额除以房产数值再乘百分比」的公式,那套字段和公式与客户经济毫无关系;用户终身价值比值计算器这一名称所指的模型里没有房产、没有抵押,也不会出现任何百分比式的抵押率,请以本页正文的四个变量为准。
计算原理与四个变量
先把四个变量写死,避免口误:ARPU 是一位客户平均每月带来的收入;毛利率 g 是 0 到 1 之间的小数,0.6 表示收入里六成是毛利;平均寿命 L 以月为单位,是客户从获取到流失的平均存续月数;CAC 是获得一位新客平均花掉的投放与销售成本。四者都用同一货币单位(本页以元计),量纲一致才能相除。
LTV = ARPU × 毛利率 × 平均寿命。这一步的关键是「先折毛利、再乘时间」:月毛利是 ARPU × g,把月毛利铺到 L 个月上,得到整个生命周期贡献的毛利总额,这才是客户终身价值的口径。若跳过 g,得到的只是累计收入,不是价值。
比值 = LTV ÷ CAC。它衡量每花 1 元获客成本能换回多少元生命周期毛利,是无量纲数。回本周期(月)= CAC ÷ (ARPU × 毛利率),分母正是月毛利,含义是「需要攒几个月的毛利才够抵掉一位新客的获客成本」。还有一个恒等式值得记住:把比值展开可得 比值 = LTV/CAC = (ARPU×g×L)/CAC = L ÷ (CAC/(ARPU×g)) = 平均寿命 ÷ 回本周期,所以本页在推导里会顺手用「寿命 ÷ 回本周期」回代校验比值,两者对不上就说明代入有误。
毛利率倒数 = 1 ÷ 毛利率,例如 g 取 0.6 时倒数是 1.6667,含义是每凑出 1 元毛利,账面上需要先有约 1.6667 元收入。它把「收入」和「毛利」两个口径之间的倍数关系量化出来,也是判断「用收入直接算会虚高多少倍」的现成标尺。
本页真正要讲透的是:比值不是健康度,回本周期才是。行业里常把 LTV/CAC 约等于 3 当作经验线,但那只是长期是否划算的粗略门槛,它完全不告诉你资金被占用多久。更麻烦的是,比值对毛利率和寿命都很敏感:同样的 CAC,把毛利率调低或把寿命拉长,都可能把比值推高,可前者的月毛利变薄、回本被拉长,后者的回本时间却几乎不变,二者的现金流含义完全不同。只有把 CAC ÷ (ARPU × 毛利率) 单独算出来,才知道要垫几个月;若图省事用收入代替毛利去算,等于把 LTV 放大了 1/g 倍,比值随之虚高,回本周期却被算短,两个方向一起误导决策。因此本页坚持三件事:LTV 必须先乘毛利率、比值与回本周期必须并列给出、任何只看比值就下结论的说法都要补上回本月数。
顺带补一句与量纲换算类工具的区别:这里没有换算系数,也没有「有效数字」的取舍问题;四个变量是业务口径而非物理量,改一个就是改一个假设,结果会老老实实跟着变,不会因为是约数就替你截断。
完整示例(默认参数实算)
默认单组参数是:ARPU 100 元、毛利率 0.6、平均寿命 24 月、CAC 300 元。这四个数只是输入;下面每一格结果都由本页脚本按上面的公式实算后填入,页面源码里没有写死任何结果:
- LTV = 100 × 0.6 × 24 = … 元;
- 月毛利 = 100 × 0.6 = … 元;
- LTV/CAC 比值 = …;
- 回本周期 = 300 ÷ 月毛利 = … 月;
- 毛利率倒数 = 1 ÷ 0.6 = …,即每 1 元毛利对应约 1.6667 元收入的口径由此而来。
换一组更保守的假设:ARPU 80、毛利率 0.5、平均寿命 12 月、CAC 仍为 300。脚本实算得 LTV = …、比值 = …、回本周期 = … 月。毛利率与寿命一起下调,比值明显回落,回本周期却变长,这正是只盯比值会漏掉的现金流信息。
结果区的逐行推导还会把「平均寿命 ÷ 回本周期」回代一遍,确认它等于比值;批量文本框里四行样本同样用这个函数逐行算。任一数字框改动,卡片与推导同步刷新,示例里的输入值只是描述文字,真正显示的数字始终来自脚本。
对照表怎么读
工具区下方那张表不是抄来的静态数字,而是由脚本对 16 组参数逐行调用同一个计算函数生成的:列依次是场景名、ARPU、毛利率、寿命、CAC、LTV、比值、回本周期,后三列全部是算出来的。默认显示 12 行,点「加载更多」展开其余 4 行;「导出对照表 CSV」给带 BOM 的文件,「复制对照表 TSV」给制表符文本,两者都覆盖展开后的全部行,不会漏掉隐藏部分。
读表时建议竖着比:把「薄利长跑」和「主力套餐」对照,看毛利率下调后 LTV 与比值怎么掉、回本周期怎么涨;再把「高客单」和「主力套餐」对照,看 CAC 抬高对回本周期的直接影响。表里刻意安排了寿命相同而毛利率不同、CAC 相同而寿命不同等组合,就是为了让「比值升高不等于回本变快」这件事在数字上站得住。
如果你只关心自己那几组数,不必逐行读表:把参数写进批量文本框,按 Ctrl/Cmd + Enter,结果区会逐行打印每组的 LTV、比值与回本月数,比翻表更快。表格与批量结果用的是同一套校验,非法行不会被静默归零。
结果边界与舍入规则
- 毛利率为 0 或大于 1。毛利率等于 0 会让 LTV 与月毛利都变成 0,回本周期的分母为零,本页不会把它算成 0 或无穷,而是直接中止并提示「毛利率必须是大于 0 且不超过 1 的小数」;超过 1 同样拦下,因为那意味着毛利大于收入。
- ARPU 或 CAC 为空、非数字、为负。四种情况各有自己的报错文案,指名到具体输入框和当前值,例如 ARPU 会提示有效区间是 0.01 到 1000000。脚本不会用「取不到就当 0」的写法把非法值悄悄兜底,因为那会算出一个看似正常、实则错的比值。
- 寿命不是整数或越界。平均寿命要求 1 到 600 之间的整数月;带小数、写 0、写成负数都会得到对应的具体提示,而不是被截断后继续算。
- 除零保护。即便四个数都合法,脚本仍会在算回本周期前检查月毛利是否大于 0;一旦为零就报告「月毛利为 0,回本周期不可计算」,绝不输出 Infinity 或 NaN 之类的占位符。
- 舍入。中间量按四位小数格式化并去掉末尾的 0:1440 就显示 1440,4.8 显示 4.8,5 显示 5,1.6667 显示 1.6667。比值与回本周期不按「有效数字」截断,也不做四舍五入到整数月——垫资几个月是现金流事实,报 5 就是 5,不会替你美化。
- 数值范围。ARPU 上限 1000000、CAC 上限 10000000、寿命上限 600 月,是为了避免溢出到无意义的天文数字;超出上限会明确报错,而不是把结果截断成上限值。所有计算都在双精度范围内完成。
- 本地性。整条链路只有乘法、除法与字符串拼接,没有 fetch、没有表单提交、没有第三方脚本,也不写 Cookie 或 localStorage。打开开发者工具的 Network 面板反复点计算,列表始终是空的。
常见问题
LTV/CAC 到底多少才算健康?
行业里常引用约等于 3 的经验线,但它只是「长期是否划算」的粗门槛,不是健康证明。本页把比值与回本周期并列给出,就是提醒你再问一句「几个月回本」:比值再高,若回本要拖很久,投放仍会挤占现金流。看两个数,比只背一个门槛稳。
为什么一定要先乘毛利率,不能直接用收入?
因为客户带来的收入里有相当一部分要支付给履约、带宽、售后等变动成本,公司真正留下的是毛利。用收入乘寿命,LTV 会被放大 1/毛利率 倍;毛利率倒数就是这层倍数,默认 0.6 时是 1.6667。比值虚高、回本周期被算短,两个方向一起误导。
回本周期是 LTV/CAC 的倒数吗?
不是。回本周期 = CAC ÷ (ARPU × 毛利率),分母是月毛利;比值 = LTV ÷ CAC = (ARPU × 毛利率 × 寿命) ÷ CAC。两者满足恒等式「比值 = 平均寿命 ÷ 回本周期」,所以默认样本里 24 ÷ 5 正好等于 4.8。它们从不同角度描述同一组假设,不能互相替代。
毛利率填 0 或 1 会怎样?
填 1 是合法的,表示收入全部是毛利,毛利率倒数变成 1,LTV 达到该 ARPU 与寿命下的上限;填 0、负数或大于 1 会被拦下并给出具体提示,因为前两者让月毛利与回本周期失去意义,后者在会计上不成立。
批量试算行怎么写,写错了会怎样?
每行一组「ARPU,毛利率,寿命,CAC」,半角逗号分隔,默认已直出四行。按 Ctrl/Cmd + Enter 触发;少一段、多一段、出现非数字或越界,都会报「第几行」并原样回显那一行,绝不把非法行静默当成 0 混进结果。
结果保留几位小数,会不会被四舍五入?
中间量按四位小数格式化并去掉末尾的 0,所以 1440、4.8、5、1.6667 都按原样呈现。比值与回本周期不会强行取整成整月,也不会按有效数字截断;本页只做展示格式化,不改动计算本身的结果。
输入的经营数据会上传吗?
不会。四个数字框和批量文本框的内容只在当前页面的脚本里参与运算,没有 fetch、没有表单提交、没有第三方统计脚本,也不写 Cookie 或 localStorage。关掉标签页,数据就随页面一起消失。
旧配置里的房贷价值比公式还能用吗?
不能。那套占位数据把本页误当成 Loan-to-value,字段是贷款金额与房产数值,公式是两者相除再乘百分比,与客户终身价值、获客成本、毛利口径完全无关。本页一律以四个业务变量为准,不读取也不复现那套抵押率算法。