Теорія
Кейс: читаємо завершений тест
Ефект, інтервал, guardrail-метрики і рішення.
~9 хв читання · 10 вправ · 250 балів
Перед початком
Кейс: через шість тижнів
Минуло шість тижнів, і тест paywall у Halves завершено. Maya вже готова винести великий стрибок пробних періодів у презентацію для загальних зборів, а Theo хоче спершу запустити на iOS, бо там результат виглядає кращим. Продуктова команда чекає на твоє прочитання.
Цей кейс завершує модуль. Ти прочитаєш завершений тест у тому порядку, який план зафіксував до запуску: розподіл, основна метрика з інтервалом, guardrail-метрика і правило рішення.
Перша перевірка: чи поділ такий, як задумано?
Перш ніж читати будь-яку метрику, перевір, що тест розподілив користувачів так, як казав план. За поділу 50/50 варіанти мають бути близькими за розміром, але ніколи не рівно однаковими: випадковий розподіл коливається.
Швидка перевірка — хі-квадрат на кількостях. Якщо всього N користувачів, кожен варіант очікувано отримує E = N ÷ 2. Тоді:
χ² = (n₁ − E)² ÷ E + (n₂ − E)² ÷ E
Для тесту paywall: N = 6897 + 6792 = 13 689, E = 6844,5. Кожен варіант відхиляється від E на 52,5 користувача, тож χ² = 2 × 52,5² ÷ 6844,5 ≈ 0,81. Поріг для одного ступеня свободи на рівні 5% — 3,84; 0,81 значно менше, тож поділ у порядку.
Поділ на кшталт 7400 проти 6300 дає χ² ≈ 88: забагато перекосу, щоб бути випадковістю. Це перекіс поділу вибірки (sample ratio mismatch, SRM), і майже завжди він означає баг: один варіант падає на старих телефонах, записує частину користувачів двічі чи губить їх на переадресації. Баг зазвичай б'є по певному типу користувачів, тож групи перестають бути порівнюваними. Виправ його й перезапусти тест; результат не тлумач.

- Так6897 проти 6792: χ² ≈ 0,81 < 3,84 → поділ у порядку, читаємо далі
- Не так7400 проти 6300: «досить близько, гляньмо на конверсію»
χ² ≈ 88: зламане призначення, а не результат.
Спершу додай кількості, потім діли
Частку варіанта дає об'єднання — правило для будь-якої частки, зібраної з частин: додай його кількості з усіх рядків, а потім поділи один раз. Тут у датасеті один рядок на тиждень включення, платформу й варіант, вісім рядків на варіант:
Набір даних · 16 рядків
Тест paywall Halves: control проти trial_first
Користувачі, включені в момент першого перегляду paywall, 3–30 серпня 2026 року; кожного спостерігали 14 днів. Один рядок на тиждень включення, платформу й варіант.
Перші 5 з 16 рядків
Частка = Σ paid_14d ÷ Σ users
Control: paid_14d = 43 + 27 + 39 + 23 + 39 + 27 + 40 + 22 = 260; users = 1002 + 715 + 1009 + 714 + 1041 + 709 + 992 + 715 = 6897. Частка: 260 ÷ 6897 = 3,77%. trial_first: 345 ÷ 6792 = 5,08%.
Не усереднюй вісім часток рядків. Рядки різного розміру (у рядках iOS близько 1000 користувачів, Android — близько 700), тож просте середнє часток дає малому рядку Android ту саму вагу, що й великому рядку iOS. Об'єднана частка рахує кожного користувача один раз, а саме це й означає метрика з плану («частка користувачів тесту, які оплатили протягом 14 днів»).
Зберігай достатньо знаків у проміжних кроках. 260 ÷ 6897 = 3,7697%; якщо округлити до 3,8% перед відніманням, ефект зсунеться на кілька сотих пункту.
- ТакControl: 260 ÷ 6897 = 3,77%
- Не такСереднє восьми часток «тиждень × платформа» для control
Дає малим рядкам Android ту саму вагу, що й великим рядкам iOS.
Ефект: тест − контроль, у пунктах
Ефект тесту завжди подають як тест − контроль, а для частки ця різниця вимірюється у відсоткових пунктах (п. п.).
5,0795% − 3,7697% = +1,31 п. п.
Знак має значення: додатний означає, що нова версія вища. Якщо записати «контроль − тест», знак перевернеться, і кожен, хто звірятиме число з планом, заплутається.
Відношення двох часток дає відносний приріст: 5,0795 ÷ 3,7697 − 1 = +34,7%. Це правильне число, але інше, і його треба підписувати як відносне. «+34,7%» без підпису підштовхує читача думати, що конверсія зросла з 3,77% приблизно до 38%, або просто звучить гучніше за бізнесову зміну, яку описує.
План записано в пунктах (найменший ефект, заради якого варто запускати, — +1 п. п.), тож і рішення читають у пунктах. Добра звичка — давати базовий рівень, нову частку й різницю разом, а відносний приріст у дужках, якщо комусь потрібен: «3,77% → 5,08%, +1,31 п. п. (відносно +34,7%)». Такий рядок неможливо прочитати хибно.
- Так5,0795 − 3,7697 = +1,31 п. п.
- Не так5,08 ÷ 3,77 = 1,35 → «ефект: 1,35»
Відношення, подане як ефект, ще й без одиниці.
Інтервал для різниці двох часток
Для кожної частки бери 95% інтервал Вілсона (Wilson): він лишається розумним для малих часток, як-от 4%, де проста формула «p ± 1,96 × стандартна похибка» вводить в оману. Control (260 з 6897): від 3,35% до 4,25%. trial_first (345 з 6792): від 4,58% до 5,63%.
Для ефекту d = p_T − p_C поєднай два інтервали. Кожна межа ефекту бере відстані, що штовхають її в той самий бік:
- нижня межа: trial_first може бути нижчим (p_T − L_T = 5,08 − 4,58 = 0,50), а control — вищим (U_C − p_C = 4,25 − 3,77 = 0,48). L = 1,31 − √(0,50² + 0,48²) = 1,31 − 0,693 = +0,62 п. п.
- верхня межа: trial_first вищий (U_T − p_T = 0,55), control нижчий (p_C − L_C = 0,42). U = 1,31 + √(0,55² + 0,42²) = 1,31 + 0,692 = +2,00 п. п.
Отже: +1,31 п. п., 95% інтервал від +0,62 до +2,00 п. п. Поширена помилка — віднімати межі напряму (4,58 − 4,25 = 0,33), ніби обидві частки одночасно стоять на своїх крайніх значеннях.

- ТакL = 1,31 − √(0,50² + 0,48²) = 1,31 − 0,693 = +0,62 п. п.
- Не такL = 4,58 − 4,25 = +0,33 п. п.
Вважає, що обидва найгірші випадки стаються разом, тож інтервал виходить заширокий.
Головний рядок, який не прочитати хибно
Перший рядок підсумку тесту — саме той, який цитуватимуть. Він має містити все потрібне, щоб оцінити результат, і щоб нікому не довелося це шукати:
- основну метрику за назвою, як у плані;
- обидві частки, щоб було видно базовий рівень;
- ефект у пунктах, тест − контроль;
- його 95% інтервал;
- відносний приріст — лише якщо корисний, і з підписом «відносний».
Для paywall: «Оплата протягом 14 днів: 3,77% → 5,08%, +1,31 п. п. (95% інтервал від +0,62 до +2,00 п. п.); відносний приріст +34,7%».
Порівняй з «Конверсія в оплату +35%». Тут немає базового рівня, одиниці й невизначеності, а «+35%» звучить як інша, більша зміна, ніж та, що сталася. Ще гірше почати з другорядної метрики, як-от «Тріали +74%»: рішення ухвалювали не за цим числом.
Головний рядок — не місце для прикметників («величезний», «майже значущий»). Числа з одиницею та інтервалом уже кажуть, наскільки великий ефект і наскільки ми впевнені.
- Так«Оплата протягом 14 днів: 3,77% → 5,08%, +1,31 п. п. (від +0,62 до +2,00).»
- Не так«Конверсія в оплату +35%!»
Ні базового рівня, ні одиниці, ні інтервалу, і читається як більша зміна.
Як застосувати правило, записане до запуску
Прочитати запланований тест — здебільшого звірити числа з планом, у його порядку:
- Поділ: збалансований (χ² ≈ 0,81).
- Розмір і потужність: 6897 і 6792 користувачі проти запланованих 6735 на варіант, повні 4 тижні плюс 14-денне вікно. Тест мав потужність, на яку його будували.
- Основна: +1,31 п. п., 95% інтервал від +0,62 до +2,00 п. п., повністю вище за 0.
- Запобіжна (guardrail): витрата на 8–14-й день, 60,53% → 60,60%, +0,07 п. п., інтервал від −1,57 до +1,70 п. п., повністю вище за запас −3 п. п.
- Правило: обидві умови запуску виконано, тож запускаємо trial_first для всіх користувачів.

Два моменти часто збивають. По-перше, інтервал основної метрики містить +1 п. п., найменший ефект, заради якого варто запускати. Це не блокує рішення: правило вимагає інтервалу вище за нуль, а точкова оцінка вища за +1. По-друге, різниця за запобіжною метрикою незначуща, і це саме той результат, на який сподівалися: інтервал виключає шкоду понад запас. «Незначуща» запобіжна метрика — проблема лише тоді, коли її інтервал ще й виходить за запас.
- ТакОсновна від +0,62 до +2,00 > 0; запобіжна −1,57 > −3 → запускаємо для всіх
- Не так«Інтервал містить +1 п. п., тож тест треба повторити.»
Правило вимагає інтервалу вище за 0, і цей інтервал саме такий.
Другорядні метрики пояснюють, а не вирішують
Тріали — найяскравіше число в цьому тесті. Після об'єднання рядків: control 587 з 6897 = 8,51%, trial_first 1004 з 6792 = 14,78%. Ефект — 14,78 − 8,51 = +6,27 п. п.; як відносний приріст — 14,78 ÷ 8,51 − 1 = +73,7%, звідси й «Тріали +74%».
Датасет: Тест paywall Halves: control проти trial_first · є вище
Але це однаково другорядна метрика. Вона показує, як спрацював paywall: тріал на початку змусив значно більше людей спробувати Plus, і частина з них заплатила. Вона не показує, чи спрацював paywall для бізнесу. Це каже основна метрика, +1,31 п. п. платних користувачів, і вона набагато менша за стрибок тріалів: багато додаткових тріалів так і не стали оплатами.
Три правила тримають другорядні метрики на своєму місці:
- показуй їх після основної, ніколи не як головне число;
- подавай їх так само: пункти, підписаний відносний приріст і, бажано, інтервал;
- пам'ятай, що рішення ухвалювали не за ними, а кожна додаткова метрика — ще одна нагода випадкової різниці.
Чесний слайд для всієї команди каже: «більше людей спробували Plus, а конверсія в оплату зросла на 1,31 пункту».
- ТакТріали 8,51% → 14,78%, +6,27 п. п. (відносно +74%), після основної метрики
- Не такГоловне число: «Тріали +74%»
Другорядна метрика у відносному прирості, подана як результат.
Підгрупи, знайдені після тесту
Після тесту кортить розрізати результат за платформою, країною, каналом чи тижнем. Зрізи не планували й на них не розраховували, а кожен — ще одна нагода випадково знайти різницю, тож вони дають питання, а не рішення.
Тест paywall показує, як зрізи вводять в оману в обидва боки:
- Android: +0,29 п. п., інтервал від −0,69 до +1,28 п. п. Він містить і 0, і +1 п. п., тож це непевний результат, а не «немає ефекту»: з менше ніж 3000 користувачів на варіант тест не може сказати.
- iOS: основна метрика виглядає чудово, +2,00 п. п. (від +1,05 до +2,96), але інтервал запобіжної метрики на iOS, від −3,66 до +0,60 п. п., виходить за запас −3 п. п. Як окремий тест iOS не пройшов би запобіжну перевірку.
Рішення лишається за заздалегідь записаним правилом для всіх користувачів: запускаємо для всіх. Якщо платформа важлива, стеж за нею після запуску або сплануй тест, розрахований на неї.
Як це складається докупи: перевірити розподіл, об'єднати, відняти «тест − контроль», додати інтервал, застосувати записане правило, а потім пояснювати другорядними метриками й тримати зрізи як питання. Модуль 5 відповів, чи спрацювала зміна; наступний модуль питає, що можна дізнатися без тесту.

- Так«Android: +0,29 п. п. (від −0,69 до +1,28), непевно; стежитимемо за його конверсією в оплату після запуску.»
- Не так«На iOS +2 п. п., Android нічого не показує: запускаємо лише на iOS.»
Рішення за незапланованими зрізами; iOS окремо навіть не пройшов би запобіжну перевірку.
Готові потренуватися?
Виконайте вправи уроку й отримайте 250 балів, коли пройдете його вперше.
Розпочати вправи