Доля оттока пользователей (Churn Rate)

Отток = 1 - retention. Доля прошлой активной базы, которая не вернулась в текущем периоде.

Зачем нужна

Ключевой драйвер роста и LTV. Высокий Churn съедает весь приток.

Формула

Churn = 1 - Retention = Ушедшие / Активные в прошлом периоде

Как считать

Берём активных в прошлом периоде, смотрим, кто не активен в текущем, делим на прошлую базу.

SQL-запрос

WITH prev_period AS (
  SELECT DISTINCT user_id
  FROM events
  WHERE event_timestamp >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
    AND event_timestamp < DATE_TRUNC('month', CURRENT_DATE)
),
curr_period AS (
  SELECT DISTINCT user_id
  FROM events
  WHERE event_timestamp >= DATE_TRUNC('month', CURRENT_DATE)
    AND event_timestamp < DATE_TRUNC('month', CURRENT_DATE + INTERVAL '1 month')
)
SELECT
  COUNT(DISTINCT prev.user_id) AS active_prev,
  COUNT(DISTINCT curr.user_id) AS active_curr,
  COUNT(DISTINCT prev.user_id) FILTER (WHERE curr.user_id IS NOT NULL) AS retained,
  COUNT(DISTINCT prev.user_id) - COUNT(DISTINCT prev.user_id) FILTER (WHERE curr.user_id IS NOT NULL) AS churned,
  ROUND(
    (COUNT(DISTINCT prev.user_id) - COUNT(DISTINCT prev.user_id) FILTER (WHERE curr.user_id IS NOT NULL))::decimal
      / NULLIF(COUNT(DISTINCT prev.user_id), 0),
    3
  ) AS churn_rate
FROM prev_period prev
LEFT JOIN curr_period curr ON curr.user_id = prev.user_id;
Обновлено:
Открыть каталог метрик