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

純収益および総収益保持率の計算

総保持率から拡大を抑えながら、アカウントレベルの毎月の経常収益スナップショットから NRR と GRR を計算します。

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

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

質問に回答しました

拡張前後で当初の経常収益はどのくらい維持されましたか?

純保持率には拡張が含まれますが、総保持率には各アカウントの開始値が上限となります。両方を報告することで、顧客ベースの耐久性とアップセルの影響を区別します。

イベント契約

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

フィールド種類なぜ存在するのか
timestamp_utcTimestamp月末のスナップショット時間。
account_idUtf8安定した請求先アカウント ID。
starting_mrr_usdFloat64測定月の初めの MRR。
ending_mrr_usdFloat64測定月の末日の MRR。
DataFusion SQL

クエリをコピーする

sql
SELECT
  date_trunc('month', timestamp_utc) AS month,
  COUNT(*) AS starting_accounts,
  SUM(starting_mrr_usd) AS starting_mrr_usd,
  SUM(ending_mrr_usd) AS ending_mrr_usd,
  100.0 * SUM(ending_mrr_usd)
    / NULLIF(SUM(starting_mrr_usd), 0) AS net_revenue_retention_pct,
  100.0 * SUM(CASE
    WHEN ending_mrr_usd < 0.0 THEN 0.0
    WHEN ending_mrr_usd > starting_mrr_usd THEN starting_mrr_usd
    ELSE ending_mrr_usd
  END) / NULLIF(SUM(starting_mrr_usd), 0)
    AS gross_revenue_retention_pct
FROM account_mrr_snapshots
WHERE timestamp_utc >= now() - INTERVAL '12 months'
  AND starting_mrr_usd > 0.0
GROUP BY date_trunc('month', timestamp_utc)
ORDER BY month;

この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。

クエリ結果

月ごとの純収益維持率

5 月と 6 月は拡大により NRR が 100% 以上を維持しましたが、GRR の低下はその下での縮小または解約の増加を示しています。

monthstarting_accountsstarting_mrr_usdending_mrr_usdnet_revenue_retention_pctgross_revenue_retention_pct
2026-05418126,400132,900105.1496.44
2026-06431132,900136,100102.4194.88
2026-07446136,100133,70098.2493.31

合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。

Net revenue retention by month: Calculate Net and Gross Revenue Retention 結果例からの合成 net_revenue_retention_pct 値の静的チャート
決定論的な出力例のインデックス可能な SVG。記事、ランブック、または出典を明示した設計レビューのためにダウンロードしてください。

例を再現する

パブリックフィクスチャをダウンロードする

JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。

SQL の仕組み

  1. 1MRR が開始されているアカウントのみが分母に入り、新規ビジネスは保持の範囲外に保たれます。
  2. 2NRR は終了 MRR の合計と開始 MRR を比較するため、拡張が含まれます。
  3. 3GRR はすべてのアカウントの開始 MRR に上限を設けるため、拡大によって縮小や解約を相殺することはできません。

決定すべきエッジケース

  • スナップショットを取得する前に、年間契約、使用量ベースの契約、複数通貨契約を正規化します。
  • 親サブスクリプションと子のサブスクリプションが独立して移動できる場合は、一貫して 1 つのアカウント階層を使用します。
  • 過去のスナップショットがサイレントにドリフトしないように、過去の請求修正を調整します。

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

  • 傾向: 月別の NRR と GRR
  • バー: 拡大、縮小、チャーン MRR
  • 表: アカウントレベルの収益の最大の変化

アラートガイダンス

GRR または NRR が動作範囲を下回った月全体を確認します。不完全な今月のスナップショットについては警告を発しません。

アラート設定を読む

レシピを活用する

関連する機器とガイド

分析を続ける

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

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

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

API キーを取得する