Как найти Aha-moment в SQL

Проверь себя · 1/3разбор после ответа
Какое утверждение про RIGHT JOIN верно в аналитических запросах?

Зачем Aha-moment

Facebook нашёл свой aha-moment: «7 друзей за 10 дней». Если новый пользователь до него добирался — retention взлетал. Если нет — отваливался. Aha-moment — это действие или веха, которая разделяет тех, кто остался, и тех, кто ушёл.

Подход к расчёту

  1. Выпишите действия-кандидаты (типа «сделал X раз за Y дней»).
  2. Посчитайте retention отдельно для тех, кто действие совершил, и для тех, кто нет.
  3. Найдите разрыв больше 2x — это и есть aha-moment.

Базовый расчёт

Допустим, гипотеза: «добавил 3 друзей в первую неделю».

WITH new_users AS (
    SELECT user_id, signup_date
    FROM users
    WHERE signup_date >= CURRENT_DATE - INTERVAL '90 days'
),
friend_count_w1 AS (
    SELECT
        n.user_id,
        n.signup_date,
        COUNT(*) AS friends_added_w1
    FROM new_users n
    LEFT JOIN friend_events f
        ON f.user_id = n.user_id
        AND f.event_date BETWEEN n.signup_date AND n.signup_date + INTERVAL '7 days'
    GROUP BY n.user_id, n.signup_date
),
retention AS (
    SELECT
        f.user_id,
        f.friends_added_w1,
        CASE
            WHEN EXISTS (
                SELECT 1 FROM events e
                WHERE e.user_id = f.user_id
                  AND e.event_date BETWEEN f.signup_date + INTERVAL '30 days'
                                       AND f.signup_date + INTERVAL '60 days'
            ) THEN 1 ELSE 0
        END AS retained_d30
    FROM friend_count_w1 f
)
SELECT
    CASE
        WHEN friends_added_w1 = 0 THEN '0 friends'
        WHEN friends_added_w1 BETWEEN 1 AND 2 THEN '1-2 friends'
        WHEN friends_added_w1 BETWEEN 3 AND 5 THEN '3-5 friends'
        ELSE '6+ friends'
    END AS bucket,
    COUNT(*) AS users,
    AVG(retained_d30) * 100 AS retention_d30_pct
FROM retention
GROUP BY 1
ORDER BY 1;

Если retention у «3-5» — 60%, а у «1-2» — 20%, значит aha-moment где-то около 3.

Закрепи формулу aha moment в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать aha moment в Telegram

По сегментам

-- Aha-moment может отличаться по acquisition channel
WITH ... -- same logic
SELECT
    u.acquisition_channel,
    AVG(CASE WHEN friends_added_w1 >= 3 THEN retained_d30 END) * 100 AS retention_if_aha_hit,
    AVG(CASE WHEN friends_added_w1 < 3 THEN retained_d30 END) * 100 AS retention_if_not
FROM users u
JOIN retention r ON r.user_id = u.user_id
GROUP BY u.acquisition_channel;

Частые ошибки

Ошибка 1. Причинность против корреляции. Пользователи с 5 друзьями на первой неделе удерживаются лучше — но это потому, что друзья тянут retention, или потому, что и друзей, и retention даёт исходная вовлечённость? Вполне возможен selection bias.

Ошибка 2. Aha из одного действия. Настоящий aha — это комбинация: «друзья + посты + лайки». ML или дерево решений находят такие связки лучше, чем ручной перебор.

Ошибка 3. Несогласованные периоды. Действие на первой неделе → retention в первый месяц. А можно ли брать действие в первый месяц → retention во второй? Зависит от продукта.

Ошибка 4. Произвольный порог. «3 друга» — а где именно разрыв? Порог берут не потому, что цифра красивая, а потому, что на графике retention виден перегиб именно на 3.

Ошибка 5. Игнорировать размер выборки. Если в бакете всего 10 пользователей, retention 100% или 0% — это шум, а не сигнал.

Связанные темы

FAQ

Aha-moment у каждого продукта?

Да, у каждого продукта он свой — найти его уже половина победы. У Twitter это 30 подписок, у Slack — 2000 отправленных сообщений, у Dropbox — один файл, положенный в папку.

Чем aha отличается от активации?

Активация — это первая успешная интеграция продукта. Aha — веха, которая предсказывает retention. На практике это часто одно и то же событие.

Как тестировать гипотезу aha?

Через A/B-тест: одну группу подталкиваете к aha (например, уведомлениями), другую оставляете как есть. Если гипотеза верна, retention у первой группы должен вырасти.

Aha меняется со временем?

Да. Новые фичи могут смещать aha-moment. Имеет смысл пересматривать его хотя бы раз в год.

Можно ли несколько aha?

В сложных продуктах — да. Aha на онбординге, aha на росте и aha на удержании вполне могут быть разными.