Практическое задание: Разработка дашборда для маркетплейса цифровых товаров

Цель работы

Разработать аналитический дашборд в Yandex DataLens, который поможет бизнесу отслеживать ключевые метрики и принимать решения.

Исходные данные

У вас есть база данных PostgreSQL с таблицами:

  • users - пользователи платформы

  • sellers - продавцы

  • categories - категории товаров

  • products - товары

  • orders - заказы

Задание 1: Подготовка датасета (30 минут)

Шаг 1.1: Создайте подключение к БД

  • Создайте подключение к PostgreSQL с параметрами:

    • Хост: 188.120.248.94

    • Порт: 5432

    • База данных: ggsel

    • Пользователь: student

    • Пароль: student123

Шаг 1.2: Создайте датасет через визуальный редактор

Добавьте следующие таблицы со связями:

  1. orders (главная таблица)

  2. products (связь: orders.product_id = products.product_id)

  3. sellers (связь: orders.seller_id = sellers.seller_id)

  4. users (связь: orders.user_id = users.user_id)

  5. categories (связь: products.category_id = categories.category_id)

Шаг 1.3: Выберите поля для датасета

Отметьте следующие поля:

Из orders:

  • [ ] order_id

  • [ ] order_date

  • [ ] status

  • [ ] quantity

  • [ ] final_price

  • [ ] payment_method

Из products:

  • [ ] product_name

  • [ ] price (переименуйте в base_price)

Из sellers:

  • [ ] company_name (seller_name)

  • [ ] rating (seller_rating)

Из users:

  • [ ] country (user_country)

  • [ ] registration_source

  • [ ] registration_date

Из categories:

  • [ ] category_name

Шаг 1.4: Создайте вычисляемые поля

Создайте следующие поля:

  1. Год заказа - DATETRUNC([order_date], "year")

  2. Месяц заказа - DATETRUNC([order_date], "month")

  3. Квартал заказа - DATETRUNC([order_date], "quarter")

  4. День недели (название) - используйте CASE для преобразования

  5. Выручка - [final_price] * [quantity]

  6. Возраст пользователя в днях - DATE_DIFF(CURRENT_DATE, [registration_date], 'day')

Шаг 1.5: Добавьте глобальный фильтр

Добавьте фильтр, чтобы показывать только завершенные заказы:

  • Поле: status

  • Условие: [status] = 'completed'

Задание 2: Создание чартов (1 час)

Чарт 1: KPI метрики

Создайте 4 отдельных чарта типа «Показатель»:

  1. Общая выручка

    • Поле: final_price (SUM)

    • Формат: деньги, с разделителями тысяч

    • Заголовок: «Общая выручка»

  2. Количество заказов

    • Поле: order_id (COUNT DISTINCT)

    • Формат: число

    • Заголовок: «Всего заказов»

  3. Средний чек

    • Поле: final_price (AVG)

    • Формат: деньги

    • Заголовок: «Средний чек»

  4. Количество покупателей

    • Поле: user_id (COUNT DISTINCT)

    • Формат: число

    • Заголовок: «Активных покупателей»

Чарт 2: Динамика продаж

  • Тип: Линейная диаграмма

  • X: order_date (с группировкой по дням)

  • Y: final_price (SUM)

  • Цвет: category_name (для разделения по категориям)

  • Заголовок: «Динамика продаж по дням»

  • Подписи осей: подпишите оси

Чарт 3: Топ-10 категорий

  • Тип: Столбчатая диаграмма

  • X: category_name

  • Y: final_price (SUM)

  • Сортировка: по убыванию

  • Заголовок: «Топ-10 категорий по выручке»

Чарт 4: Методы оплаты

  • Тип: Круговая диаграмма

  • Цвет: payment_method

  • Показатель: order_id (COUNT)

  • Заголовок: «Распределение заказов по методам оплаты»

  • Добавьте подписи с процентами

Чарт 5: Топ-10 продавцов

  • Тип: Таблица

  • Столбцы:

    • seller_name

    • SUM(final_price) (назвать «Выручка»)

    • COUNT(order_id) (назвать «Заказы»)

    • AVG(final_price) (назвать «Средний чек»)

    • AVG(seller_rating) (назвать «Рейтинг»)

  • Сортировка: по убыванию выручки

  • Заголовок: «Топ-10 продавцов»

Чарт 6: Тепловая карта продаж по дням недели

  • Тип: Тепловая карта (или столбчатая)

  • X: day_of_week

  • Y: final_price (SUM)

  • Сортировка: по порядку дней

  • Заголовок: «Продажи по дням недели»

Чарт 7: География продаж

  • Тип: Карта (или столбчатая, если нет карты)

  • Категория: user_country

  • Показатель: final_price (SUM)

  • Заголовок: «Продажи по странам»

Чарт 8: Распределение цен товаров

  • Тип: Гистограмма

  • X: base_price

  • Y: COUNT(product_id)

  • Заголовок: «Распределение товаров по цене»

  • Количество корзин: 10-15

Чарт 9: Анализ количества товаров в заказе

  • Тип: Круговая или столбчатая

  • Показатель: quantity

  • Метрика: COUNT(order_id)

  • Заголовок: «Распределение по количеству товаров в заказе»

Чарт 10: Динамика регистраций пользователей

  • Тип: Линейная диаграмма

  • X: registration_date

  • Y: COUNT(user_id)

  • Цвет: registration_source

  • Заголовок: «Динамика регистраций пользователей по источникам»

Задание 3: Создание дашборда (30 минут)

Шаг 3.1: Создайте новый дашборд

Название: «GGsel - Аналитика продаж [Ваше имя]»

Шаг 3.2: Добавьте заголовок

Используйте текстовый блок с описанием:

# GGsel Marketplace Dashboard
## Аналитика продаж и пользователей
**Автор:** [Ваше имя]
**Дата обновления:** {{CURRENT_DATE}}

Шаг 3.3: Добавьте селекторы (фильтры)

  1. Период (поле order_date, тип «Календарь»)

  2. Категория (поле category_name, тип «Выпадающий список»)

  3. Страна (поле user_country, тип «Выпадающий список»)

  4. Продавец (поле seller_name, тип «Выпадающий список»)

Шаг 3.4: Разместите чарты на дашборде

Создайте следующую структуру:

┌─────────────────────────────────────────────────────────────┐
│  ЗАГОЛОВОК И ОПИСАНИЕ                                        │
├─────────────────────────────────────────────────────────────┤
│  [Период: ▼] [Категория: ▼] [Страна: ▼] [Продавец: ▼]       │
├──────────────┬──────────────┬──────────────┬───────────────┤
│  Выручка     │  Заказы      │  Средний чек │  Покупатели   │
│  (Чарт 1)    │  (Чарт 1)    │  (Чарт 1)    │  (Чарт 1)     │
├──────────────┴──────────────┴──────────────┴───────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              Динамика продаж (Чарт 2)               │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────┐  ┌─────────────────────────────┐  │
│  │ Топ категорий       │  │    Методы оплаты            │  │
│  │ (Чарт 3)            │  │    (Чарт 4)                 │  │
│  └─────────────────────┘  └─────────────────────────────┘  │
│                                                             │
│  ┌─────────────────────┐  ┌─────────────────────────────┐  │
│  │ Продажи по дням     │  │    География продаж         │  │
│  │ (Чарт 6)            │  │    (Чарт 7)                 │  │
│  └─────────────────────┘  └─────────────────────────────┘  │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              Топ-10 продавцов (Чарт 5)              │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────┐  ┌─────────────────────────────┐  │
│  │ Распределение цен   │  │ Регистрации пользователей   │  │
│  │ (Чарт 8)            │  │ (Чарт 10)                   │  │
│  └─────────────────────┘  └─────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Шаг 3.5: Настройте взаимодействия

  • Свяжите все селекторы со всеми чартами

  • Настройте возможность клика по категории для фильтрации таблицы

Задание 4: Аналитические выводы (30 минут)

Напишите краткий аналитический отчет по вашему дашборду:

  1. Основные выводы:

    • Какая общая выручка и количество заказов?

    • Какие категории товаров самые популярные?

    • Какие методы оплаты преобладают?

  2. Тренды:

    • Есть ли сезонность в продажах?

    • Какие дни недели самые прибыльные?

  3. Топ-продавцы:

    • Кто лидеры по продажам?

    • Есть ли связь между рейтингом и продажами?

  4. География:

    • Из каких стран больше всего покупателей?

    • Есть ли страны с высоким средним чеком?

  5. Рекомендации:

    • Что можно улучшить?

    • На какие категории сделать акцент?

    • Какие продавцы требуют внимания?

Критерии оценки

Критерий

Макс. балл

Корректно создан датасет со всеми связями

10

Созданы все 10 чартов

20

Чарты информативны и правильно настроены

20

Дашборд имеет логичную структуру

15

Селекторы работают и фильтруют данные

10

Добавлен заголовок и описание

5

Написан аналитический отчет

10

Креативность и дополнительные улучшения

10

ИТОГО

100

Дополнительные задания (для продвинутых)

Если вы справились с основным заданием, добавьте:

  1. RFM-анализ - создайте чарт с сегментацией пользователей

  2. Когортный анализ - постройте retention по месяцам

  3. Прогноз продаж - используйте линейную регрессию

  4. Алерты - настройте уведомления о падении продаж

  5. Мобильная версия - оптимизируйте дашборд для телефона

Формат сдачи

Пришлите:

  1. Скриншоты всех чартов

  2. Скриншот полного дашборда

  3. Текстовый файл с аналитическими выводами

  4. Ссылку на дашборд (если доступен публично)

Удачи в выполнении задания! 🚀