Рассчитать GMV, take rate и net revenue маркетплейса по категориям

easy Метрики Маркетплейс

Условие задания

**Контекст.** Вы аналитик маркетплейса. Продуктовая команда готовит квартальный обзор и просит по каждой категории товаров посчитать ключевые метрики маркетплейса: GMV (валовый оборот), комиссию площадки, take rate (эффективную ставку комиссии) и долю категории в общем GMV. Take rate — центральная метрика unit-экономики маркетплейса: она показывает, сколько площадка зарабатывает с каждого рубля оборота.

**Дано.** Таблица `marketplace_orders` — по строке на успешно оплаченный заказ:

| колонка | тип | описание |
|---|---|---|
| `order_id` | int | идентификатор заказа |
| `category` | text | категория товара |
| `gmv` | numeric | сумма заказа (оборот), ₽ |
| `commission` | numeric | комиссия, удержанная площадкой с заказа, ₽ |
| `status` | text | статус заказа (`paid`, `refunded`, `canceled`) |

Пример данных:

[см. код в задании]

**Задание.** По категориям (только заказы со статусом `paid`) посчитайте:

1. `orders` — число оплаченных заказов.
2. `gmv` — суммарный оборот.
3. `commission` — суммарная комиссия площадки (net revenue категории).
4. `take_rate_pct` — эффективная ставка комиссии = commission / gmv, в процентах, округлить до 2 знаков.
5. `gmv_share_pct` — доля категории в общем GMV всех категорий, в процентах, округлить до 2 знаков.

Отсортируйте по `gmv` убыванию.

**Формат ответа:** таблица с колонками `category`, `orders`, `gmv`, `commission`, `take_rate_pct`, `gmv_share_pct`.

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

CREATE TABLE marketplace_orders (
  order_id   INT,
  category   TEXT,
  gmv        NUMERIC,
  commission NUMERIC,
  status     TEXT
);
INSERT INTO marketplace_orders (order_id, category, gmv, commission, status) VALUES
  (1, 'Электроника', 30000, 3000, 'paid'),
  (2, 'Электроника', 20000, 2200, 'paid'),
  (3, 'Электроника', 15000, 1500, 'refunded'),  -- вернули: не считаем
  (4, 'Одежда',       5000,  750, 'paid'),
  (5, 'Одежда',       3000,  480, 'paid'),
  (6, 'Одежда',       4000,  600, 'canceled'),  -- отмена: не считаем
  (7, 'Книги',        1200,  180, 'paid'),
  (8, 'Книги',         800,  120, 'paid');

Темы

GMV take rate unit-экономика SQL агрегация

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Рассчитать GMV, take rate и net revenue маркетплейса по категориям"?

Это задание для уровня easy. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «Метрики» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: GMV, take rate, unit-экономика, SQL, агрегация.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «Метрики»?

На zasqlpython.ru есть другие задания в категории «Метрики», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.

← Все задания