Конверсия из пробного периода в оплату: кого уже можно считать
В марте стартовали три пробных пользователя, двое уже оплатили. Отчёт с наивной конверсией «2 из 3» выглядит хорошим. Но третий начал пробный период 25 марта, а на дату отчёта 1 апреля прошло только семь дней. Если продукт даёт 14 дней на решение, этот человек ещё не завершил окно наблюдения. Его нельзя считать окончательным отказом.
Сначала сформулируем метрику: доля стартовавших пробный период, которые сделали первую оплату в течение 14 дней от старта. Единица счёта — пользователь или пробный аккаунт согласно правилу продукта. В знаменатель на дату среза входят только те, чьи 14 дней уже прошли. В числитель — те же люди, если их оплата произошла до правой границы окна.
from datetime import date, timedelta
as_of = date(2025, 4, 1)
trials = [(1,date(2025, 3, 1)), (2,date(2025, 3, 10)),
(3,date(2025, 3, 25))]
paid = {1: date(2025, 3, 8), 2: date(2025, 3, 9),
3: date(2025, 3, 30)}
eligible = [uid for uid, started in trials if started + timedelta(days=14) <= as_of]
converted = [uid for uid in eligible if uid in paid and
dict(trials)[uid] <= paid[uid] < dict(trials)[uid] + timedelta(days=14)]
print('matured:', eligible)
print('converted:', converted)
print('rate:', len(converted) / len(eligible))
Код вернёт matured: [1, 2], converted: [1], rate: 0.5. Платёж пользователя 2 был до старта trial и не попал в числитель. Пользователь 3 оплатил 30 марта, но на 1 апреля его 14-дневное окно ещё не завершено, поэтому он не входит ни в числитель, ни в знаменатель зрелой метрики. Его оплату можно показывать в оперативной воронке, только не смешивать с завершёнными когортами.
Почему нельзя оставить в числителе только быстрых
Если включить ранние оплаты незрелых пользователей, но исключить ещё не оплативших из знаменателя, оценка будет завышена: быстрый успех уже виден, поздний отказ ещё нет. Симметричный отбор всей зрелой когорты решает эту проблему.
Интервал оплаты в примере полуоткрытый: [start, start + 14 дней). Оплата ровно через 14 суток уже за пределами метрики. Если бизнес говорит «включая четырнадцатый календарный день», условие будет другим. Запишите границу и временную зону заранее, особенно если оплату и старт фиксируют разные системы.
Что делать с незрелой когортой
Необязательно прятать текущие пробные старты. Покажите рядом количество начавших, сколько уже оплатили и сколько окон ещё открыто. Это полезно для ежедневной работы, но не окончательный процент конверсии. Для решения о качестве изменений сравнивайте зрелые когорты на одинаковом горизонте.
Проверьте также повторные пробные периоды и оплаты до старта. Если пользователь может начать trial несколько раз, единицей метрики может быть первый trial или каждый допустимый эпизод — это существенно меняет знаменатель. Если в источнике есть задержка загрузки платежей, дата среза должна учитывать свежесть данных, иначе последний день окна будет ошибочно пустым.
Отдельно смотрите время до оплаты среди сконвертировавшихся: пользователь 1 оплатил на седьмой день. Такой график помогает понять, почему выбрано именно 14 дней и какая доля платежей приходит позднее. Но не выбирайте окно задним числом так, чтобы показать более красивую конверсию после запуска эксперимента. Горизонт должен отвечать на продуктовый цикл принятия решения.
Если пользователю продлили trial, бизнес может считать его успешной конверсией в расширенном окне. Тогда нужен отдельный признак продления и, возможно, другая метрика. Без такого правила один и тот же платёж будет «успехом» для команды поддержки и «неуспехом» в аналитическом отчёте. Лучше заранее согласовать, анализируется ли стандартный trial или все фактические периоды доступа.
В курсе «Практическая аналитика данных» сопоставимость периодов и зрелость когорт связаны с проверкой данных и выводами по клиентам. Вы рассчитываете метрику выбранным маршрутом SQL или Python, строите дашборд и повторяете анализ на новом месяце. Откройте программу, чтобы превратить такой срез в устойчивый отчёт.
Похожая проблема недозревшего периода возникает в отчёте по удержанию когорт.
Продолжить на практике
- Практическая аналитика данных ↗
Превратите знания SQL или Python в аналитическую работу: проверяйте данные, считайте бизнес-метрики, стройте дашборды и объясняйте выводы на трёх прикладных кейсах.
