Volta — A/B-тест прогресс-бара KYC
Ситуация
Валидация находки воронки: срез — не доказательство, поэтому гипотезу (разбить KYC на шаги с прогресс-баром) проверили как эксперимент.
Задача
Мне нужно было отвечать за корректность эксперимента: спроектировать проверку гипотезы, провести её и защитить вывод от статистических ловушек.
Действия
Проект собран как полноценный эксперимент, а не как сравнение двух срезов: сначала я зафиксировал дизайн и метрику решения, затем проверил корректность разбиения, потом оценил эффект и его устойчивость.
- Дизайн. Задал основную метрику (конверсия шага KYC), гипотезу и минимально детектируемый эффект, под который посчитал требуемый размер выборки на группу.
- Гигиена разбиения. Проверил SRM (p=1,00), чтобы убедиться, что трафик поделён без систематического перекоса, и сравнил распределения ковариат до старта теста.
- Оценка эффекта. Сравнил доли групп и построил bootstrap-доверительный интервал для лифта.
- CUPED с ковариатом «число сессий до теста» (θ только на control) — снижает дисперсию, не смещая оценку.
- AA-тест под H₀ (type-I = 0,050) и коррекция множественности (Bonferroni/Holm/BH) для сегментных срезов.
- Чувствительность и сегменты. Смотрел поведение на MDE, а не пост-хок мощность, и разбирал сегменты отдельно, чтобы отличить реальный эффект от шума множественных сравнений.
- Инструменты. Python и pandas/NumPy для подготовки данных, SciPy/Statsmodels для тестов, scikit-learn для ковариат, Matplotlib/Seaborn для графиков; прогоны воспроизводимы через uv + ruff.
Результат
- Control 55,8% → treatment 61,5%: +5,72 п.п., 95% ДИ [+3,78%, +7,66%], p<0,0001 — выше MDE +5 п.п.
- SRM нет; ковариаты сбалансированы описательно (crosstab по device / age_group / channel) — формального SMD-теста скрипт не считает.
- 6/11 сегментов наивно-значимы, 4/11 после Bonferroni.
- Гейт выката пройден → раскатка прогресс-бара на 100%; бизнес-эффект +€208,5K за 12 месяцев (13,9× ROI, payback 5,6 мес).
Рекомендации
- Выкатить прогресс-бар на 100% — гейт пройден.
- Сохранить ship-gate из трёх условий: он защищает от статистически значимых, но бизнес-незначимых изменений.
- После Bonferroni перепроверить сегментные эффекты отдельными тестами.