← Назад к курсу экспериментов
Чеклисты и operating
Эксперимент — часть эксплуатации системы.
Хороший эксперимент — это не отчёт. Это управление риском и мониторинг.
Минимальный набор артефактов
One-pager эксперимента (1 экран)
- Изменение в терминах механизма (не фичи)
- Ожидаемый рычаг (price/volume/mix/pressure/time)
- Primary метрика (1–2), guardrails (3–5), окно и лаг
План мониторинга (primary + guardrails)
- Что смотрим ежедневно (sanity checks)
- Что смотрим на short window (7–14 дней)
- Что смотрим на long window (60+ дней)
План окна и лага (short/long)
- Short window для ранних сигналов (7–14 дней)
- Long window для устойчивых эффектов (60+ дней)
- Ожидаемый лаг (поведенческий/рыночный/системный)
Правило решения (roll/iterate/stop)
- Критерии для rollout (primary + guardrails стабильны)
- Критерии для итерации (нужен другой дизайн)
- Критерии для остановки (guardrails сработали, риск неприемлемый)
Чеклист ДО запуска
3.1 Гипотеза и механизм
Гипотеза сформулирована в терминах механизма (не фичи)
Указан ожидаемый рычаг (price/volume/mix/pressure/time)
Описана причина изменения (почему рычаг сдвинется)
Определены ожидаемые риски (каннибализация, перегруз, микс, лаг)
Описано, как контролируем риски (guardrails, дизайн, окно)
Определён ожидаемый лаг (поведенческий/рыночный/системный)
Описаны потенциальные перетоки (каннибализация, displacement)
Описано, что мониторим по соседним поверхностям/сегментам
3.2 Риски и артефакты
Проверена сезонность (сравнение одинаковых дней недели, baseline adjustment)
Проверены параллельные тесты (пересечения, изоляция групп)
Проверена стабильность контроля / baseline (control group stability)
Описано, что будет считаться "стоп-сигналом" (guardrail пороги)
Проверены внешние шоки (рынок, конкуренция, технические проблемы)
Описаны артефакты окна (short vs long, зависимость от окна)
Описаны риски distribution shift (среднее растёт, хвосты падают)
Описаны риски масштабных эффектов (test vs rollout)
Описаны риски латентных эффектов (поздние последствия, усталость)
3.3 Дизайн и сегменты
Рандомизация корректна (группы независимы, размер достаточен)
Стратификация выполнена (если сегменты сильно различаются)
Определено short окно (7–14 дней) для ранних сигналов
Определено long окно (60+ дней) для устойчивых эффектов
Учтена интерференция (если группы не независимы)
Проверены пересечения с параллельными тестами
Определён baseline model (ожидаемое поведение до запуска)
Определены контрольные сегменты/поверхности
Мощность рассчитана (достаточный размер выборки)
Учтена необратимость (если решение необратимо, окно длиннее лага)
3.4 Инструментация
Все метрики логируются (primary, diagnostic, guardrails)
Гранулярность достаточна (день, сегмент, распределения)
Change log фиксирует все изменения (время, параметры, события)
Время запуска зафиксировано
Параметры системы зафиксированы (floors, limits, constraints)
Внешние события логируются (рынок, технические проблемы)
Инструментация проверена (метрики считаются корректно)
Дашборды настроены (primary, guardrails, diagnostic)
3.5 Метрики (primary/diagnostic/guardrails)
Primary ≤ 2 (не больше двух primary метрик)
Primary чётко определена до запуска
Есть разложение price/volume/mix (diagnostic метрики)
Guardrails определены до запуска (3–5 метрик)
Guardrails не меняются после начала теста
Пороги тревоги для guardrails зафиксированы
Поздние сигналы определены (retention, risk accumulation)
Распределения и хвосты включены (не только среднее)
Сегментный анализ включен (не только агрегаты)
Чеклист ВО ВРЕМЯ эксперимента
Не делать выводы раньше времени. Короткое окно ловит адаптацию, а не устойчивый эффект.
Первые дни (sanity)
Метрики считаются корректно (sanity check)
Группы разделены корректно (нет утечек)
Контроль стабилен (baseline не "плавает")
Нет технических проблем (latency, delivery)
Ранние сигналы (proxy) в ожидаемом диапазоне
Guardrails не сработали (нет критических ухудшений)
Нет внешних шоков (рынок, сезонность, параллельные тесты)
Change log проверен (нет незапланированных изменений)
На short window (7–14 дней)
Primary показывает направление (рост/падение/нейтрально)
Разложение на price/volume/mix понятно
Guardrails стабильны (нет критических ухудшений)
Ранние сигналы (proxy) согласуются с primary
Нет сильной каннибализации (total revenue не падает)
Распределения стабильны (нет резкого distribution shift)
Контроль стабилен (baseline не дрейфует)
Нет артефактов окна (эффект не зависит только от выбора окна)
На long window (60+ дней)
Primary эффект устойчив (не ослабевает со временем)
Guardrails стабильны (особенно поздние: retention, risk)
Нет накопления усталости (fatigue proxy не растёт)
Нет латентных эффектов (поздние последствия не проявляются)
Short vs long window согласуются (нет расхождения)
Risk accumulation под контролем (risk не растёт быстрее revenue)
Микс стабилен (нет резких композиционных сдвигов)
Эффект не зависит от окна (вывод стабилен при разных окнах)
Stop rules — когда останавливать эксперимент
Guardrail резко ухудшился
Критическое ухудшение guardrail указывает на скрытую деградацию системы, которая может проявиться позже в primary метрике.
Действие: Stop/Revert, если guardrail критичен. Если guardrail некритичен — Reduce (ограничить масштаб) и мониторить.
Risk/pressure proxy растёт быстрее денег
Накопление риска и давления без соответствующего роста revenue указывает на перегруз и будущую деградацию.
Действие: Stop/Revert, если risk неприемлемый. Иначе — Reduce и мониторить risk accumulation.
Контроль нестабилен (baseline drift)
Нестабильный baseline делает выводы ненадёжными. Эффект может быть артефактом внешних факторов.
Действие: Stop, если baseline критически нестабилен. Проверить внешние факторы (рынок, сезонность, параллельные тесты).
Сильная каннибализация / системный минус
Рост в тестовом сегменте компенсируется падением в остальной системе. Total revenue не растёт или падает.
Действие: Stop/Revert, если total revenue падает. Иначе — Segment (изолировать сегмент) и мониторить соседние.
Системная деградация (латентная) при "выигрыше" теста
Test segment показывает рост, но системные guardrails ухудшаются (retention, quality, risk). Латентная деградация проявится позже.
Действие: Stop/Revert, если деградация критична. Иначе — Iterate (изменить дизайн) с учётом guardrails.
Технические проблемы / latency
Технические проблемы искажают метрики и делают выводы ненадёжными. Delivery, latency, ошибки влияют на результаты.
Действие: Stop, если проблемы критичны. После исправления — перезапустить тест или продлить окно.
Эффект полностью зависит от окна (нестабилен)
Short window показывает один результат, long window — другой. Эффект нестабилен, выводы ненадёжны.
Действие: Stop, если эффект полностью зависит от окна. Проверить лаг и артефакты. Возможно — Iterate с другим дизайном окна.
Микс резко изменился
Резкий композиционный сдвиг может маскировать деградацию. Среднее растёт, но качество падает.
Действие: Stop/Revert, если микс критически ухудшился. Проверить quality proxy и distribution tails.
Распределение/хвосты ухудшились
Среднее может расти, пока хвосты деградируют. Distribution shift указывает на скрытую деградацию качества.
Действие: Stop/Revert, если хвосты критически ухудшились. Проверить coverage, quality proxy, сегментный анализ.
Primary падает, guardrails ухудшаются
Одновременное падение primary и ухудшение guardrails указывает на системный негативный эффект.
Действие: Stop/Revert немедленно. Эффект отрицательный и неустойчив.
Чеклист ПОСЛЕ решения (rollout monitoring)
Что мониторим первые 72 часа
Revenue index (стабильность эффекта при выкатке)
Price proxy (стабильность цены, нет резких падений)
Volume/shows (стабильность объёма, нет резких падений)
Guardrails (особенно ранние: coverage, showConv, pressure proxy)
Mix proxy (стабильность микса, нет резких сдвигов)
Fatigue proxy (нет резкого накопления усталости)
Технические метрики (latency, delivery, ошибки)
Сравнение с тестом (эффект при выкатке соответствует тесту)
Что мониторим 2–4 недели
Revenue index (устойчивость эффекта, нет ослабления)
Guardrails (особенно поздние: retention proxy, risk accumulation)
Fatigue proxy (накопление усталости, frequency tail)
Mix/quality proxy (стабильность качества, нет деградации)
Price vs volume (стабильность trade-off, нет эластичности)
Распределения/хвосты (стабильность, нет distribution shift)
Сезонность/рынок (внешние факторы не искажают эффект)
Масштабные эффекты (saturation, конкуренция, масштаб)
Какие алерты ставим
Guardrail ухудшился на X% от baseline (порог тревоги)
Risk/pressure proxy растёт быстрее revenue (накопление риска)
Revenue падает на X% от ожидаемого (эффект ослабевает)
Mix резко изменился (композиционный сдвиг)
Distribution shift (хвосты ухудшились)
Технические проблемы (latency, delivery, ошибки)
Коммуникация результата
Как писать итог эксперимента (6 предложений)
Что изменили: Описание изменения в терминах механизма (давление, цена, формат, качество, частота), а не фичи.
Что увидели по primary: Направление изменения (рост/падение/нейтрально) и величина эффекта в окне оценки. Сравнение short vs long window.
Разложение: Вклад компонентов — price effect (рост/падение цены), volume effect (изменение объёма), mix/quality effect (сдвиг микса или качества). Какой рычаг доминирует.
Guardrails: Что ухудшилось (если ухудшилось), что осталось стабильным. Ранние сигналы (coverage, showConv, pressure proxy) и поздние (retention, risk accumulation).
Окно и лаг: Short window vs long window. Если выводы расходятся — почему. Ожидаемый лаг и когда эффект проявился полностью.
Решение и что мониторим дальше: Катить / итерация / продолжить / откат. Какой риск принимаем. Что мониторим после выкатки (guardrails, risk, масштабные эффекты).
Операционное качество эксперимента важнее, чем "значимость" его результата.