Чему вы научитесь
- Связывать действия пользователя, продуктовые события, заказы и платежи в ShopFlow с конкретными бизнес-показателями
- Составлять план событий с обязательными свойствами, идентификаторами, временными метками и правилами регистрации
- Проверять полноту и правильность регистрации событий по реальным действиям и записям PostgreSQL
- Определять уровень детализации таблиц и бизнес-ключи, различать пользователей, сессии, события, заказы и попытки оплаты
- Писать аналитические SQL-запросы с JOIN, CTE, оконными функциями и агрегацией для восстановления пользовательского пути
- Находить размножение строк после JOIN и предотвращать завышение выручки и числа покупок
- Строить дерево продуктовых метрик и связывать конверсию, частоту покупок, средний чек и выручку
- Рассчитывать DAU, WAU и MAU с правильными временными окнами и учётом уникальных пользователей
- Считать конверсию, валовую выручку, возвраты, чистую выручку и средний чек по подтверждённым бизнес-операциям
- Согласовывать числитель, знаменатель, единицу измерения и период метрики, объяснять расхождения между отчётами
- Проектировать последовательную воронку от регистрации до оплаты с учётом порядка действий и конкретной корзины
- Рассчитывать потери между этапами воронки и находить причины просадки конверсии в отдельных сегментах
- Формировать когорты пользователей по первому действию и проверять корректность их состава
- Рассчитывать удержание D1, D7 и D30 по зрелым когортам, не принимать незавершённые окна за отток
- Анализировать неактивность, возвращение пользователей и реактивацию после длительного перерыва
- Строить поведенческие сегменты, проверять их пересечения и сравнивать конверсию сопоставимых групп
- Анализировать каналы привлечения и UTM-метки с явными правилами атрибуции и окнами наблюдения
- Обнаруживать эффект Симпсона и объяснять, как изменение состава аудитории влияет на агрегированную конверсию
- Находить повторно доставленные и пропущенные события и отличать их от самостоятельных бизнес-действий
- Исследовать поздно поступившие данные, связывать пользователя между сессиями и проверять целостность идентификаторов
- Сверять события покупок с заказами, платежами и возвратами независимыми SQL-запросами
- Создавать вопросы и продуктовые дашборды в Metabase и проверять их показатели по исходным данным PostgreSQL
- Разбирать аномалии на дашбордах и устанавливать, связаны ли они с изменением продукта, расчёта или качества событий
- Отличать наблюдаемую корреляцию от причинного эффекта продуктового изменения
- Формулировать гипотезу A/B-теста, основную метрику, защитные показатели и заранее заданные правила принятия решения
- Выбирать единицу рандомизации, целевую аудиторию и правила назначения пользователей в экспериментальные группы
- Оценивать необходимый размер выборки, минимально полезный эффект и длительность эксперимента с учётом зрелости данных
- Настраивать локальный GrowthBook и флаг двух вариантов оформления заказа, подключать назначение через Python SDK
- Проверять устойчивость назначения варианта и полноту регистрации фактических показов эксперимента
- Проводить контрольный A/A-тест и проверять исходные предположения о распределении пользователей и качестве данных
- Запускать воспроизводимый A/B-тест и рассчитывать абсолютный и относительный эффект на уровне пользователей
- Строить доверительные интервалы и сопоставлять результаты PostgreSQL с отчётами GrowthBook на одинаковых выборках
- Выявлять Sample Ratio Mismatch и ошибки учёта назначений и показов, которые искажают результат эксперимента
- Проверять влияние преждевременного просмотра результатов и множественных сравнений на риск ложных выводов
- Оценивать основную метрику вместе с ошибками оплаты, отменами и возвратами на завершённых окнах наблюдения
- Отличать статистическую значимость от практической пользы, оценивать ожидаемый бизнес-эффект и стоимость изменения
- Исследовать различия эффекта между заранее определёнными сегментами и ограничения таких сравнений
- Применять CUPED к предэкспериментальным данным и сравнивать точность оценки до и после корректировки
- Формулировать решение о продолжении исследования, отказе от изменения или ограниченном выпуске с критериями мониторинга и отката
- Самостоятельно расследовать расхождение продуктовых метрик, провести отдельный A/B-тест и защитить итоговую рекомендацию проверяемыми расчётами
О курсе

🧭 Отправная точка
В ShopFlow число событий об успешной оплате может отличаться от числа покупателей. Одно событие payment_succeeded иногда доставляется повторно, а соединение товарных позиций с несколькими попытками оплаты увеличивает количество строк. Если считать конверсию или выручку по таким данным без проверки, результат окажется неверным.
У удержания и A/B-тестов свои ограничения. Для расчёта D7 нужен завершённый семидневный период наблюдения. В эксперименте важно сопоставить назначенные варианты оформления заказа с фактически зарегистрированными показами. Если часть записей о показах потеряна, оценка конверсии может оказаться смещённой.
В локальной лаборатории ShopFlow вы запустите HTTP-приложение магазина и получите данные о действиях пользователей, заказах и платежах в PostgreSQL. На этих данных будете писать SQL, строить отчёты в Metabase и проводить эксперименты с GrowthBook. Научитесь заранее определять правила расчёта метрик и проверять результаты по исходным записям.
🎯 Цель курса — научиться рассчитывать продуктовые метрики, находить ошибки в данных, анализировать A/B-тесты и готовить обоснованные рекомендации по изменениям продукта.
⚙️ Что вы будете делать
-
📊 Рассчитывать продуктовые метрики. С помощью SQL посчитаете конверсию, выручку и возвраты, DAU/WAU/MAU, последовательные воронки и удержание D1/D7/D30. Определите, что считать: пользователей, заказы или события, как выбирать знаменатель и задавать временное окно. На практике проверите размножение строк после
JOINи расчёт удержания по когортам с завершённым периодом наблюдения. -
🔎 Проверять качество данных и отчётов. Сверите события с заказами и платежами, найдёте дубли, пропуски и задержки доставки. Проследите действия пользователя в разных сеансах, сравните конверсию сегментов и каналов привлечения, разберёте парадокс Симпсона. Построите отчёты в Metabase и сопоставите их с SQL-расчётами.
-
🧪 Проводить A/B-тесты. Сформулируете гипотезу о новой форме заказа, определите основную и защитные метрики, размер выборки и правило остановки. Настроите GrowthBook и Python SDK, проверите назначения вариантов и регистрацию показов. Проведёте A/A- и A/B-тесты, оцените эффект и доверительный интервал, исследуете нарушение пропорций распределения (SRM), преждевременный анализ и множественные проверки.
-
📝 Обосновывать продуктовые решения. Сопоставите эффект на конверсию с практической пользой, ошибками оплаты, отменами и возвратами. Исследуете различия между сегментами и метод CUPED для снижения разброса оценок. В итоговой работе объедините результаты расследования метрик и отдельного эксперимента в аргументированную рекомендацию.
🔥 Чем отличается курс
ShopFlow позволяет проследить каждую метрику до действий пользователя и записей в PostgreSQL. Вы сможете сравнить данные HTTP-приложения с аналитическими событиями и выяснить, на каком этапе появились расхождения.
Ошибки расчётов проверяются на конкретных данных. Например, соединение двух товарных позиций с тремя попытками оплаты создаёт шесть строк и завышает сумму товаров. В другом задании общие количества событий и оплат совпадают, хотя относятся к разным заказам. Поэтому вы будете сверять бизнес-ключи и рассчитывать денежные показатели по платёжным записям.
Конверсия среди зарегистрированных пользователей отличается от конверсии среди тех, кто начал оформление заказа. Для воронки важны последовательность действий и конкретная корзина, для удержания — день первого действия и полнота периода наблюдения. Вы будете формулировать правила расчёта заранее и проверять их на пограничных случаях.
В Metabase соберёте дашборд с показателями активности, конверсии и воронки, проверите его SQL-запросами и исследуете расхождения. В GrowthBook настроите варианты оформления заказа и сопоставите результаты с PostgreSQL. Особое внимание уделите полноте записей о назначениях и показах.
В практиках по экспериментам исследуете случаи, когда видимый рост конверсии сопровождается потерей записей о показах или ухудшением защитных метрик. Проверите полноту семидневных и четырнадцатидневных окон, а затем оцените качество данных, доверительные интервалы и практическую пользу изменения.
📚 Дополнительные бесплатные материалы
- 📄 A/B-тестирование: что это, как провести и рассчитать результат
- 📄 SQL JOIN удвоил сумму заказа: разбираем ошибку агрегации
- 📄 SQL JOIN: INNER, LEFT, RIGHT и FULL JOIN с примерами
- 📄 Retry, Rerun и Backfill: почему повторная загрузка может испортить данные
- 📄 ETL и ELT: что это, в чём разница и что выбрать
🎯 Итоговый кейс
В итоговом кейсе вы получите запрос о расхождении числа покупателей и количества оплат в ShopFlow. Уточните определения показателей и временные границы, затем сопоставите пользователей, заказы, платежи и события по идентификаторам. Проверите возможные ошибки соединений, пропуски и задержки данных. Если расхождение не воспроизведётся, зафиксируете этот результат и границы проведённой проверки.
После расследования запустите независимый A/B-тест новой формы заказа. Проверите назначение вариантов, полноту записей о показах и распределение пользователей по группам. Для основной метрики, ошибок оплаты и отмен используете завершённое семидневное окно, для возвратов — четырнадцатидневное.
В результате подготовите SQL-запросы, проверяемые расчёты и короткие отчёты по расследованию и эксперименту. Обоснуете решение: продолжить исследование, отказаться от изменения или предложить ограниченный выпуск. Для выпуска укажете ответственного, показатели контроля и порядок отката. В учебном задании фактическое переключение варианта не выполняется.
🧪 Поддержка
🤝 Вопросы по материалам курса можно задавать в комментариях Stepik. Разбирая сложную ситуацию, приложите название урока, свои действия и полученный результат — так проще понять причину ошибки и предложить следующий шаг.
✅ Практические работы проверяет преподаватель. Вы получаете обратную связь по выполненному заданию: что соответствует требованиям, что стоит исправить и на что обратить внимание при повторной проверке.
🚀 О XNova
XNova — практические курсы и учебные проекты для разработчиков, тестировщиков и инженеров. Мы разбираем технологии на работающих примерах: с кодом, наблюдаемым результатом и объяснением инженерных решений.
🔗 xnova.dev — другие курсы и материалы XNova.
📬 Контакты и сообщество
Продолжить знакомство с XNova, следить за новыми материалами или задать организационный вопрос можно здесь:
- 📣 Telegram-канал: @xnova_dev — анонсы курсов, статьи и новости проекта.
- 💬 Написать XNova: @xnova_contact — контакт для вопросов о курсах и проекте.
- ✉️ Почта: contact@xnova.dev — если удобнее написать письмом.
- 💻 GitHub: xnova-tech — открытые учебные проекты и примеры.
🔒 Доступ к разделам
⚠️ Важно! Модули курса открываются постепенно. Чтобы перейти к следующему модулю, необходимо набрать определённое количество баллов в текущем. Это вынужденная мера. Выполнять все задания не требуется, достаточно выполнить основную часть.
Для кого этот курс
Начальные требования
📚 Что нужно знать
- SQL: SELECT, WHERE, JOIN, GROUP BY и агрегатные функции.
- Python: читать и немного изменять код, запускать скрипты и работать с виртуальным окружением.
- Git и терминал: получать репозиторий, сохранять изменения и запускать локальные инструменты.
Продвинутая статистика заранее не требуется: необходимые методы для анализа A/B-тестов разбираются в курсе.
🧰 Что понадобится
- Python 3.12, Git и Docker Engine/Desktop с Compose для лаборатории ShopFlow.
- Аккаунт GitHub для доступа к закрытому учебному проекту и собственного форка.
- Не менее 5 ГиБ памяти, выделенной Docker, для одновременного запуска Metabase и GrowthBook.
Практика проходит на локальных сервисах и синтетических данных. Облачные аккаунты, платные API и реальные персональные данные не нужны.
Как проходит обучение
📊 Продуктовое решение начинается с проверки метрики. Объяснения и вопросы чередуются с SQL-анализом данных учебного продукта ShopFlow.
- 🔎 Проверяете основу: находите пропущенные события, повторы и расхождения в расчётах.
- 🧪 Проводите эксперимент: настраиваете A/B-тест в GrowthBook и анализируете результат в Python.
- 📝 Формулируете вывод: готовите рекомендацию с расчётами и честными ограничениями данных.
Программа курса
В курс входят
- 64 урока
- 2часа видео
- 96 тестов
- 59 интерактивных задач
Наши преподаватели
Сертификат
Что вы получаете
- Собственная рабочая копия учебного продукта ShopFlow с HTTP-приложением, PostgreSQL, синтетическими пользователями, заказами, платежами и событиями
- План продуктовых событий с проверками свойств, идентификаторов, временных меток и связи событий с бизнес-операциями
- Набор собственных SQL-запросов для анализа пользовательского пути, устранения ошибок JOIN и сверки данных разной детализации
- Дерево продуктовых метрик и зафиксированные правила расчёта активности, конверсии, выручки, возвратов и среднего чека
- Последовательные воронки с анализом потерь, когортные расчёты D1/D7/D30 и результаты исследования оттока и реактивации
- Расчёты сегментов и каналов привлечения с проверками атрибуции и влияния состава аудитории
- Результаты аудита качества данных с обнаруженными дубликатами, пропусками, задержками событий и расхождениями с платежами
- Продуктовый дашборд в Metabase с контрольными SQL-запросами и результатами расследования аномальных показателей
- План A/B-теста с гипотезой, основной и защитными метриками, единицей рандомизации, размером выборки и правилом остановки
- Настроенный учебный эксперимент в GrowthBook с вариантами оформления заказа, назначениями через Python SDK и проверками регистрации показов
- SQL- и Python-расчёты A/A- и A/B-тестов, доверительных интервалов, нарушений распределения, множественных проверок и CUPED
- Анализ практической пользы изменения, защитных показателей и ограничений данных с обоснованной рекомендацией о выпуске или продолжении исследования
- Итоговый аналитический кейс с расследованием расхождения метрик, независимым экспериментом, воспроизводимыми расчётами и техническим обоснованием продуктового решения