本文へ移動
Telemetry
製品分析 SQL レシピ

毎週のコホート維持率の計算

最初のアクティビティ週ごとにユーザーをグループ化し、後の週に戻ってくる割合を測定します。

上級者向けproduct_eventsレビュー済み 2026-07-27テスト済み アパッチ DataFusion 45.2.0

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

質問に回答しました

各サインアップ コホートの何パーセントが 1 週目から 12 週目までに戻ってきますか?

単一の維持率では、成熟したユーザーと新規に獲得したユーザーが混在します。コホートでは開始週が保存されるため、製品または買収の変更を同等の条件で比較できます。

イベント契約

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

フィールド種類なぜ存在するのか
timestamp_utcTimestampアクティビティが発生したとき。
user_idUtf8安定したユーザー識別子。
event_nameUtf8製品イベント名。
DataFusion SQL

クエリをコピーする

sql
WITH first_activity AS (
  SELECT
    user_id,
    date_trunc('week', MIN(timestamp_utc)) AS cohort_week
  FROM product_events
  WHERE event_name = 'first_value_completed'
  GROUP BY user_id
),
weekly_activity AS (
  SELECT DISTINCT
    user_id,
    date_trunc('week', timestamp_utc) AS activity_week
  FROM product_events
  WHERE event_name = 'core_feature_used'
),
cohort_activity AS (
  SELECT
    f.cohort_week,
    (date_part('epoch', a.activity_week)
      - date_part('epoch', f.cohort_week)) / 604800 AS week_number,
    COUNT(DISTINCT a.user_id) AS retained_users
  FROM first_activity f
  JOIN weekly_activity a ON f.user_id = a.user_id
  WHERE a.activity_week >= f.cohort_week
  GROUP BY
    f.cohort_week,
    (date_part('epoch', a.activity_week)
      - date_part('epoch', f.cohort_week)) / 604800
),
cohort_sizes AS (
  SELECT cohort_week, COUNT(*) AS cohort_size
  FROM first_activity
  GROUP BY cohort_week
)
SELECT
  c.cohort_week,
  c.week_number,
  c.retained_users,
  s.cohort_size,
  100.0 * c.retained_users / NULLIF(s.cohort_size, 0) AS retention_pct
FROM cohort_activity c
JOIN cohort_sizes s ON c.cohort_week = s.cohort_week
WHERE c.week_number BETWEEN 0 AND 12
ORDER BY c.cohort_week, c.week_number;

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

クエリ結果

アクティベーション コホート別の週ごとの維持率

古いコホートは、1 週目にユーザーの半分を維持しました。新しいコホートはまだ 1 週間の比較ができるほど成熟していません。

cohort_weekweek_numberretained_userscohort_sizeretention_pct
2026-07-20044100
2026-07-2012450
2026-07-27033100

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

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

例を再現する

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

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

SQL の仕組み

  1. 1最初の CTE は、最初に価値マイルストーンを完了した週からの各ユーザーのコホートを定義します。
  2. 2毎週のアクティビティは重複排除されるため、1 週間の複数のイベントは 1 人の保持ユーザーとしてカウントされます。
  3. 3タイムスタンプの差は日から週のオフセットに変換され、コホート間で比較できます。

決定すべきエッジケース

  • 異なる年齢のコホートを比較する場合は、不完全な将来の週を除外します。
  • ページビューではなく、意味のあるアクティビティからの戻り動作を定義します。
  • UTC の週の境界はビジネスのタイムゾーンと一致しない場合があります。選択した境界を文書化します。

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

  • ヒートマップ スタイルのテーブル: cohort_week by week_number
  • 折れ線グラフ: retention_pct を week_number で割ったものを cohort_week で割ったもの
  • 統計: 成熟コホートの 4 週目の保持率

アラートガイダンス

通常、保持率はページ単位ではなく傾向として確認されます。 1 週目または 4 週目の保持率が予想範囲外に低下した場合は、成熟したコホートにフラグを立てます。

アラート設定を読む

レシピを活用する

関連する機器とガイド

分析を続ける

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

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

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

API キーを取得する