Retention 8% на 30-й день — это катастрофа или норма? Почему январская когорта держится лучше мартовской? Как объяснить CEO, что нужно срочно чинить онбординг? Когортный анализ даёт ответы на эти вопросы, но только если вы умеете его правильно считать и интерпретировать.
Ключевые цифры: в среднем только 28% пользователей возвращаются на следующий день после установки приложения, к 7-му дню остаётся 18%, а к 30-му — лишь 8%. Но эти цифры сильно зависят от отрасли: у банковских приложений Day 30 retention достигает 12%, а у утилит — всего 2-4%.
Эта статья — практическое руководство: от формул и SQL-запросов до визуализации в Python и презентации результатов стейкхолдерам. С примерами кода, бенчмарками по отраслям и типичными ошибками, которых нужно избегать.
Что такое когортный анализ и зачем он нужен
Когортный анализ — это метод исследования поведения пользователей, при котором их группируют по общему признаку (обычно дате первого действия) и отслеживают метрики каждой группы отдельно. Когорта — это группа пользователей, которые совершили определённое действие в один период времени.
Почему усреднённый retention врёт
Представьте: общий retention вашего приложения — 15%. Звучит неплохо. Но когортный анализ показывает: январская когорта держится на 25%, а мартовская — на 5%. Что произошло в марте? Может, изменился источник трафика. Может, сломался онбординг. Может, вышел баг. Без когортного анализа вы этого никогда не узнаете.
Усреднённые метрики маскируют проблемы и успехи. Если вы смотрите только на общий retention, то смешиваете пользователей, которые пришли год назад (и уже прошли естественный отсев), с теми, кто зарегистрировался вчера. Это как измерять среднюю температуру по больнице.
Какие вопросы решает когортный анализ
Product-Market Fit: Если retention curve выходит на плато — пользователи находят ценность в продукте. Если кривая стремится к нулю — продукт не решает их задачи.
Эффективность изменений: Выпустили новый онбординг в феврале? Сравните февральскую когорту с январской — улучшилась ли ранняя retention?
Качество трафика: Когорта из Facebook держится лучше или хуже когорты из Google? Стоит ли перераспределить бюджет?
Сезонность: Падение retention в августе — это проблема продукта или просто лето и отпуска?
Прогнозирование: На основе retention ранних когорт можно предсказать LTV и планировать маркетинговый бюджет.
Формулы расчёта retention
Существует несколько подходов к расчёту retention, и выбор зависит от специфики вашего продукта и частоты использования.
Day N Retention (классический)
Самый распространённый метод. Показывает, какой процент пользователей из когорты был активен ровно в N-й день после регистрации.
Day N Retention = (Активные пользователи в день N / Всего пользователей в когорте) × 100%
Пример: 1000 пользователей зарегистрировались 1 января. 280 из них зашли 2 января (Day 1). Day 1 Retention = 280/1000 × 100% = 28%.
Преимущества: простота расчёта, стандарт индустрии, легко сравнивать с бенчмарками. Недостатки: не учитывает пользователей, которые были активны на Day 0 и Day 2, но пропустили Day 1.
Rolling Retention (кумулятивный)
Показывает, какой процент пользователей был активен хотя бы раз в N-й день или позже. Более «мягкая» метрика, которая учитывает нерегулярное использование.
Rolling Retention Day N = (Пользователи, активные в день N или позже / Всего пользователей в когорте) × 100%
Rolling Retention всегда выше Day N Retention. Если Day 7 Retention = 15%, то Rolling Day 7 Retention может быть 25-30%. Эта метрика лучше подходит для продуктов с нерегулярным использованием (например, приложения для путешествий).
Range Retention (диапазонный)
Показывает процент пользователей, которые были активны хотя бы раз в заданном диапазоне дней. Полезно для недельных или месячных периодов.
Week 1 Retention = (Пользователи, активные хотя бы раз в дни 1-7 / Всего пользователей в когорте) × 100%
Customer Retention Rate (для подписок и B2B)
Классическая формула для бизнесов с подпиской или повторными покупками. Измеряет удержание за период, исключая новых клиентов.
CRR = ((Клиентов на конец периода − Новых клиентов за период) / Клиентов на начало периода) × 100%
Пример: начало месяца — 1000 клиентов, конец месяца — 1050 клиентов, из них 150 новых. CRR = (1050 − 150) / 1000 × 100% = 90%.
Какой метод выбрать
| Тип продукта | Рекомендуемый метод | Почему |
|---|---|---|
| Мобильные игры | Day 1, Day 7, Day 30 | Высокая частота использования, важна ранняя retention |
| SaaS B2B | Month 1, Month 3, CRR | Низкая частота входа, важна долгосрочная retention |
| E-commerce | Week 4, Month 3 (повторные покупки) | Неравномерная частота покупок |
| Социальные сети | Day 1, Day 7, WAU/MAU | Ежедневное использование — ключевой паттерн |
| Приложения для путешествий | Rolling Retention, сезонные когорты | Очень нерегулярное использование |
Как построить когортную таблицу
Когортная таблица — это матрица, где строки представляют когорты (обычно по месяцу регистрации), а столбцы — периоды после регистрации. В ячейках — процент retention или абсолютное количество пользователей.
Структура когортной таблицы
| Когорта | Размер | Month 0 | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|---|
| Январь 2025 | 1000 | 100% | 45% | 32% | 28% |
| Февраль 2025 | 1200 | 100% | 48% | 35% | — |
| Март 2025 | 1500 | 100% | 42% | — | — |
| Апрель 2025 | 1300 | 100% | — | — | — |
Обратите внимание на «лестничную» структуру: чем новее когорта, тем меньше данных. Это нормально — просто ещё не прошло достаточно времени для измерения поздних периодов.
Минимальный набор данных
Для построения когортной таблицы вам нужны всего три колонки:
user_id — уникальный идентификатор пользователя
registration_date — дата первого действия (регистрации, установки, первой покупки)
event_date — дата каждого последующего действия (входа, покупки, использования фичи)
Совет: Определите, что считается «активностью» до начала анализа. Для игры это может быть вход, для e-commerce — покупка, для SaaS — использование ключевой фичи. Не меняйте определение между когортами — иначе сравнение будет некорректным.
SQL-запросы для когортного анализа
Приведу несколько готовых SQL-запросов, которые можно адаптировать под вашу базу данных.
Шаг 1: Определение когорты каждого пользователя
WITH user_cohorts AS (SELECTuser_id,DATE_TRUNC('month', MIN(event_date)) AS cohort_monthFROM eventsGROUP BY user_id)
Этот запрос находит первый месяц активности каждого пользователя — это и будет его когорта.
Шаг 2: Расчёт периода после регистрации
WITH user_cohorts AS (...),user_activities AS (SELECTe.user_id,uc.cohort_month,DATE_TRUNC('month', e.event_date) AS activity_month,DATE_DIFF('month', uc.cohort_month, DATE_TRUNC('month', e.event_date)) AS month_numberFROM events eJOIN user_cohorts uc ON e.user_id = uc.user_id)
Шаг 3: Подсчёт размера когорт
cohort_sizes AS (SELECTcohort_month,COUNT(DISTINCT user_id) AS cohort_sizeFROM user_cohortsGROUP BY cohort_month)
Шаг 4: Финальная таблица retention
SELECTua.cohort_month,cs.cohort_size,ua.month_number,COUNT(DISTINCT ua.user_id) AS retained_users,ROUND(COUNT(DISTINCT ua.user_id) * 100.0 / cs.cohort_size, 2) AS retention_rateFROM user_activities uaJOIN cohort_sizes cs ON ua.cohort_month = cs.cohort_monthGROUP BY ua.cohort_month, cs.cohort_size, ua.month_numberORDER BY ua.cohort_month, ua.month_number
Полный запрос (PostgreSQL)
WITH user_cohorts AS (SELECT user_id, DATE_TRUNC('month', MIN(event_date)) AS cohort_monthFROM eventsGROUP BY user_id),cohort_sizes AS (SELECT cohort_month, COUNT(DISTINCT user_id) AS cohort_sizeFROM user_cohortsGROUP BY cohort_month),user_activities AS (SELECTe.user_id,uc.cohort_month,EXTRACT(YEAR FROM AGE(DATE_TRUNC('month', e.event_date), uc.cohort_month)) * 12 +EXTRACT(MONTH FROM AGE(DATE_TRUNC('month', e.event_date), uc.cohort_month)) AS month_numberFROM events eJOIN user_cohorts uc ON e.user_id = uc.user_id)SELECTTO_CHAR(ua.cohort_month, 'YYYY-MM') AS cohort,cs.cohort_size,ua.month_number,COUNT(DISTINCT ua.user_id) AS retained,ROUND(COUNT(DISTINCT ua.user_id) * 100.0 / cs.cohort_size, 1) AS retention_pctFROM user_activities uaJOIN cohort_sizes cs ON ua.cohort_month = cs.cohort_monthGROUP BY ua.cohort_month, cs.cohort_size, ua.month_numberORDER BY cohort, month_number
Важно: Синтаксис функций работы с датами отличается в разных СУБД. В BigQuery используйте DATE_DIFF(), в MySQL — TIMESTAMPDIFF(), в PostgreSQL — AGE() или EXTRACT().
Python-код для когортного анализа
Python с библиотеками pandas и seaborn — мощный инструмент для когортного анализа с красивой визуализацией.
Импорт библиотек и подготовка данных
import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt# Загрузка данныхdf = pd.read_csv('events.csv', parse_dates=['event_date'])# Определение когорты — месяц первого события для каждого пользователяdf['cohort_month'] = df.groupby('user_id')['event_date'].transform('min').dt.to_period('M')# Месяц текущего событияdf['event_month'] = df['event_date'].dt.to_period('M')# Номер месяца относительно когортыdf['month_number'] = (df['event_month'] - df['cohort_month']).apply(lambda x: x.n)
Построение когортной таблицы
# Группировка: когорта × месяц → количество уникальных пользователейcohort_data = df.groupby(['cohort_month', 'month_number'])['user_id'].nunique().reset_index()cohort_data.columns = ['cohort_month', 'month_number', 'users']# Размер каждой когорты (Month 0)cohort_sizes = cohort_data[cohort_data['month_number'] == 0][['cohort_month', 'users']]cohort_sizes.columns = ['cohort_month', 'cohort_size']# Объединение и расчёт retentioncohort_data = cohort_data.merge(cohort_sizes, on='cohort_month')cohort_data['retention'] = cohort_data['users'] / cohort_data['cohort_size']# Pivot-таблица для визуализацииcohort_pivot = cohort_data.pivot(index='cohort_month', columns='month_number', values='retention')
Визуализация: heatmap
plt.figure(figsize=(12, 8))sns.heatmap(cohort_pivot,annot=True,fmt='.0%',cmap='BuGn',vmin=0,vmax=0.5,linewidths=0.5,mask=cohort_pivot.isnull())plt.title('Когортный анализ: Monthly Retention', fontsize=14, fontweight='bold')plt.xlabel('Месяц после регистрации')plt.ylabel('Когорта (месяц регистрации)')plt.tight_layout()plt.savefig('cohort_retention_heatmap.png', dpi=150)plt.show()
Параметры heatmap:
annot=True— показывать значения в ячейкахfmt='.0%'— формат процентов без десятичныхcmap='BuGn'— цветовая схема (сине-зелёная, где зелёный = высокий retention)vmin, vmax— границы цветовой шкалы (важно для сравнимости разных графиков)mask— скрыть пустые ячейки (будущие периоды для новых когорт)
Retention curve (линейный график)
plt.figure(figsize=(10, 6))for cohort in cohort_pivot.index[-6:]:plt.plot(cohort_pivot.columns,cohort_pivot.loc[cohort] * 100,marker='o',label=str(cohort))plt.xlabel('Месяц после регистрации')plt.ylabel('Retention, %')plt.title('Retention Curves по когортам')plt.legend(title='Когорта')plt.grid(True, alpha=0.3)plt.tight_layout()plt.show()
Совет: Показывайте на одном графике не более 6-8 когорт — иначе он становится нечитаемым. Выбирайте самые свежие когорты или сравнивайте «до» и «после» конкретного изменения.
Когортный анализ в Excel и Google Sheets
Если у вас нет доступа к SQL или Python, когортный анализ можно построить в электронных таблицах.
Подготовка данных
Исходные данные должны содержать колонки: User ID, Event Date, Event Type. Добавьте вспомогательные колонки:
Когорта (месяц первого действия):=TEXT(MINIFS(B:B, A:A, A2), "YYYY-MM")Месяц события:=TEXT(B2, "YYYY-MM")Номер месяца (разница между когортой и текущим месяцем):=DATEDIF(DATE(LEFT(D2,4), MID(D2,6,2), 1), DATE(LEFT(E2,4), MID(E2,6,2), 1), "M")
Построение pivot table
Выделите все данные
Insert → Pivot Table
Rows: Когорта
Columns: Номер месяца
Values: Count Unique of User ID
Расчёт retention в процентах
После создания pivot table создайте рядом таблицу с формулой:
=B2 / $B2(где B2 — значение для Month N, $B2 — размер когорты в Month 0)
Скопируйте формулу на все ячейки и примените форматирование в процентах.
Условное форматирование для heatmap
Выделите таблицу с процентами → Format → Conditional Formatting → Color Scale. Выберите градиент от красного (низкий retention) к зелёному (высокий retention).
Бенчмарки retention по отраслям
Чтобы понять, насколько хорош ваш retention, нужны ориентиры. Ниже — актуальные данные за 2024 год.
Мобильные приложения: Day N Retention
| Категория | Day 1 | Day 7 | Day 30 |
|---|---|---|---|
| Банковские приложения | 30% | 18% | 12% |
| Гиперказуальные игры | 32% | 12% | 7% |
| Хардкорные игры | 29% | 15% | 8% |
| Социальные сети | 29% | 9% | 3% |
| Шоппинг | 25% | 11% | 6% |
| Развлечения | 22% | 8% | 4% |
| Утилиты | 18% | 7% | 3% |
| Путешествия | 17% | 8% | 4% |
Средние значения по всем категориям: Day 1 — 26-28%, Day 7 — 13-18%, Day 30 — 7-8%.
SaaS: Monthly Retention
| Сегмент | Month 1 | Целевой NRR | Целевой GRR |
|---|---|---|---|
| B2B SaaS (средний) | 47% | 100-110% | 90%+ |
| Fintech / Insurance | 58% | 110%+ | 92%+ |
| Healthcare SaaS | 35% | 100% | 88% |
| PLG (Product-Led Growth) | 48% | 105% | 91% |
| SLG (Sales-Led Growth) | 39% | 110% | 90% |
Для SaaS с ACV выше $250K типичен NRR 110% (expansion revenue компенсирует churn). Для low-touch B2C SaaS с ARPA ниже $10/мес — NRR редко превышает 100%.
E-commerce
Для интернет-магазинов retention измеряется иначе — как процент покупателей, совершивших повторную покупку.
Хороший показатель: 20-30% покупателей возвращаются в течение 90 дней
Отличный показатель: 40%+ повторных покупок за год
Целевой CRR: 60-70% (ниже, чем в SaaS из-за высокой конкуренции)
Важно: Бенчмарки — это ориентиры, а не цели. Сравнивайте себя в первую очередь с самим собой: растёт ли ваш retention от когорты к когорте? Это важнее, чем сравнение с абстрактным «рынком».
Как читать retention curve
Retention curve — это график, где по оси X время (дни или месяцы после регистрации), а по оси Y — процент оставшихся пользователей. Форма этой кривой говорит о здоровье продукта.
Три типа кривых
1. Падающая к нулю (плохо)
Кривая непрерывно снижается и стремится к нулю. Это значит, что пользователи не находят долгосрочной ценности в продукте. Проблема может быть в product-market fit, онбординге или ценностном предложении.
2. Выходящая на плато (хорошо)
После начального спада кривая выравнивается и идёт параллельно оси X. Это значит, что часть пользователей нашла ценность и продолжает использовать продукт. Чем выше точка плато — тем лучше. Плато на 20% — отлично, на 5% — продукт на грани выживания.
3. Смайлящая (отлично)
После начального спада кривая начинает расти — ушедшие пользователи возвращаются. Это редкое явление, характерное для продуктов с сильными сетевыми эффектами. Пример: пользователь ушёл из Instagram, но вернулся, потому что все друзья там.
Что смотреть на графике
Крутизна начального спада: Если 70% уходит в первый день — проблема с первым опытом или качеством трафика
Точка перегиба: Когда кривая начинает выравниваться — это момент, когда пользователь «залипает»
Уровень плато: Какой процент остаётся в долгосрочной перспективе
Сравнение когорт: Новые когорты держатся лучше или хуже старых?
Практический пример интерпретации
Допустим, вы видите, что кривая резко падает между Day 3 и Day 4. Что это значит?
Проверьте, что происходит на Day 3: может, заканчивается trial?
Посмотрите на воронку онбординга: доходят ли пользователи до ключевой фичи к Day 3?
Сравните с push-уведомлениями: отправляете ли вы reminder на Day 2-3?
Реальный кейс: Компания заметила, что пользователи массово уходят на 3-й и 11-й день. Оказалось: на 3-й день заканчивалась бесплатная доставка для новичков, а на 11-й приходил счёт за подписку. После корректировки (продление бесплатной доставки и reminder перед списанием) 30-дневный retention вырос с 31% до 47%.
Типичные ошибки в когортном анализе
Когортный анализ кажется простым, но есть много способов сделать его неправильно.
Ошибка 1: Survivorship Bias
Анализ только «выживших» когорт. Если вы смотрите только на активных пользователей, вы упускаете информацию о тех, кто ушёл. Решение: всегда включайте в анализ полные когорты, включая churned users.
Ошибка 2: Слишком мелкая или крупная сегментация
Когорты по дням при 100 регистрациях в месяц — это шум, не сигнал. Когорты по годам — слишком грубо, пропустите сезонность и эффект изменений. Правило: в когорте должно быть минимум 100-500 пользователей для статистической значимости.
Ошибка 3: Игнорирование внешних факторов
Retention упал в декабре? Может, это не баг, а праздники. Retention вырос после пресс-релиза? Скорее всего, это временный эффект. Всегда записывайте внешние события (релизы, праздники, маркетинговые кампании) и учитывайте их при интерпретации.
Ошибка 4: Сравнение несравнимого
Когорта из органики vs когорта из рекламы — это разные аудитории. Сравнивать их retention некорректно без учёта источника. Решение: сегментируйте когорты по источнику трафика или другим значимым параметрам.
Ошибка 5: Изменение определения активности
Раньше считали «вход в приложение», теперь считаете «использование ключевой фичи». Retention резко упал? Нет, просто вы изменили метрику. Решение: если меняете определение — пересчитайте старые когорты по новой методологии.
Ошибка 6: Преждевременные выводы
«Мартовская когорта держится на 10% лучше февральской!» — А вы уверены, что это статистически значимо, а не случайная флуктуация? Решение: используйте доверительные интервалы или A/B-тесты для проверки гипотез.
Ошибка 7: Забыть обновить логику когорт
Продукт изменился: новый онбординг, другая монетизация, новые фичи. А вы всё ещё группируете по старым правилам. Решение: регулярно пересматривайте, какие когорты и метрики релевантны текущему состоянию продукта.
Критическая ошибка: Путать корреляцию и причинность. «Когорта после редизайна держится лучше» не значит, что редизайн помог. Может, изменился источник трафика. Может, сезонность. Используйте A/B-тесты для проверки причинно-следственных связей.
Как представить результаты команде
Посчитать retention — половина дела. Вторая половина — донести инсайты до людей, которые будут принимать решения.
Адаптируйте под аудиторию
CEO / инвесторы: Им важна общая картина и тренды. Покажите: как retention влияет на LTV и unit economics, сравнение с конкурентами или бенчмарками, какие инициативы улучшили/ухудшили метрику.
Product-менеджеры: Им нужны actionable insights. Покажите: на каком этапе теряются пользователи, какие фичи коррелируют с retention, что нужно изменить в онбординге.
Маркетинг: Им важно качество трафика. Покажите: retention по каналам привлечения, какие кампании приводят «залипающих» пользователей, как CAC соотносится с retention.
Структура презентации
Контекст: Почему мы смотрим на retention? Какой вопрос отвечаем?
Ключевая метрика: Какой retention сейчас? Растёт или падает?
Глубокий dive: Когортный анализ — что видим? Какие когорты выделяются?
Гипотезы: Почему так? Что могло повлиять?
Рекомендации: Что делать дальше? Какие эксперименты запустить?
Визуализация для нетехнической аудитории
Heatmap: Интуитивно понятен — зелёное хорошо, красное плохо
Retention curve: Покажите 2-3 когорты, не больше. Подпишите ключевые точки
Аннотации: Добавьте стрелки и подписи к значимым изменениям
Сравнение «до/после»: Если был эксперимент — покажите контраст
Что говорить, а что не говорить
Говорите:
«30-дневный retention снизился с 12% до 8% за последние три когорты»
«Пользователи, которые прошли онбординг до конца, держатся в 2 раза лучше»
«Мы теряем 40% в первые 24 часа — нужно улучшить first-time experience»
Не говорите:
«Retention упал на 4 процентных пункта» (если аудитория не понимает разницу между процентами и п.п.)
«CRR = (CE - CN) / CS» (формулы оставьте для документации)
«Нам нужно больше данных» (всегда нужно больше данных, но решения принимаются сейчас)
Совет: Всегда заканчивайте рекомендацией. «Retention падает» — это констатация факта. «Retention падает, поэтому предлагаю провести эксперимент с новым онбордингом на следующей когорте» — это actionable insight.
Инструменты для когортного анализа
Краткий обзор инструментов — от бесплатных до enterprise.
Бесплатные и встроенные
Google Analytics 4: Базовый когортный отчёт из коробки, ограниченные возможности кастомизации
Яндекс.Метрика: Отчёт «Возвращаемость», когортный анализ для платных счётчиков
Excel / Google Sheets: Ручной расчёт, полный контроль, много работы
Специализированные продуктовые аналитики
Amplitude: Мощные инструменты retention analysis, кастомные когорты, интеграции
Mixpanel: Retention reports, funnels, сегментация
CleverTap: Фокус на мобильных приложениях и engagement
BI-инструменты
Metabase: Open-source, простые SQL-запросы, базовая визуализация
Looker: Мощное моделирование данных, кастомные LookML-модели
Tableau / Power BI: Богатая визуализация, сложнее в настройке для когорт
Для мобильных приложений
AppsFlyer: Retention по когортам, атрибуция, fraud protection
Adjust: Cohort KPIs, интеграция с рекламными платформами
UXCam: Retention + session recordings для понимания причин churn
Чек-лист: запуск когортного анализа
Используйте этот чек-лист при первом внедрении когортного анализа в компании.
Подготовка данных:
Определено, что считается «активностью» (вход / покупка / использование фичи)
Есть данные с user_id и датой каждого события
Можно определить дату первого действия каждого пользователя
Данные за достаточный период (минимум 3-6 месяцев для monthly retention)
Выбор метрик:
Выбран тип retention (Day N / Rolling / Range / CRR)
Определены ключевые точки измерения (Day 1, Day 7, Day 30 и т.д.)
Согласовано определение когорты (по месяцу / неделе / источнику)
Расчёт и визуализация:
Написаны SQL-запросы или Python-скрипты
Создана когортная таблица (матрица)
Построен heatmap или retention curves
Добавлены аннотации для внешних событий (релизы, кампании)
Интерпретация:
Сравнение с бенчмарками отрасли
Сравнение когорт между собой
Выявлены точки массового оттока
Сформулированы гипотезы о причинах
Действия:
Определены эксперименты для проверки гипотез
Настроен регулярный мониторинг (дашборд, алерты)
Результаты донесены до стейкхолдеров
Заключение
Когортный анализ — это не просто способ посчитать retention. Это метод мышления о продукте через призму поведения групп пользователей во времени.
Ключевые выводы:
Общий retention скрывает проблемы и успехи — смотрите на когорты
Выбор метрики (Day N / Rolling / CRR) зависит от типа продукта и частоты использования
Форма retention curve важнее абсолютных цифр: плато = product-market fit, падение к нулю = проблема
SQL, Python, Excel — выбирайте инструмент по навыкам, главное — считать правильно
Бенчмарки — ориентиры, но сравнивайте себя в первую очередь с прошлыми когортами
Презентация результатов — отдельный навык: адаптируйте под аудиторию, заканчивайте рекомендацией
Retention — это метрика, которая показывает, создаёт ли продукт реальную ценность для пользователей. Если retention растёт от когорты к когорте — вы движетесь в правильном направлении. Если падает — самое время копать глубже и искать причины.
Начните с простого: посчитайте Day 1, Day 7, Day 30 retention для последних трёх месячных когорт. Постройте heatmap. Покажите команде. Спросите: «Почему мартовская когорта держится хуже февральской?» — и вы уже на пути к data-driven решениям.
А лучшие вакансии для аналитиков ищите на hirehi.ru