留存曲线:找平坦段,而不是追高数字

D1、D7、D30 三个数字不足以判断留存好坏:区分指数衰减、幂律与带平台三种曲线的诊断与处方,读平台高度而不是单周高点,并复算 300 人与 120 人两组样本的 4 个百分点差异是否只是抽样噪声,再倒推所需样本量,避免把噪声当成结论。

曲线有没有停下来,比它停在多高更重要。

一、三个看起来很漂亮的数字

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

韩昱做一款给自由职业者开票的工具。上线三个月,他把后台的三个数截了图:D1 45%、D7 20%、D30 8%。他把这张图当成进展,因为「工具类产品 D30 个位数很正常」这句话他在好几个地方看到过。

问题不在这三个数各自是多少,而在它们连起来的形状。45% 到 20%,四天掉了一半多;20% 到 8%,接下来三周又掉了一半多。每一次「掉一半」的时间在拉长,可能是正在接近平台,也可能只是样本变小之后噪声变大。他从来没把曲线画到 D60 和 D90,所以无法区分这两种情况。

他看到的「正常」是别人产品的平台高度,不是别人曲线的形状。一个产品停在 8% 且三年不降,另一个产品从 45% 一路滑到 8% 还在滑,两者在第 30 天可以给出同一个数字。只对齐数字不对齐形状,等于把两条不同的路当成同一条。

另一位开发者做排班工具,D30 只有 6%,比韩昱还低。但她把连续八周的 D30 画在同一张图上:6.1、6.0、6.2、5.9、6.1、6.0、6.1、6.0。八周里最高与最低相差 0.3 个百分点。这 6% 的人每周都在排班,是他们所在小店的实际工作流。

判断留存要看曲线有没有停下来,而不是某个点有多高。

二、三种曲线形状

把队列随访时间拉到足够长,曲线大致会落进三种形状。分形状的目的不是做数学拟合,而是决定下一步该修产品还是该修获客。

曲线形状诊断处方观察窗口
指数衰减:每过一段固定时间就掉固定比例没有形成可持续的核心使用,产品被当成一次性工具停止加投获客,回到激活与首次价值,先找出一批会重复使用的人6–8 周,看衰减是否放缓
幂律:前期掉得快,之后越来越慢但不归零也不平核心存在,但只覆盖一部分人;其余人被承诺吸引进来后失望缩小对外承诺的范围,或针对高留存人群改产品8–12 周,看尾部斜率
有平台:跌到某个高度后基本水平存在稳定的核心人群,产品的重复价值成立保护这批人,按他们的画像扩获客,不要为拉高曲线改坏他们的路径连续 8 周,看极差

指数衰减最容易被误读成「正常流失」。它的特征是「半衰期」稳定:每 7 天剩一半,再过 7 天又剩一半。如果 D7 是 20%、D14 是 10%、D28 是 5%,这就是指数形状,说明用户的使用没有形成周期,只是注册后的一次性尝试。

幂律的形状是「长尾」:D7 掉到 15%,D30 掉到 7%,D60 掉到 4%,D90 掉到 3%。它没有平台,但衰减速度在明显放缓。这种曲线常见于「核心功能有用、但外围体验拖后腿」的产品——留下的人是真的需要,走的人是被某一步劝退的。

有平台的曲线会在某个高度上横向展开:D30 是 6%,D60 还是 6%,D90 还是 6%。平台一旦出现,说明产品找到了自己的重复使用场景,接下来要回答的是「这批人是谁」,而不是「怎么把 6% 变成 8%」。

三种形状之间会随时间迁移。一个指数衰减的产品,在修好激活之后可能变成幂律;一个幂律产品,在收窄承诺之后可能浮出平台。所以曲线要按队列重画,不能拿三个月前的一张图解释今天。

平台与「慢衰减」的区别在二阶:平台的每段下降接近 0,而且连续多周都是这样;慢衰减每段仍有可测的下降,只是幅度越来越小。判断的方法是看相邻四到六周的变化量,而不是看首尾两个点的差。首尾差会把中间的波动全部抹平。

画图的方式也会骗人。横轴用日历周、每个点算「当周活跃 ÷ 当周注册」,画出来的不是留存曲线,而是两个不同人群的比值;正确做法是按注册周分队列,每个队列从自己的第 0 天开始横向排开,纵轴是该队列在随访日的活跃比例。同一张图上叠四到六个队列,形状会自己显出来。

三、平台高度怎么读

平台高度不是分数。6% 的排班工具和 8% 的开票工具,很难说谁更好,因为分母里的注册来源不同:一个来自应用商店的自然搜索,一个来自一篇被大量转发的文章。前者的注册意图更明确,后者的注册更随手。拿两个不同来源的注册数当分母,比出来的高低没有意义。

读平台时先问三个问题:这批人每周完成几次核心动作、他们用哪个功能、他们是否付费。三个答案合起来才是平台的含义。如果平台人群只用免费功能、每月打开一次,那这个平台更接近「没卸载」,不是「留下来」。

第二个问题是平台的绝对人数够不够。1000 个注册、6% 的平台,是 60 个人;如果每人每月付 20 元,月收入 1200 元;若固定成本是 3000 元,这个平台撑不起这个产品。这是算术问题,不是留存问题——曲线再平,人数不够也活不下去。

第三个问题是平台会不会被你自己破坏。最常见的破坏方式是「为了拉高曲线」去改核心路径:加引导、加弹窗、加积分。这些动作会把老用户的路径变长,平台人群最先感知到,也最先离开。曲线的短期上扬往往以平台的长期下移为代价。

还有一种不容易看出的是「平台在变窄」:总量没变,但里面的人换了一批。上个月留下的是 A 类用户,这个月 A 类走了、B 类补上,曲线看起来仍然平。发现它的方法是给平台人群打标签,逐周看构成变化;只看总数,这种替换会被完全掩盖。

平台人群的画像不用做得很复杂。从队列表里拉出连续八周都完成核心动作的人,列成一张名单,看他们在产品里留下的痕迹:最常用的三个功能、平均每周次数、付费与否、注册来源。若条件允许,给其中五个人各发一封两三个问题的邮件。这份名单比任何聚合指标都更能告诉你产品到底在替谁解决什么问题。

3.1 小样本:30 人和 300 人的 10%

30 个人的队列里,10% 是 3 个人。走一个变 6.7%,来一个变 13.3%。300 个人的队列里,10% 是 30 个人,走一个只变 0.33 个百分点。同样是「10%」,一个是一位数人数,一个是两位数人数,能承载的结论完全不同。

获客篇第 10 篇 讲过比例区间的估算方法,这里不重复推导,只用它的结论:样本越小,区间越宽。经验规则是:30 人的队列只能看方向,不能比高低;要比较两个版本,每组至少 100 人,能到 200 人以上再下结论。

这也是为什么「这周 D7 涨了 3 个点」通常不是消息。周与周之间的注册量本来就少,3 个点很可能只是两三个人进出的差别。把周数据画成折线,再在旁边标上每周的样本量,很多「趋势」会自己消失。

队列规模能做的判断不能做的判断
少于 30 人有没有人重复使用、卡在哪一步任何比例之间的大小比较
30–100 人大致量级与变化方向版本之间的 A/B 对比
100–300 人同一版本前后对比、平台是否形成4 个百分点级别的细分类别比较
300 人以上按渠道、人群、版本细分把相关性说成因果

这张表是经验刻度,不是统计定理;真正的边界由你愿意承担的误判代价决定。做定价实验时要承担的代价高,边界就该往上提;只是想决定下周先修哪一步,30 人的方向也够用。

四、复算:两组样本的留存差是否超出噪声

对比:A 版本 n=300,D30 留存 8%;B 版本 n=120,D30 留存 12%。
问题:4 个百分点的差,是版本差异还是抽样波动?

两组比例之差的标准误:
  SE = sqrt( p1×(1−p1)/n1 + p2×(1−p2)/n2 )
     = sqrt( 0.08×0.92/300 + 0.12×0.88/120 )
     = sqrt( 0.0736/300 + 0.1056/120 )
     = sqrt( 0.000245 + 0.000880 )
     = sqrt( 0.001125 )
     ≈ 0.0335,即 3.35 个百分点

95% 区间 ≈ 差值 ± 1.96 × SE
          = 4.0 ± 6.6 个百分点
          = [−2.6, 10.6]

结论:区间跨过 0,4 个百分点不能判定为真实差异。

要判定同样的 4 个百分点,两组各需约 430 人:
  SE = sqrt( 0.1792/430 ) ≈ 0.0204
  1.96 × 0.0204 ≈ 0.040,刚好到边界。

这个算式解释了两件事。第一,小产品的版本对比大多做不出结论,不是方法不对,是样本不够。第二,「B 版本比 A 版本好 4 个点」这种说法,在没有区间的情况下只是一个观察,不是一个判断。写复盘时把它写成「方向一致,样本不足,继续观察」,比写成结论更接近事实。

同样的算法可以反过来用:先决定你要能分辨多大的差异,再倒推每组需要多少人。如果你只关心「能不能分辨 10 个百分点」,每组 100 人上下就够;如果要分辨 4 个百分点,就得准备 400 人级别。这个倒推应该在改版之前做,而不是在改完之后。

区间不跨过 0,也不等于差异一定由你的改版造成。两组用户的来源、时间、季节都可能不同,标准误只处理抽样波动,不处理这些。所以判定差异之后,还要看两组是否同期、来源是否可比;如果 B 版本恰好赶上一波高质量渠道,4 个点里有多少是你的改动带来的,仍然说不清。

反过来,区间跨过 0 也不等于改动无效。它只说明这批数据不足以支持结论。小产品的常见错误是因为一次不显著就彻底否定一个方向,然后换下一个方向再测一次,一年下来测了六个方向,每个都只有一百来人。把样本攒够再测一次,比换六个方向更省。

五、行动清单与复算验收

  • 把 D1、D7、D14、D30、D60 画在同一张图上,纵轴固定 0–100%,不要让工具自动缩放。
  • 分子只用「完成一次核心动作」的人,登录和打开不算,口径与第一篇保持一致。
  • 每个队列标上样本量;少于 100 人的队列只记方向,不做版本对比。
  • 连续八周记录 D30,写下每周的最高值与最低值,算出极差。
  • 拉出平台人群的画像:用哪个功能、每周几次、是否付费。

验收标准:连续八周的 D30 极差不超过你事先写下的阈值(示例取 2 个百分点),且每周队列样本不少于 100 人;两项缺一,只能写「尚未判定」。

阈值要在看数据之前写下。看完再定阈值,人总会挑一个刚好能让自己通过的数,这等于没有验收。

清单里的第一条和第三条要一起做:只画曲线不标样本量,图形会把三个人画成一段光滑的趋势;只标样本量不画曲线,又看不到形状。两者放在同一张图上,才谈得上「找平坦段」。

如果八周之后极差仍然很大,不要急着下「留存不稳」的结论。先检查这一轮的渠道有没有换、产品有没有改版、统计口径有没有动过。这三件事任何一件发生,队列之间就不可比,极差大是必然的,与用户行为无关。

使用边界与实操验收

本文只讨论按注册队列计算的活跃留存曲线,不覆盖收入留存、按席位计费的 B2B 续费曲线,也不做曲线拟合与预测。季节性明显的产品(例如报税工具)需要按年对齐队列,不能照搬七天、二十八天的窗口。

验证以你自己的队列表为准:导出注册日期、核心动作时间两张表,自己按周分队列算一遍,而不是直接看后台默认的「留存」面板。不同工具对「活跃」的定义不一样,有的把登录算作活跃,那样画出来的曲线会整体上移,也无法与本篇的口径对照。

另外,平台段只能在事后确认,不能提前宣布。你能做的是把观察窗口固定下来、把样本量记下来、把阈值先写下来,然后等八周。等的过程里不要改核心路径,否则这一轮观察就作废了。

如果你现在连八个连续队列都凑不出来(例如每月才三十个注册),那这一阶段该做的不是画曲线,而是先把注册量做起来,或者把口径改成「以使用周为单位」而不是「以注册周为单位」。样本不够时,任何形状判断都只是在给随机波动编故事。

关键参考与核验范围

本文的曲线形状、平台高度、样本量与差异判定均为教学演示,不构成统计或法律意见。核验日期:2026-10-23。

  • 中华人民共和国个人信息保护法 :留存分析需要按用户记录行为时间,属于个人信息处理,应遵循最小必要并告知用途;为了画曲线而采集与核心动作无关的行为,超出了这个范围。
  • 中华人民共和国电子商务法 :若把留存率用于对外宣传,宣传口径须与实际统计口径一致;用「登录即活跃」算出的高留存不能当作「持续使用」对外说。

第三方统计工具文档与行业基准报告在本次核验中无法访问,故本文不引用其数值或条款原文,也不附相关链接;文中所有百分比、样本量与区间只用于演示算法。

系列导航

继续阅读

探索更多技术文章

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

全部文章 返回首页

「Indie」更多文章

  1. 定价复盘:价格、转化、留存与退款的一张表
  2. 低流量定价实验:样本不够时怎么测
  3. 结账页:币种、税费、失败重试与拒付