# Аналіз до і після: чесне порівняння версій

> Аналіз до і після: правила, за яких порівняння версій застосунку варто читати.

- Курс: [Продуктова аналітика: від даних до рішень](https://productovi.com/uk/courses/product-analytics.md)
- Модуль: Що можна дізнатися без тесту?
- Урок 21/32, ~30 хв
- Джерело: https://productovi.com/uk/courses/product-analytics/version-comparison

## «Ми зламали утримання?» Чому поділ за версією вводить в оману

**Alex Tutor:** Тривожний дашборд у Halves: Maya думає, що реліз щось зламав, і перевірити це маєш ти — аналізом до і після релізу.

**Maya:** Версія 4.9.0 вийшла в понеділок, 11 травня, з новим сценарієм першої витрати. Мій дашборд каже, що утримання на другому тижні впало з **29% до 15%**. Ми щось зламали?

**Sofia:** А може, просто поділити сьогоднішніх користувачів за версією? Усі на 4.9.0 проти всіх, хто досі на 4.8.0: той самий тиждень, та сама погода.

**Alex Tutor:** Це найспокусливіший варіант, і він перекошений ще до початку. Ніхто не тягнув жереб, кому дістанеться оновлення. Ті, хто відкриває Halves раз на кілька днів, отримують 4.9.0 за день-два, часто автоматично; ті, хто відійшов, тижнями сидять на 4.8.0. На боці 4.9.0 зібралися найвідданіші користувачі.

![Завзяті постійні користувачі першими кидаються встановлювати оновлення, а випадкові підходять значно пізніше.](https://productovi.com/courses/product-analytics/inline/version-comparison-illustration-2.webp)

*Оновлення не розігрували жеребом: першими його ставлять найактивніші.*

**Sofia:** Тобто нова версія «виграла» б, навіть якби нічого не змінила.

**Alex Tutor:** Так: групи відібрали себе самі. Це **спостережне порівняння (observational comparison)**, а не підкидання монетки, тож чесність доведеться вбудувати самим. Беремо **нових користувачів, згрупованих за датою реєстрації**: новачок встановлює ту версію, яка актуальна, тож версію визначає дата, а не ентузіазм. Далі ще два правила: **те саме фіксоване вікно** для кожної когорти і **лише когорти, які прожили його повністю**.

> **Вправа:** Halves випустив версію 4.9.0 з новим сценарієм першої витрати в понеділок, 11 травня; до того всі були на 4.8.0. Яке порівняння двох версій достатньо чесне, щоб його читати?

## Які когорти вже завершилися?

**Alex Tutor:** Ось щоденні когорти реєстрацій з 13 квітня до 31 травня, вивантажені вранці 1 червня. Утримання тут — відкрити застосунок хоча б в один із **днів 8–14** після реєстрації; день реєстрації — день 0.

**Набір даних (CSV):** [Щоденні когорти реєстрацій навколо версії 4.9.0](https://productovi.com/datasets/product-analytics/version-comparison/halves-version-cohorts.csv)

Нові користувачі Halves з 13 квітня до 31 травня 2026 року, один рядок на день реєстрації. Версія 4.9.0 вийшла 11 травня. Дані вивантажено вранці 1 червня.

- `signup_date`: День реєстрації (день 0)
- `app_version`: Версія, яку нові користувачі встановили того дня
- `days_observed`: Скільки днів після дня реєстрації видно на 1 червня
- `new_users`: Нові користувачі того дня
- `returned_any_time`: Відкрили застосунок будь-якого пізнішого дня до 31 травня
- `active_days_8_14`: Відкрили застосунок хоча б в один із днів 8–14 (станом на зараз)

**Sofia:** Когорта від 25 травня має `days_observed` = 6. Її 8-й день ще навіть не настав, тож її нуль нічого не означає.

**Alex Tutor:** Саме так. А когорта, у якої видно 10 днів, побачила лише частину свого вікна. Потрібно, щоб `days_observed` було щонайменше 14.

![Пекар виймає з печі лише рум'яні буханці, залишаючи бліді, які ще допікаються.](https://productovi.com/courses/product-analytics/inline/version-comparison-illustration-3.webp)

*Рахуй лише когорти, які прожили весь період.*

> **Вправа:** Щоденні когорти реєстрацій Halves (4.9.0 — з 11 травня) порівнюють за активністю на 8–14-й день після реєстрації; дані, вивантажені вранці 1 червня, охоплюють період по 31 травня. Скільки когорт **версії 4.9.0** прожили свої дні 8–14 повністю до ранку 1 червня?

**Alex Tutor:** Межа не стала. Кожне нове вивантаження даних її зсуває, тож переконайся, що вмієш її перерахувати.

> **Вправа:** Halves порівнює щоденні когорти реєстрацій за активністю на 8–14-й день після реєстрації (день реєстрації — день 0). Дані охоплюють період по **7 червня**. Яка **найпізніша дата реєстрації**, когорта якої повністю прожила дні 8–14?

## Аналіз до і після: об’єднуємо когорти

**Alex Tutor:** Почни з 4.8.0: усі 28 її когорт завершені. Підсумуй `active_days_8_14` і `new_users`, потім поділи. Спочатку сума: якщо усереднити щоденні частки, малі дні важитимуть стільки ж, скільки великі.

**Sofia:** Тобто тихий вівторок і людна субота важать за кількістю своїх користувачів, а не однаково.

**Alex Tutor:** Так. Об'єднуємо користувачів і ділимо один раз.

> **Вправа:** Яка частка нових користувачів **версії 4.8.0** була активна на 8–14-й день? У відсотках, до сотих.

**Maya:** А мої 15% для 4.9.0?

**Alex Tutor:** Це всі 21 когорта 4.9.0, 14 з яких ще неможливо було повністю порахувати. Більша частина вашого падіння — це календар, а не код. Беремо лише сім завершених когорт.

![Станом на 1 червня всі 28 когорт 4.8.0 завершені, а з 4.9.0 повні дні 8–14 мали лише 7 когорт з 11 до 17 травня; порівнюй тільки їх.](https://productovi.com/courses/product-analytics/diagrams/m6-l1-complete-cohorts-uk.png)

**Sofia:** Отже, з 11 до 17 травня. Ті самі суми, те саме ділення.

> **Вправа:** Візьми лише **завершені** когорти 4.9.0 (11–17 травня). Яка частка була активна на 8–14-й день? У відсотках, до сотих.

## Метрика без фіксованого горизонту

**Theo:** У моєму звіті — «повернулися будь-коли»: 66,8% для 4.8.0 проти 47,1% для 4.9.0. Це теж падіння.

**Alex Tutor:** Когорта із середини квітня мала шість тижнів, щоб повернутися хоч раз; когорта з кінця травня — кілька днів. Ця колонка вимірює вік когорти, а не версію.

**Sofia:** Тобто метрика без фіксованого горизонту завжди на боці старших когорт.

> **Вправа:** «Повернувся будь-коли після реєстрації» — чесна метрика для порівняння когорт 4.8.0 і 4.9.0, бо вона використовує всі наявні дані.

**Theo:** А якщо лишити «будь-коли», але взяти лише завершені когорти? Це ж має виправити.

> **Вправа:** Візьми лише **завершені** когорти 4.9.0 (11–17 травня). Яка частка **повернулася будь-коли**? У відсотках, до сотих.

## Що може і чого не може довести порівняння «до і після»

**Maya:** Отже, 4.9.0 насправді краща? +2,33 пункти?

**Alex Tutor:** Обережно, двічі. По-перше, випадковість: сім днів, 551 користувач. Інтервал на основі Вілсона для різниці — приблизно **від −1,9 до +6,7 п. п.** Це може бути невелика втрата або помітний виграш.

**Alex Tutor:** По-друге, навіть вузький інтервал враховує лише випадковість. Усе інше, що змінилося в травні, — канікули, кампанія, погода — сидить у тому самому числі. Порівняння «до і після» може показати різницю, але не доводить, що її спричинив реліз.

**Maya:** Тоді дай мені один рядок, який я можу надіслати команді, і щоб ніхто завтра мене не виправляв.

> **Вправа:** Завершені когорти реєстрацій показують 31,22% нових користувачів 4.9.0, активних на 8–14-й день, проти 28,88% для 4.8.0: +2,33 п. п., 95% інтервал приблизно від −1,9 до +6,7 п. п. Який рядок Maya, продуктова лідерка Halves, може надіслати команді про 4.9.0 і утримання на другому тижні?

![Садівник милується вищою рослиною після підживлення, а сонце й дощова хмара над нею теж доклали зусиль.](https://productovi.com/courses/product-analytics/inline/version-comparison-illustration-4.webp)

*Порівняння «до і після» не відокремить реліз від усього іншого, що змінилося.*

**Sofia:** Тоді чесна відповідь: ми нічого не зламали, але й не можемо поки стверджувати, що покращили.

> **Вправа:** Після виходу 4.9.0 11 травня дашборд Maya, продуктової лідерки Halves, показав падіння утримання на другому тижні з 29% до 15%. Дай відповідь на її питання «Чи зламала 4.9.0 утримання на другому тижні?» у 3–5 реченнях. Використай числа з датасету, поясни, чому її 15% вводять в оману і що це порівняння може і чого не може підтвердити.

**Alex Tutor:** Постав дату в календар: за два тижні завершеними будуть 21 когорта 4.9.0 замість семи. Ті самі правила, точніше число.

- Попередній урок: [Кейс: читаємо завершений тест](https://productovi.com/uk/courses/product-analytics/reading-a-test.md)
- Наступний урок: [Структура трафіку і сезонність](https://productovi.com/uk/courses/product-analytics/traffic-and-seasons.md)

---
Productovi Learning. Безкоштовно, читати можна без реєстрації.
