01 / тестовое задание

kivork:
тестовое задание для продуктового аналитика

Реальное тестовое с собеседования на Middle Product Analyst: исходный текст задания, как решать и частые ошибки.

02 / оригинальный текст

Текст тестового задания

Исходный текст задания без редактуры — так, как его прислали кандидату.

Данные к заданиюДоступ к данным этого задания был закрыт владельцем — файлы больше недоступны. Текст задания приводим полностью, данные восстановить нельзя.

Приложение - мобильная утилита для сканирования документов. Модель монетизации подписочная, есть пробный период 7 дней с дальнейшим переходом в оплату 4.99 USD в неделю.

По ссылке ниже выгрузка с базы данных по оформлениям подписок и оплат. Каждая строка представляет собой отдельное событие (либо оформление пробной подписки, либо оплата после завершения пробного периода).

Задание построено таким образом, чтобы проверить понимание принципов unit-экономики предприятия. Задание 1 предпочтительней делать с помощью Python.

Задание #1

Необходимо рассчитать текущий LTV юзера, используя когортный анализ (cohorting event - оформление пробного периода, когорта представляет собой кол-во возможных операций).

Спрогнозировать, каким будет LTV на полгода.

Построить график, который будет отображать кривую фактического LTV на фоне кривой прогнозируемого LTV.

Рассчитать ROMI на 4 недели и на полгода, если стоимость привлечения платящего пользователя 6 USD (ROMI нужно брать операционный, а не бухгалтерский, цель: узнать как окупятся наши инвестиции).

Задание #2

Ниже 2 задачи на проверку знаний SQL. Для решения заданий следует использовать синтаксис - PostgreSQL. Ответы нужно представить в виде файла с запросами.

Схема данных = структура Базы данных

Это название таблицы

Это название столбца/колонки

1. Написать 2 SQL запроса для поиска значений среднего и медианы по сумме продажи. Сумму транзакции округляем до целой части. Нельзя использовать стандартные функции среднего и медианы в SQL. Можно использовать только агр функции SUM и COUNT.

Схема данных:

orders

id

sale_amount - в центах

user_id

datetime

2. Написать SQL-запрос для поиска задублированных в результате ошибки транзакций.

Схема данных:

purchases

transaction_id

datetime

amount

user_id

3. Написать SQL-запрос для построения воронки перехода из установки в оформление пробного периода и в покупку платной версии приложения в разрезе стран. На одного юзера возможна только одно оформление пробного периода и одна покупка платной версии. Покупка возможна только после истечения срока пробного периода. На выходе должна получится таблица с колонками «country», «installs», «trials», «purchases», «conversion_rate_to_trial», «conversion_rate_to_purchase»

Схема данных:

events

transaction_id

datetime

event_type (значение может быть либо «instal», либо «trial», либо «purchase»)

user_id

country

Задание #3

Продуктовый менеджер сформировал гипотезу, что новая версия экрана продаж будет лучше перформить по сравнению со старой, в связи с тем, что на новом экране продаж более понятно описаны преимущества платной версии приложения.

Продуктовый менеджер ожидает увеличение уровня конверсии из установки в покупку платной версии приложения. Приложение тем временем уже очень активно продвигается на рынке, каждый день привлекается в среднем по 30 000 новых пользователей, текущий уровень конверсии из установки в покупку 5%.

Как бы вы предложили проверить данную гипотезу, какие инструменты и тесты бы использовали в процессе проверки?

03 / что проверяют

Что проверяет это задание

01

Python

Обработка данных и расчёты: pandas, скрипты, автоматизация.

02

SQL

Выборки, агрегаты, джойны и оконные функции для анализа данных.

03

Продуктовый кейс

Разложить задачу, выбрать метрики и сделать выводы.

04 / как решать

Как подойти к решению

  1. 1

    Разберите условие: что именно просят посчитать и в каких разрезах.

  2. 2

    Сверьтесь с данными: какие таблицы есть, период и нужные фильтры.

  3. 3

    Решайте по шагам и фиксируйте промежуточные результаты и допущения.

  4. 4

    Доведите до финальных чисел и коротких выводов или рекомендаций.

05 / частые ошибки

Частые ошибки

  • Неверный период, разрез или единицы измерения.
  • Не учтены фильтры и сегменты из условия.
  • Решение без промежуточных шагов — только финальная цифра.
  • Нет выводов и рекомендаций по результату.
06 / хороший ответ

Каким должен быть сильный ответ

Хороший ответ — это не просто финальные числа или код. Работодатель должен увидеть, как вы думаете, как проверяете ограничения задачи и как оформляете результат.

  • короткое описание логики решения;
  • промежуточные таблицы, запросы и фильтры;
  • финальные значения по каждому пункту задания;
  • понятные выводы и рекомендации.
07 / похожие задания

Похожие задания

08 / разборы в telegram

Хочешь больше таких разборов?

В Telegram-канале разбираю тестовые с собеседований, метрики и типичные ошибки кандидатов.

Подписаться в Telegram →
09 / следующий шаг

Разбираешь тестовые, но не уверен в решении?

На интенсиве разбираем реальные кейсы, A/B-секции, метрики, SQL, Python и типовые ошибки кандидатов.