如何理解和计算 NDR

SaaS 公司和传统软件的最大差别之一就是它的订阅收费模式。

对于传统软件公司而言,将产品卖给客户之后合作就结束了,但是对于 SaaS 公司来说,服务才刚刚开始。

因为 SaaS 公司可以通过老客户升级续费,持续创造更多的收入。

作为主要以订阅模式创收的 SaaS 公司来说,已有客户能否留下并升级续费,直接决定了公司的生存和发展能力,而今天为大家介绍一个可以量化这种能力的指标 —— NDR (Net Dollar Retention rate,净收入留存率)。



1. 什么是 NDR

NDR 代表了 SaaS 公司从已有客户身上留存的订阅收入的比例。

当 SaaS 公司的 NDR 大于 100%,「客户升级续费所带来的收入增加」大于「客户流失或降级的收入减少」,说明已有客户能为公司持续创造更多的收入,NDR 的数值越大,持续创造的收入就越多。

反之,当 SaaS 公司的 NDR 小于 100%,说明已有客户不能为公司继续增收,这为 SaaS 公司的经营拉响了警钟,除非该公司仍在源源不断地获得新客户,否则该 SaaS 业务已经在走下坡路了。




举个例子:

  • 假设一家 SaaS 公司有 10 个客户,每个客户的订阅费都是 $10,那么公司的总订阅收入是 $100。
  • 一段时间后,其中 6 个客户把订阅升级至 $20,1 个客户把订阅降级到了 $5,余下的 3 个客户取消了订阅,此时公司的总订阅收入为 $125。
  • 这 10 个客户的留存订阅收入由 $100 上涨到了 $125,收入留存率是 125%,NDR 也就等于 125%。

纵然有客户流失了,公司依然获得了 25% 的收入增长,因为公司从没有流失的客户身上获得了足够多的升级收益,而这批客户往往是公司的重点客户,因为他们不但不容易流失,还会继续扩大对服务的使用。

从这个角度而言,NDR 不但反映了 SaaS 业务在已有客户身上增收的能力,还能帮助我们聚焦了目标客户,为他们创造价值才能最大程度地为 SaaS 公司自身创造价值。



2. NDR 的计算方法

关于如何去计算一家公司的 NDR, 我们参考了上市 SaaS 公司在年报中披露的 NDR 计算方法。

在此,我们引用 Slack 10-K (Page 75) 对 NDR 计算的描述:

“We calculate Net Dollar Retention Rate as of a period end by starting with the MRR from all Paid Customers as of twelve months prior to such period end, or Prior Period MRR. We then calculate the MRR from these same Paid Customers as of the current period end, or Current Period MRR. Current Period MRR includes expansion within Paid Customers and is net of contraction or attrition over the trailing twelve months, but excludes revenue from new Paid Customers in the current period, including those organizations that were only on Free subscription plans in the prior period and converted to paid subscription plans during the current period. We then divide the total Current Period MRR by the total Prior Period MRR to arrive at our Net Dollar Retention Rate.”




简而言之,我们可以将上文中 Slack 计算 NDR 的基本逻辑归纳为:

NDR = 期末 MRR / 期初 MRR

如何理解这个公式,我们通过举例来进一步说明,如计算 2022-06-30 的 NDR 时:

  • 期初 MRR 代表的是 12 个月前,也就是在 2021-06-30 时所有客户的 MRR。
  • 期末 MRR 代表的是 12 个月后,也就是在 2022-06-30 时,2021-06-30 这同一批客户的 MRR,这包含了这同一批客户在这 12 个月内所有的升级(Expansion MRR),降级(Contraction MRR),和流失(Churn MRR),而这 12 个月之间新增的客户所产生的 MRR 不会被包含在内。
  • 上述期末 MRR 除以期初 MRR 即得出 2022-06-30 的 NDR。

SaaS 102文章图片

Slack 逻辑下的 NDR 计算过程并不复杂,但需要明确的是:




1)对 “ 12 个月 ” 的理解

计算公司的 NDR 时,我们对比了同一批客户 12 个月前后的 MRR,但为什么是 12 个月?

选择 12 个月并不是随机的,适用于计算一家 SaaS 公司 NDR 的时间周期应该是这家公司主要业务的续约周期,这样才能有效地把客户下一次续约的金额涵盖在内。

时间过短,大部分客户都还没有到续约的时候,MRR 就不会有变动,那么 NDR 会趋近于 100%;时间过长,NDR 所展示的就不是最近的经营结果,还会增加包含噪声数据的概率。

我们公司的主要业务( Enterprise 业务)的续约周期是 12 个月,所以我们也会用 12 个月作为时间周期去计算 NDR,而在行业内,用 12 个月作为时间周期去计算的 NDR 也是 SaaS 公司普遍使用的指标,比如我们引用到的 Slack。




2)对 “同一批客户” 的理解

计算公司的 NDR 时,我们先抓取了 12 个月前所有客户的 MRR,然后跟同一批客户在 12个月后的 MRR 做对比。

强调同一批客户是因为客户群每天都在改变,NDR 的计算需要锁定抓取 MRR 的对象,来保证 NDR 能有效反映出这一批客户在经历了一个续约周期后的收入留存。

假设公司在 1 年前一共有 10 个客户,那么在往后的 12 个月,我们始终只会关注这 10 个客户发生的升级,降级,或是流失,而这 12 个月之间新增客户带来的 MRR 不会被包含在计算范围内。

需要注意的是,这同一批客户可以是某个时点的 “所有客户”,也可以是某个时点的 “某一批客户”,不同的客户群体会给我们不一样的 NDR 视角,比如用 “所有客户” 计算出来的 NDR 可以总体考核一家公司的收入留存能力,也可以用 “某一个产品的客户” 计算出来的 NDR 来考核这个产品对公司收入留存的贡献。



3. ChartMogul 上的 NDR

在 ChartMogul 上我们能发现如下 NDR 页面,首先需要明确的是,ChartMogul 逻辑下的 NDR 与 Slack 逻辑下的 NDR 并不一样,因为他们使用的客户群体并不一致。

SaaS 102文章图片

具体来看,图中 Cohort Value 表示的是 “每月新增客户” 的 MRR 金额,比例代表了这个月新客户在使用服务第 N 个月后的 MRR 留存,例如在图中标记的 86.55%,代表了 2022 年 1 月新增客户在使用服务第 4 个月之后,也就是 2022 年 5 月末的 MRR 留存率。

同样是在表达 NDR,Slack 逻辑所使用的客户群是一个时点的 “所有客户”,而 ChartMogul 逻辑使用的客户群是 “每月新增客户”,由于 ChartMogul 将客户群体按月切割,所以各组 “每月新增客户” 都有对应的 NDR 。

同时,ChartMogul 还展示了新客户自新增月份起,往后每一个月份的收入留存,不单单是 “12 个月” 后的收入留存。

SaaS 102文章图片

当我们意识到 Slack 逻辑与 ChartMogul 逻辑的不同,你也许会对两种 NDR 逻辑的使用场景产生疑问。




1)什么情况下要使用 Slack 逻辑?

当我们需要衡量一家公司的总体 NDR 水平时,我们会采用 Slack 逻辑,因为 Slack 逻辑使用的客户群体是 12 个月前的 “所有客户”,对比 ChartMogul 逻辑所使用的 “单月新增客户”,Slack 逻辑的客户群体更具全面性,计算出来的 NDR 也更能代表公司的总体水平。

另外,我们在分析公司的总体 NDR 水平时,除了要看 NDR 的大小,还要关注 NDR 的趋势。

对于一家成熟的 SaaS 公司而言,NDR 不应该有剧烈波动,而 Slack 逻辑能给我们描绘出一张更为平稳且合理的 NDR 趋势图,因为 Slack 所使用的客户群体更大,NDR 因为个别客户而发生异常波动的几率会相对较小。

相反,ChartMogul 逻辑所使用的的 “单月新增客户” 基数较小,更容易使 NDR 受到个别客户影响而发生大幅异常波动。

最后需要说明的是,Slack 的 NDR 计算逻辑也是 SaaS 行业普遍使用的逻辑,这也使得我们可以通过对比其他 SaaS 公司的 NDR 来找到自身在行业的位置,让公司的 NDR 更有更具决策意义。




2)什么情况下要使用 ChartMogul 逻辑?

ChartMogul 逻辑下展示了各组 “单月新增客户” 自新增月份起,往后每一个月的 NDR,这比 Slack 逻辑下的 NDR 维度更细,更适用于处于初创期的 SaaS 公司或产品。

处于初创期的 SaaS 公司或产品没有足够多的客户量和月份数,基于 Slack 逻辑去计算的 “所有客户” 的 12 个月前后的 MRR 留存,最少要十八个月以上的数据,才有足够大的参考价值,而基于 “单月新增客户” 的 ChartMogul 逻辑恰好能解决没有足够历史数据的问题。

同时,我们可以通过观察各月新客户的 NDR 变化趋势来判断产品是否在正确的轨道上运作,比如下面 ChartMogul 界面展示了某公司 2022 年 1 月以来的每月新增客户的 NDR,我们可以观察到客户在订阅之后第 1 个月末的 NDR 在不断提升,说明公司对该产品的投入是有成效的。

SaaS 102文章图片

相反,如果公司做出了大量投入,而 NDR 的趋势没有明显变化,那么产品的策略也许需要调整了。

当 SaaS 公司或产品趋于成熟,产品策略很少会有重大调整,各个月份新客户的 NDR 趋势也会趋于平稳,在有足够多历史数据支撑的前提下,SaaS 公司就可以采用 Slack 逻辑来计算一个更全面的 NDR 了。



4. 使用 ChartMogul 查阅 Slack 版本的 NDR

在谈论公司的 NDR 时,所说的 NDR 是 Slack 逻辑下的 NDR,我们同样可以借助 ChartMogul 来计算。

以计算 2022-06-30 的 NDR 为例,如下图所示,在 ChartMogul 上需要进行以下操作:

SaaS 102文章图片

1. 将时间区间选为“2021-06-30 to 2022-06-30”。

2. 添加 Filter “Subscriber since is on or before”,锁定 2021-06-30 的客户群体。

3. 获取 2021 年 6 月的 MRR(假设 MRR=$1,000)

4. 获取 2022 年 6 月的 MRR(假设 MRR=$1,300)

5. 最后计算 2022-06-30 NDR = $1,300 / $1,000 = 130%

如果你也对公司的 NDR 感兴趣,不妨通过上面的步骤来获取公司最新的 NDR。