Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkillForge: оптимизация онбординга и монетизации

Продуктовое исследование B2C EdTech-платформы: анализ пути пользователя от лендинга до оплаты, определение узких мест воронки, приоритизация гипотез и проведение A/B-теста с оценкой результатов.

Контекст задачи

«SkillForge» — подписочная платформа для изучения IT-профессий. Пользователь регистрируется, проходит вводный онбординг из трёх шагов, получает пробный урок и оформляет ежемесячную подписку либо приобретает отдельный курс.

На протяжении двух кварталов фиксируется стагнация выручки: затраты на привлечение растут, тогда как конверсия в платную подписку и ARPU не изменяются. Задача — определить, на каких этапах теряются пользователи и выручка, предложить продуктовые инициативы и проверить приоритетную экспериментом.

Данные

Синтетический датасет формируется ноутбуком 01_make_database.ipynb. Значения генератора случайных чисел зафиксированы, база пересобирается идентично.

Таблица Строк Содержание
users 25 000 регистрации за 01.01.2026 – 29.06.2026, канал привлечения, устройство, страна
user_events 170 219 12 типов событий от view_landing до view_paywall
transactions 1 614 сумма, тип подписки, статус платежа (success / failed / refunded)

На основе сырых таблиц построены две витрины (02_create_user_mart.ipynb):

  • mart_users — одна строка на пользователя: временные отметки всех шагов воронки, счётчики активности, агрегаты по успешным платежам;
  • mart_events — поток событий с указанием предыдущего события и его времени через оконную функцию LAG, используется для анализа переходов.

Структура репозитория

notebooks/
├── 01_make_database.ipynb    генерация датасета, DDL и индексы SQLite
├── 02_create_user_mart.ipynb витрины mart_users и mart_events на SQL
├── 03_funnel_and_eda.ipynb   валидация, воронка, юнит-экономика, сегменты, когорты
└── 04_ab_test.ipynb          реестр гипотез, дизайн эксперимента, оценка результатов
data/                         база данных, в git не хранится, создаётся ноутбуком 01

Воспроизведение результатов

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
jupyter lab

Ноутбуки выполняются последовательно: 01 создаёт data/skillforge.db, 02 формирует витрины, 03 и 04 работают с готовыми витринами.

Результаты анализа

Воронка

Шаг Пользователей Сквозная конверсия Конверсия шага
Регистрация 25 000 100.00%
Начал онбординг 21 702 86.81% 86.81%
Шаг 1 17 557 70.23% 80.90%
Шаг 2 10 224 40.90% 58.23%
Шаг 3 8 713 34.85% 85.22%
Завершил онбординг 7 843 31.37% 90.01%
Открыл каталог 9 369 37.48%
Начал пробный урок 5 583 22.33% 59.59%
Закончил пробный урок 3 949 15.80% 70.73%
Увидел пейволл 4 086 16.34%
Первая оплата 1 148 4.59%

Наибольшая единичная потеря приходится на шаг 2 онбординга: 41.8% отвала при 15–19% на смежных шагах. Разрез по устройствам определяет, где эта потеря наиболее существенна: онбординг завершают 37.6% пользователей десктопа, 28.5% мобильных устройств и 20.1% планшетов, при этом мобильные устройства составляют 55% аудитории.

Три шага не вложены в предыдущий, конверсия шага для них не рассчитывается: каталог доступен в обход онбординга, пейволл — в обход пробного урока, оплата возможна без просмотра пейволла. Медианная длительность онбординга составляет 4.5 минуты, следовательно, отвал на шаге 2 обусловлен не затратами времени, а содержанием шага.

Юнит-экономика

Метрика Значение
Выручка 8 894 453 ₽
Конверсия в оплату 4.59%
ARPU 356 ₽
ARPPU 7 748 ₽
Средний чек 6 051 ₽
Транзакций на платящего 1.28

Двадцатикратный разрыв между ARPU и ARPPU определяет приоритет: основным рычагом выступает конверсия, а не размер чека. Рост конверсии на один процентный пункт при неизменном ARPPU дал бы около 1.9 млн ₽, то есть 22% к выручке. Для сопоставимого эффекта за счёт чека средний платёж потребовалось бы увеличить с 6 051 до 7 380 ₽.

Факторы конверсии

Просмотр каталога является наиболее сильным наблюдаемым предиктором оплаты: конверсия 9.95% против 1.38% у остальных пользователей, различие подтверждено z-тестом (p < 0.001). При этом ARPPU обеих групп практически совпадает — 7 842 ₽ против 7 340 ₽. Каталог влияет на решение о покупке, но не на размер чека, следовательно, работать с ним следует как с инструментом активации.

До каталога доходят только 37.5% пользователей, при этом половина переходов совершается минуя полный онбординг: 1 822 пользователя попадают туда непосредственно с первого шага, 1 037 — со старта онбординга, 841 — сразу после регистрации.

Различие между устройствами значимо, но существенно слабее: desktop 5.04% против mobile 4.36% (p = 0.015). Различия между каналами и странами не выявлены: сравнение organic и paid_search даёт p = 0.545, UZ и RU — p = 0.878. Персонализация под канал привела бы к оптимизации случайных колебаний.

Достоверность средних по выручке

24 пользователя, что составляет 0.1% базы, обеспечивают 23.8% всей выручки.

При их исключении картина существенно меняется: ARPU платного поиска снижается с 458 до 308 ₽, а майский рост ARPU до 483 ₽ составляет 275 ₽, то есть в действительности отсутствует. Помесячная конверсия при этом стабильна в диапазоне 4.18–4.89%.

Практическое следствие: денежные метрики данного продукта не могут использоваться без исключения хвоста, а крупные сделки следует выделить в отдельное направление анализа как самостоятельный B2B-сегмент.

Продуктовые гипотезы

Балльная оценка гипотез не применялась. Приоритет определён по трём характеристикам, каждая из которых рассчитана по данным или получена статистической проверкой: размер затрагиваемого сегмента, величина подтверждённого эффекта и объём доработки.

ID Гипотеза Сегмент Пользователей Подтверждённое основание
H1 Ранний переход в каталог: CTA после регистрации все новые регистрации 25 000 конверсия 9.95% против 1.38%, различие +8.57 п.п., p < 0.001
H2 Упрощение шага 2 онбординга на мобильных мобильные устройства 13 736 отвал 41.8% на шаге 2; онбординг завершают 28.5% против 37.6% на desktop, p = 0.015
H3 Догоняющая коммуникация после пейволла дошедшие до пейволла 4 086 у 10% платящих решение о покупке растянуто более чем на 36 часов
H4 Персонализация лендингов под каналы платный поиск 7 506 различие конверсии между каналами незначимо, p = 0.545

Экспериментом проверяется H1. Это единственная гипотеза, затрагивающая всю новую аудиторию: охват остальных ограничен сегментами от 16.3% до 54.9% пользователей. Она опирается на наибольшее из подтверждённых различий — следующее по величине, между устройствами, составляет +0.68 п.п., то есть в двенадцать раз меньше. Реализация требует размещения одного элемента интерфейса, тогда как H2 предполагает переработку мобильного сценария.

Гипотеза H4 отклонена по результатам статистической проверки: различия между каналами не выявлены, предмет оптимизации отсутствует. Гипотеза сохранена в реестре для фиксации основания отказа.

Эксперимент

Гипотеза. Размещение CTA «Выбрать курс» на первом экране после регистрации увеличит долю пользователей, доходящих до каталога, и, как следствие, сквозную конверсию в оплату.

Дизайн. Стратифицированная рандомизация 50/50 по связке «канал + устройство + страна». Первичная метрика — конверсия в первую оплату, вспомогательная — доля дошедших до каталога. Уровень значимости 5%, мощность 80%.

Расчёт необходимого объёма выборки при базовой конверсии 4.59%:

Относительный MDE Целевая конверсия На группу Всего
+10% 5.05% 33 076 66 152
+15% 5.28% 14 801 29 602
+20% 5.51% 8 381 16 762
+25% 5.74% 5 400 10 800

При 12 500 наблюдениях на группу тест обнаруживает эффекты от 15–20% и выше, меньшие эффекты остаются за пределами чувствительности.

Результаты.

Метрика Контроль (A) Тест (B) Прирост 95% ДИ p-value
Просмотр каталога 37.66% 44.83% +7.17 п.п. [+5.95; +8.39] < 0.001
Конверсия в оплату 4.60% 5.20% +0.61 п.п. [+0.07; +1.14] 0.026

Проверки корректности эксперимента пройдены: SRM не выявлен (p = 0.89), группы сбалансированы по всем разрезам в пределах 50 ± 0.25 п.п.

Оценка по выручке. Метрика характеризуется тяжёлым хвостом: 95% нулевых значений, асимметрия 77, максимум 732 816 ₽. Бутстрап на 10 000 итераций по необработанной выручке даёт прирост 130.96 ₽ с интервалом [−73.32; +346.88] и p = 0.215, то есть вывод сделать невозможно. После винзоризации по 99-му перцентилю платящих прирост составляет 74.18 ₽, интервал [+7.44; +141.01], p = 0.028. t-тест Уэлча даёт сопоставимые выводы, следовательно, расхождение обусловлено не выбором критерия, а обработкой метрики.

Применимость CUPED. Наилучшая доступная ковариата коррелирует с выручкой на уровне 0.06, предел сокращения дисперсии составляет 0.4%. Причина методологическая: CUPED вычитает доэкспериментальное поведение того же пользователя, тогда как в эксперименте на новых регистрациях такая история отсутствует по определению. Контроль дисперсии обеспечивается стратификацией.

Сегментный анализ. Значимый результат зафиксирован только для платного поиска (прирост 1.48 п.п., p = 0.0036, поправка Холма 0.025), в остальных шести разрезах различия отсутствуют. Однако тест не планировался под сегменты, содержательное объяснение эффекта отсутствует, а на исторических данных каналы не различались. Сегментные результаты служат основанием для новых гипотез, но не для внедрения изменений.

Рекомендации

1. Не внедрять изменение по текущим данным. Прирост конверсии зафиксирован, однако находится на границе значимости: нижняя граница доверительного интервала составляет 0.07 п.п. Требуется продлить набор наблюдений примерно до 30 тысяч на группу, что обеспечит надёжность вывода.

2. Зафиксировать правило обработки крупных платежей в дизайне эксперимента. Без винзоризации денежные метрики нечувствительны: несколько B2B-сделок перекрывают любой продуктовый эффект. Правило устанавливается до запуска теста, иначе результат подгоняется под ожидаемый.

3. Выделить крупные сделки в отдельный анализ. 24 пользователя обеспечивают почти четверть выручки, что представляет собой самостоятельный тип клиента, не подлежащий совместному учёту с обычными подписчиками.

4. Параллельно готовить гипотезу H2. Шаг 2 онбординга остаётся наиболее затратной точкой воронки и текущим экспериментом не затрагивается.

Ограничения

  • Данные синтетические, эффект эксперимента заложен в модель. Ноутбук 04 демонстрирует процедуру анализа, а не доказывает гипотезу.
  • Связь между просмотром каталога и оплатой в ноутбуке 03 получена наблюдением: пользователь, дошедший до каталога, изначально более мотивирован, и часть разрыва объясняется этим отбором.
  • Порог винзоризации в эксперименте выбран после просмотра данных. В реальном тесте правило фиксируется до запуска.
  • Метрика измеряет краткосрочную конверсию в первую оплату. Влияние раннего входа в каталог на удержание и повторные покупки не определено.

Стек

Python 3.12, pandas, NumPy, SciPy, Matplotlib, Seaborn, SQLite.

About

Сквозной продуктовый анализ EdTech-платформы: воронка, юнит-экономика, приоритизация гипотез и дизайн A/B-теста с оценкой результатов.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages