リテンション

SQLでビジネスデータを分析する

Michel Semaan

Data Scientist

MAUの落とし穴

  • 在籍期間別のアクティブユーザー内訳を示せない
  • 活動パターンの違いを区別できない
    • ケース1: 毎月100人が登録し、その月のみアクティブ
    • ケース2: 初月に100人だけ登録し、その後登録なし。だがこの100人は毎月アクティブ
    • どちらもMAUは100!
SQLでビジネスデータを分析する

MAUの内訳

内訳

  • 今月の新規ユーザー
  • 継続ユーザー: 先月も今月もアクティブ
  • 復帰ユーザー: 先月は非アクティブだが今月復帰
SQLでビジネスデータを分析する

リテンション率 - 概要

  • リテンション率: 前月にアクティブだったユーザーのうち今月もアクティブな割合
  • : $\frac{Uc}{Up}$。$Uc$: 当月と前月の両方でアクティブな重複なしユーザー数、$Up$: 前月の重複なしアクティブユーザー数
  • : $\frac{80}{100} = 0.8 = 80\%$
SQLでビジネスデータを分析する

リテンション率 - クエリ

WITH user_activity AS (
  SELECT DISTINCT
    DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
    user_id
  FROM orders)

SELECT previous.delivr_month, ROUND( COUNT(DISTINCT current.user_id) :: NUMERIC / GREATEST(COUNT(DISTINCT previous.user_id), 1), 2) AS retention
FROM user_activity AS previous LEFT JOIN user_activity AS current ON previous.user_id = current.user_id AND previous.delivr_month = (current.delivr_month - INTERVAL '1 month') GROUP BY previous.delivr_month ORDER BY previous.delivr_month ASC LIMIT 3;
SQLでビジネスデータを分析する

リテンション率 - 結果

delivr_month  retention
------------  ---------
2018-06-01    0.70
2018-07-01    0.70
2018-08-01    0.76
SQLでビジネスデータを分析する

リテンション

SQLでビジネスデータを分析する

Preparing Video For Download...