Прямой ответ
Метрика продукта определяется однозначным правилом расчёта, поэтому изменение показателя объясняется изменением поведения, а не изменением определения.
| Метрика | Как считается |
|---|---|
| Активные пользователи | Число уникальных пользователей за период |
| Конверсия | Доля пользователей, выполнивших целевое действие |
| Удержание | Доля когорты, активная в периоде возврата |
| Средний чек | Сумма выручки, делённая на число заказов |
SELECT
DATE_TRUNC('day', event_date) AS d,
COUNT(DISTINCT user_id) AS dau,
COUNT(DISTINCT CASE WHEN event = 'purchase' THEN user_id END) AS buyers
FROM events
GROUP BY 1;
Число уникальных пользователей считается с устранением дублей, поэтому повторные события одного пользователя не увеличивают показатель. О когортах — в статье про когортный анализ SQL.
Определение метрики и период расчёта
Метрика определяется правилом расчёта и периодом, поэтому изменение определения меняет значение без изменения поведения пользователей.
Правило расчёта. Формула метрики фиксируется явно, поэтому значение воспроизводимо и сопоставимо между периодами.
Период расчёта. Интервал, за который считается метрика, поэтому дневной и месячный показатель не сопоставимы напрямую.
Уникальность. Число пользователей считается с устранением дублей, поэтому повторные события не завышают показатель.
Практическое следствие: метрика, посчитанная по разным правилам в разных отчётах, показывает расхождение, объясняемое определением, а не поведением.
Отдельный аспект — граница периода. Событие на границе периода попадает в один период, поэтому правило отнесения события к периоду фиксируется явно.
Конверсия и удержание
Конверсия показывает долю пользователей, выполнивших целевое действие, поэтому знаменатель определяет смысл показателя.
Знаменатель конверсии. Число пользователей, имевших возможность выполнить действие, поэтому конверсия от всех пользователей отличается от конверсии от дошедших до шага.
Удержание по когорте. Доля когорты, активная в периоде возврата, поэтому показатель считается от размера когорты.
Сопоставимость. Метрики, посчитанные по разным знаменателям, не сопоставимы, поэтому знаменатель указывается рядом со значением.
Практическое следствие: конверсия, посчитанная от всех пользователей вместо дошедших до шага, занижается и не отражает эффективность шага.
Средний чек и достоверность показателя
Средний чек считается делением суммы выручки на число заказов, поэтому распределение сумм влияет на интерпретацию среднего.
Среднее значение. Сумма выручки делится на число заказов, поэтому показатель отражает среднее по всем заказам.
Влияние выбросов. Крупный заказ увеличивает среднее, поэтому показатель не отражает типичный заказ при неравномерном распределении.
Медиана. Значение, делящее распределение пополам, поэтому медиана устойчива к выбросам и показывает типичный заказ.
Практическое следствие: средний чек, завышенный несколькими крупными заказами, не отражает типичное поведение, поэтому решение на основе среднего принимается неверно.
О воронке и конверсии — в статье про воронку в SQL; об удержании — в статье про retention-анализ.
Практика: расчёт метрик продукта
1. Фиксируйте правило расчёта каждой метрики. Значение воспроизводимо и сопоставимо между периодами.
2. Указывайте период расчёта рядом со значением. Дневной и месячный показатель не сопоставимы напрямую.
3. Считайте пользователей с устранением дублей. Повторные события не завышают показатель активности.
4. Указывайте знаменатель конверсии. Конверсия от всех пользователей отличается от конверсии от дошедших до шага.
5. Считайте удержание от размера когорты. Доля от активных в периоде не отражает сокращение когорты.
6. Сопоставляйте среднее с медианой. Расхождение указывает на выбросы в распределении.
7. Фиксируйте размер выборки рядом с метрикой. Малое число пользователей даёт разброс показателя.
Рекомендации:
- Не сравнивайте метрики, посчитанные по разным правилам. Расхождение объясняется определением, а не поведением пользователей.
- Учитывайте границу периода при отнесении событий. Правило отнесения события к периоду фиксируется явно.
- Сопоставляйте знаменатель метрики с вопросом анализа. Конверсия от разных знаменателей отвечает на разные вопросы.
- Фиксируйте размер выборки в отчёте. Доля без числа пользователей не позволяет оценить достоверность.
- Пересматриваем определение метрики при изменении продукта. Новое целевое действие меняет расчёт конверсии.
Практический сценарий: средний чек не отражал типичный заказ
Контекст: отчёт показывал рост среднего чека, но распределение сумм заказов не менялось.
- Диагностика. Проверка показала, что несколько крупных заказов попали в период расчёта. Среднее выросло за счёт выбросов, при этом медиана суммы заказа осталась прежней.
- Причина. Среднее арифметическое чувствительно к выбросам, поэтому несколько крупных значений сместили показатель без изменения типичного поведения.
- Действия. (а) Добавили медиану суммы заказа в отчёт, чтобы типичное значение было видно рядом со средним; (б) сравнили среднее и медиану и зафиксировали расхождение как признак выбросов; (в) посчитали долю заказов, превышающих медиану в несколько раз, чтобы оценить влияние выбросов; (г) пересчитали показатель без крупнейших заказов и сравнили с прежним значением; (д) настроили регулярный расчёт обеих метрик, чтобы смещение обнаруживалось.
- Результат. Отчёт показывает среднее и медиану, поэтому изменение типичного заказа отделяется от влияния отдельных крупных заказов.
Вывод: среднее арифметическое смещается под влиянием выбросов, поэтому рост показателя не отражает изменение типичного поведения. Медиана устойчива к выбросам, поэтому сопоставление двух показателей отделяет изменение распределения от влияния отдельных значений.
FAQ
Как считать активных пользователей? Числом уникальных пользователей за период с устранением дублей. Повторные события одного пользователя не увеличивают показатель.
От чего считается конверсия? От числа пользователей, имевших возможность выполнить целевое действие. Конверсия от всех пользователей занижается.
Почему средний чек может не отражать типичный заказ? Среднее арифметическое чувствительно к выбросам, поэтому несколько крупных заказов смещают показатель.
Зачем указывать знаменатель метрики? Метрики, посчитанные по разным знаменателям, не сопоставимы, поэтому знаменатель определяет смысл значения.
Источники: PostgreSQL aggregate functions, date/time functions, GROUP BY — ссылки в шапке.