跳转到内容
Telemetry
收入和账单 SQL查询示例

计算每月经常性收入变动

将新建、扩展、收缩、流失和重新激活 MRR 与计费生命周期事件分开。

中级billing_events已审核 2026-07-27测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

是什么导致经常性收入每月增加或减少?

净 MRR 隐藏了经常性收入发生变化的原因。对相互排斥的变动进行分类可以显示增长是来自新客户、现有客户扩张还是客户流失恢复。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp计费移动时间。
account_idUtf8稳定的计费帐户标识符。
movement_typeUtf8新的、扩张、收缩、流失或重新激活。
mrr_change_usdFloat64签署标准化经常性收入变更。
DataFusion SQL

复制查询

sql
SELECT
  date_trunc('month', timestamp_utc) AS month,
  SUM(CASE
    WHEN movement_type IN ('new', 'expansion', 'reactivation')
    THEN mrr_change_usd ELSE 0.0
  END) AS growth_mrr_usd,
  -SUM(CASE
    WHEN movement_type IN ('contraction', 'churn')
    THEN mrr_change_usd ELSE 0.0
  END) AS lost_mrr_usd,
  SUM(mrr_change_usd) AS net_mrr_change_usd,
  COUNT(DISTINCT account_id) AS accounts_changed
FROM billing_events
WHERE timestamp_utc >= now() - INTERVAL '12 months'
GROUP BY date_trunc('month', timestamp_utc)
ORDER BY month;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

经常性收入增长和损失

7 月份仍保持积极增长,但收缩和流失消耗了更多的总增长。

monthgrowth_mrr_usdlost_mrr_usdnet_mrr_change_usdaccounts_changed
2026-0518,4007,20011,20093
2026-0622,1009,80012,300117
2026-0720,70013,4007,300126

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Recurring-revenue growth and loss:来自 Calculate Monthly Recurring Revenue Movement 示例结果的合成 growth_mrr_usd 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, illustrative 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1积极的运动结合了新的、扩展的和重新激活的 MRR。
  2. 2丢失的 MRR 被否定为可读的正条,而净变化保留签名的总数。
  3. 3不同的账户计数有助于区分广泛的波动和异常大的合约。

需要决定的边缘情况

  • 准确地发出一项计费更改动作或按提供商事件 ID 进行协调。
  • 定义年度合同是否在预订或服务时贡献标准化的每月价值。
  • 将一次性费用和使用收入与经常性收入分开。

推荐仪表板

  • 堆叠条:growth_mrr_usd 和 lost_mrr_usd
  • 趋势:net_mrr_change_usd
  • 表:最大账户级别变动

警报指导

当 MRR 损失消耗了整个月总增长的异常大份额时进行审查。

读取警报设置

让查询示例发挥作用

相关埋点和指南

定义源数据

此分析的事件模式

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥