本文へ移動
Telemetry
収益と請求 SQL レシピ

毎月の経常収益の動きを計算する

新規、拡張、縮小、チャーン、再アクティブ化の MRR を請求ライフサイクル イベントから分離します。

中級者billing_eventsレビュー済み 2026-07-27テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム . SQL の互換性、イベント コントラクト、合成出力、および操作上の注意事項. 基準と所有権を確認する

質問に回答しました

経常収益が毎月増加または減少した原因は何ですか?

Net MRR では、経常収益が変化した理由が隠されています。相互に排他的な動きを分類すると、成長が新規顧客によるものなのか、既存アカウントの拡大に​​よるものなのか、それとも解約の回復によるものなのかがわかります。

イベント契約

クエリが期待するフィールド

フィールド種類なぜ存在するのか
timestamp_utcTimestamp請求の移動時間。
account_idUtf8安定した請求先アカウント ID。
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、拡張MRR、再活性化MRRを組み合わせたものです。
  2. 2失われた MRR は読み取り可能な正のバーで打ち消されますが、純変化は符号付きの合計を保持します。
  3. 3明確な口座数は、広範な動きと 1 つの異常に大規模な契約を区別するのに役立ちます。

決定すべきエッジケース

  • 請求変更の動きを 1 つだけ送信するか、プロバイダー イベント ID によって調整します。
  • 年間契約が予約時またはサービス時に正規化された月次価値に寄与するかどうかを定義します。
  • 一時的な料金と使用料収入を経常的な収入から分離します。

推奨されるダッシュボード

  • 積み上げバー: growth_mrr_usd および lost_mrr_usd
  • トレンド: net_mrr_change_usd
  • 表: アカウントレベルの最大の動き

アラートガイダンス

失われた MRR が 1 か月全体の総成長の異常に大きなシェアを消費した場合を確認します。

アラート設定を読む

レシピを活用する

関連する機器とガイド

ソースデータを定義する

この分析のイベント スキーマ

分析を続ける

実際のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する