Основная метрика и guardrail в A/B-тесте: что считать успехом
Как выбрать primary metric, вторичные показатели и guardrail-метрики для эксперимента, чтобы не объявить победу ценой ухудшения продукта.
Содержание статьи
Новый экран может поднять клики и одновременно ухудшить оплату, возвраты или жалобы. Если перед запуском не договориться, что считаем успехом и какие потери недопустимы, после теста победит самая удобная для аргумента метрика.
Коротко
Primary metric — главный показатель, по которому принимают решение по гипотезе. Secondary metrics помогают понять механизм. Guardrails защищают продукт от побочных эффектов: их не обязательно улучшать, но нельзя ухудшать сильнее заранее заданного порога.
- Выбирай primary metric ближе к пользовательской или бизнес-ценности, а не к самому частому клику.
- Guardrail должен быть связан с реальным риском изменения и иметь понятный порог.
- Не превращай двадцать показателей в двадцать основных метрик.
- Фиксируй направление и окно расчёта до запуска.
Три слоя метрик
Удобно разделить показатели на три слоя. Primary отвечает, достигнута ли цель гипотезы. Secondary показывает, почему результат мог появиться: например, больше людей начали onboarding и быстрее дошли до первого отчёта. Guardrails ловят цену изменения: ошибки, возвраты, отписки или нагрузку на поддержку.
| Слой | Метрика | Роль |
|---|---|---|
| Primary | успешная оплата на начавшего checkout | главный ответ: больше ли пользователей завершили покупку |
| Secondary | время до оплаты, шаг доставки, выбор способа оплаты | показывает, где изменился путь |
| Guardrail | refund rate, payment error rate, обращения в поддержку | не даёт обменять быстрый рост на скрытый ущерб |
Как выбрать primary metric
Начни с решения, которое должна поддержать гипотеза. Если изменение обещает уменьшить friction в checkout, primary — успешная оплата среди пользователей, которые начали checkout, а не количество кликов по кнопке. Если меняется onboarding для B2B, может быть честнее смотреть создание первого рабочего объекта в течение семи дней, а не открытие подсказки.
Метрика должна быть чувствительной к изменению, но не настолько близкой к интерфейсу, чтобы её можно было улучшить без реальной ценности. Проверь также задержку: показатель, который созревает через месяц, может быть плохим единственным primary для короткого цикла.
Рост кликов полезен только тогда, когда он ведёт к следующему результату и не ухудшает опыт. Кнопку можно сделать заметнее, а продукт — не полезнее.
- Назови единицу анализа: пользователь, аккаунт, заказ или сессия.
- Опиши знаменатель одним предложением.
- Зафиксируй окно: в той же сессии, 24 часа, 7 дней или другой срок.
- Проверь, что изменение действительно может повлиять на метрику.
Guardrail должен защищать, а не пугать
Если добавить в guardrails весь дашборд, команда никогда не сможет принять решение: любой шум будет выглядеть как риск. Оставь показатели, на которые изменение действительно может повлиять и которые нельзя пропустить. Для checkout это ошибки и возвраты; для push — отписки и жалобы; для поиска — время ответа и нулевая выдача.
Вариант B даёт +4% к оплатам, но увеличивает долю возвратов. Перед раскаткой нужно разобраться в компромиссе.
Как принять решение по набору метрик
Перед запуском напиши короткое правило. Например: “Релизуем, если primary вырос не меньше чем на 1 п.п., 95%-й интервал не пересекает ноль, а refund rate не увеличился более чем на 0,5 п.п. Secondary используем для диагностики, но не меняем ими критерий после просмотра результата”. Такое правило снимает спор о том, какая цифра сегодня важнее.
| Результат | Действие |
|---|---|
| Primary выше порога, guardrails в норме | раскатить на следующий сегмент или 100% аудитории |
| Primary выше, но guardrail пересёк порог | не раскатывать; разобрать сегмент и механизм риска |
| Primary нейтрален, интервал широкий | продолжить тест, если MDE ещё достижим, или остановить как неэффективный |
| Primary нейтрален, интервал узкий | считать крупный эффект маловероятным и перейти к следующей гипотезе |
Primary, secondary и guardrail: роли не смешиваются
Primary metric отвечает на главный вопрос эксперимента. Secondary metrics помогают понять путь к результату: например, не только завершённая покупка, но и добавление в корзину или время до оформления. Guardrail защищает от побочного ущерба: возвратов, ошибок, отписок, жалоб или ухудшения маржи. Один и тот же показатель нельзя без объяснения считать то основным, то защитным.
Если команда выбирает пять primary metrics, она фактически оставляет несколько возможностей объявить победу. Это усложняет интерпретацию и повышает риск случайного сигнала. Выбери один основной outcome, а спорные показатели переведи в secondary или guardrails с заранее записанными порогами.
| Роль | Вопрос | Пример для checkout |
|---|---|---|
| Primary | сработало ли изменение? | оплаченная покупка на начавшую checkout сессию |
| Secondary | где возник эффект? | ввод адреса, выбор доставки, переход к оплате |
| Guardrail | не заплатили ли мы слишком дорого? | ошибки оплаты, возвраты, отмены, маржа |
Выбирай guardrail по механизму риска
Защитный показатель не должен быть случайным списком всего, что есть в продукте. Свяжи его с механизмом изменения. Если ускоряешь checkout, возможен рост ошибочных заказов и возвратов. Если меняешь рекомендации, риск — в нулевой выдаче, скрытии продавцов или снижении разнообразия. Если увеличиваешь push-коммуникации, следи за отписками и жалобами, а не за каждым кликом в приложении.
Хороший guardrail имеет понятный знаменатель и окно. “Ошибки выросли” недостаточно: нужно знать, сколько ошибок на тысячу попыток и когда они считаются. Иначе большой поток пользователей сам создаст больше абсолютных ошибок, хотя доля станет ниже.
- Запиши, каким способом изменение может навредить пользователю или бизнесу.
- Выбери показатель, который отражает именно этот риск.
- Определи минимально заметное ухудшение до запуска.
- Проверь, что событие guardrail собирается одинаково в обеих группах.
- Назначь владельца расследования при пересечении порога.
Знаменатель важнее красивого числа
Primary и guardrail должны считаться на сопоставимых популяциях. Например, refund rate среди оплаченных заказов нельзя напрямую сравнить с ошибками оплаты среди всех посетителей checkout. Разные знаменатели отвечают на разные вопросы, и смешивание уровней может создать иллюзию компромисса.
Заранее реши, кто входит в анализ: все назначенные пользователи, только увидевшие вариант или только достигшие промежуточного шага. Intent-to-treat обычно сохраняет преимущества рандомизации, а анализ только “дошедших” пользователей может быть полезен для диагностики, но вводит selection bias.
refund_rate = refunded_orders / paid_ordersВ описании дополнительно укажи окно возврата, статус заказа и правило для частичного возврата.
Показатель может измениться раньше primary, но это ещё не делает его защитным. У guardrail должна быть связь с реальным риском и понятный порог действия.
Как читать конфликт между метриками
Самый сложный результат — primary растёт, а guardrail ухудшается. Здесь нельзя автоматически выбрать одну цифру. Сравни масштаб эффекта, стоимость риска, сегменты и устойчивость по времени. Иногда +4% к оплатам с +18% к возвратам — очевидно плохой компромисс. Иногда небольшой рост ошибок на новом потоке компенсируется большой маржой, но это должно быть решением бизнеса, а не случайностью эксперимента.
Разложи конфликт на сегменты: устройство, новый или возвращающийся пользователь, тип товара, способ оплаты. Если риск сосредоточен в одной группе, staged rollout может быть безопаснее полного отката. Если ухудшение системное, лучше остановить релиз и вернуться к механизму, а не искать сегмент, где цифра выглядит удобнее.
Условные значения. Порог guardrail должен быть записан до чтения результата.
Decision rule до запуска
Запиши правило в одну-две фразы и покажи его команде до начала теста. Например: “Релизуем, если primary вырос не меньше чем на 1 п.п., 95%-й интервал не пересекает ноль, refund rate не увеличился более чем на 0,5 п.п., а ошибки оплаты не выросли более чем на 5%”. Secondary остаются диагностикой и не меняют критерий задним числом.
Правило не обязано предусмотреть каждый исход. Его задача — убрать спор о том, какая цифра сегодня важнее, и заранее назначить следующий шаг. Для промежуточного решения добавь staged rollout, повторную проверку и список владельцев.
| Результат | Действие |
|---|---|
| Primary выше порога, guardrails в норме | раскатить на следующий сегмент или 100% аудитории |
| Primary выше, guardrail пересёк порог | не раскатывать; разобрать причину и сегмент риска |
| Primary нейтрален, интервал широкий | продолжить, если MDE ещё достижим, иначе закрыть тест |
| Primary нейтрален, интервал узкий | считать крупный эффект маловероятным и перейти к новой гипотезе |
Не выбирай метрику, на которую изменение не влияет
Primary должна быть достаточно близко к механизму изменения, но не настолько близко, чтобы превращаться в технический прокси. Если команда меняет порядок экранов, промежуточный клик может вырасти сразу, хотя покупка не изменится. Если изменение влияет на ассортимент, одной конверсии недостаточно: нужно понять, не ухудшилось ли качество и разнообразие результата.
Проверь причинную цепочку до запуска: какое действие меняется первым, какой следующий шаг оно должно улучшить и где появляется бизнес-эффект. Secondary metrics помогают пройти эту цепочку. Guardrails должны защищать реальные риски, а не быть коллекцией всех доступных показателей.
| Шаг | Метрика | Роль |
|---|---|---|
| Ввод адреса | address completion | secondary |
| Выбор способа доставки | delivery selection | secondary |
| Оплата | paid order rate | primary |
| После покупки | refund rate | guardrail |
| Поддержка | complaint rate | guardrail |
Порог guardrail должен быть обоснован
Фраза “guardrail не должен ухудшиться” слишком строгая для шумного показателя и слишком расплывчатая для решения. Определи допустимый диапазон: сколько дополнительных ошибок или возвратов бизнес готов принять ради primary-эффекта? Порог может быть связан с экономикой, SLA, договором или пользовательским риском.
Не делай guardrail настолько чувствительным, что любой случайный шум блокирует релиз. Для редких событий полезно смотреть абсолютное число и интервал, а также использовать staged rollout. Для критического риска, наоборот, небольшой рост может быть достаточным поводом остановиться. Порог — это договорённость о действии, а не магическое статистическое число.
допустимый риск = дополнительная стоимость ошибки / число затронутых заказовПорог нужно согласовать с владельцем процесса до запуска, иначе его начнут менять под результат.
Если primary выросла, но изменение системно ухудшает опыт или маржу, правильный вывод может быть “не раскатывать”. Это не провал аналитики, а полезный результат эксперимента.
После победы всё равно нужен rollout
Статистически убедительный результат на тестовой аудитории не означает, что можно мгновенно включить изменение всем. Staged rollout помогает проверить, сохраняется ли эффект на новом объёме, не появляется ли нагрузка на инфраструктуру и не меняется ли поведение команды. Для каждого этапа заранее назначь критерии продолжения и отката.
На rollout повторно следи за primary и guardrails, но не называй каждый новый срез отдельным A/B-тестом. Сравнивай фактический эффект с экспериментом, проверяй технические метрики и записывай отличия аудитории. Если результат исчез, исследуй причину: это может быть эффект новизны, взаимодействие с другими релизами или изменение трафика.
- 10–25% трафика: проверить техническую стабильность и критические риски.
- 50% трафика: сравнить эффект с исходным экспериментом.
- 100%: оставить мониторинг и дату post-launch review.
- Откат: заранее определить владельца и допустимое время реакции.
Мини-кейс: primary растёт, а опыт становится хуже
Представим, что команда упростила checkout и получила +4% к оплатам. Одновременно refund rate вырос на 18%, а обращения в поддержку — на 12%. Если смотреть только на primary, релиз кажется победой. Если связать метрики с экономикой и опытом, становится видно, что часть пользователей завершает заказ, не понимая условий доставки или итоговой цены.
Правильное решение здесь не выбирает одну цифру. Сначала нужно разобрать сегмент, тип товара, способ оплаты и причины возврата. Возможно, проблема локальна и staged rollout с изменённым текстом решит её. Возможно, механизм изменения слишком агрессивен и нужно откатить его. Guardrail даёт сигнал для расследования, а не автоматически отвечает за всю причинность.
До запуска такой сценарий должен быть описан в decision rule. Например: “Раскатываем при росте paid order rate минимум на 1 п.п., если refund rate не увеличился более чем на 0,5 п.п. и complaint rate не превысил baseline на 3%”. Тогда итоговый вывод не зависит от того, какая цифра первой попалась в презентации.
| Сигнал | Вопрос | Следующий шаг |
|---|---|---|
| Primary выше | какой механизм дал рост? | проверить secondary funnel и сегменты |
| Refund rate выше | в каком заказе и окне возник риск? | разобрать причины и тип товара |
| Жалобы выше | что именно не понял пользователь? | сверить тексты, записи и обращения |
| Маржа ниже | эффект окупает стоимость ошибки? | посчитать unit economics до rollout |
Guardrail как часть бизнес-решения
Guardrail полезен только тогда, когда понятно, кто и что делает при его ухудшении. Для ошибок оплаты это может быть инженерный владелец, для возвратов — команда коммерции, для жалоб — support. Запиши owner рядом с порогом, иначе аналитик обнаружит риск, но решение застрянет между командами.
После теста не ограничивайся сравнением среднего. Посмотри, как guardrail связан с unit economics и пользовательским опытом. Небольшой рост возвратов у дешёвых заказов может иметь другой смысл, чем такой же рост у дорогой категории. Защитная метрика помогает задать направление расследования, а не отменяет бизнес-контекст.
| Поле | Пример |
|---|---|
| Показатель | refund rate среди оплаченных заказов |
| Окно | 30 дней после оплаты |
| Порог | не более +0,5 п.п. |
| Owner | руководитель коммерческого процесса |
| Действие | остановить rollout и разобрать сегмент |
Сделай guardrail наблюдаемым
Порог бесполезен, если его нельзя увидеть вовремя. Добавь на дашборд текущий уровень, baseline, интервал, дату последнего обновления и owner. Для отложенных возвратов покажи, какая часть окна уже созрела. Иначе команда примет решение по неполному guardrail и обнаружит риск позже.
- Текущее значение и baseline.
- Порог внимания и порог отката.
- Зрелость окна и свежесть данных.
- Ответственный за расследование.
Проведи post-launch review
Через несколько дней после rollout сравни не только результат теста, но и фактический опыт пользователей. Проверяй ошибки, возвраты, обращения и нагрузку на операционную команду. Guardrail может сработать с задержкой, поэтому дата окончательного review должна быть частью плана, а не случайным напоминанием.
Если риск не проявился, сохрани это как подтверждение границы, а не как доказательство вечной безопасности. Если проявился — зафиксируй сегмент, причину и решение: откатить, изменить интерфейс или оставить ограниченный rollout. Так защитные метрики превращаются в память продукта.
Материалы по теме

Как сформулировать гипотезу для A/B-теста: от наблюдения до решения
Практический шаблон гипотезы для A/B-теста: как перейти от симптома в метрике к изменению, механизму, primary metric и понятному решению.
Собеседование продуктового аналитика: метрики и кейсы с разбором
Как отвечать на продуктовые кейсы на собеседовании: падение DAU, воронка, retention, A/B-тест, новая функция и метрики, которые не стоит придумывать на ходу.

Статистическая значимость в A/B-тесте: p-value и доверительный интервал
Объясняем статистическую значимость без магии: как читать p-value, доверительный интервал и разницу между “значимо” и “полезно для бизнеса”.