Self-serve A/B-тест дал ответ за дни вместо спринтов

Контекст и роль

Команде продукта нужно было быстро проверить гипотезу об изменении в интерфейсе, но очередь на инженерную поддержку экспериментов растянулась на две недели вперёд. Я настроила self-serve стенд, где продакт-менеджер мог сам запустить тест и получить оценку без выделенного разработчика.

Почему это было нетривиально

Разница между группами ожидалась в пределах нескольких процентных пунктов, а команда была склонна принимать решение по первому же запуску. Нужно было наглядно показать, что оценка гуляет от выборки к выборке, и приучить смотреть на доверительный интервал, а не на точечное число.

Что я сделала

Собрала простой калькулятор: он считает долю конверсии по двум группам и доверительный интервал по нормальному приближению, а по кнопке пересчитывает всё на новой выборке. Ниже — та же логика в миниатюре.

Интерактивный блок

Данные ниже синтетические, сгенерированы прямо в браузере для демонстрации.

Результат

Группа B показала более высокую конверсию, чем группа A, и доверительные интервалы почти не пересекались. Стендом воспользовались для нескольких экспериментов без участия инженеров.

Что бы я сделала иначе

Я бы сразу зашила в стенд минимальный порог выборки перед показом результата — в паре первых запусков команда смотрела на оценку по 50 пользователям и делала выводы раньше, чем стоило.

Ограничения

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

Технические детали

Дизайн эксперимента: параллельный A/B с случайным распределением пользователей по группам на старте теста, без пересечения одного пользователя с обоими вариантами. Проверки перед тем как доверять результату: совпадение фактического деления трафика с заданным, отсутствие повторного попадания одного пользователя в обе группы и то, что доверительный интервал по группам не аномально широкий для заявленного размера выборки.