Аналитический отчёт по клиентской базе и истории продаж цифрового музыкального магазина Chinook перед запуском масштабной рекламной кампании.
Заказчик: маркетинговый отдел Chinook Music Store.
Контекст: компания готовится к масштабной рекламной кампании. Маркетинговый отдел запросил анализ существующей клиентской базы и истории продаж, чтобы ответить на ключевые бизнес-вопросы:
- Как распределяются чеки покупателей? Какова типичная сумма покупки?
- В каких странах сосредоточена основная выручка?
- Какие страны показывают высокий разовый чек?
- Кто из клиентов приносит наибольшую ценность и почему?
- Куда направлять рекламный бюджет и какие товары продвигать?
Цель отчёта — подготовить данные для принятия решений о распределении рекламного бюджета и о товарной стратегии кампании.
- Python 3.14
- Pandas, Matplotlib, SQLAlchemy, psycopg2
- PostgreSQL (база Chinook)
├── src/ # Код проекта
│ ├── main.py # SQL-запросы, агрегации pandas и запуск построения графиков
│ ├── charts_generation.py # Функции построения диаграмм (hist 2x2, bar 2x1)
│ └── config.py # Строка подключения к БД и путь к папке images
├── images/ # Сгенерированные графики (PNG)
├── Chinook.sql # База данных Chinook (дамп PostgreSQL, прилагается)
├── requirements.txt # Зависимости проекта
└── README.md # Описание проекта
-
Восстановите прилагаемую базу Chinook — скрипт сам создаст базу
chinook, подключится к ней и наполнит её данными:psql -U postgres -f Chinook.sql
Внимание: при повторном запуске база
chinookпересоздаётся с нуля. -
Укажите подключение в
src/config.py:DB_URI = "postgresql+psycopg2://postgres:password@localhost:5432/chinook"
Рекомендуется хранить учётные данные через переменные окружения, а не в коде.
-
Установите зависимости:
pip install -r requirements.txt
-
Запустите анализ:
python src/main.py
-
Готовые графики появятся в папке с проектом (PNG-файлы).
| Метрика | Значение | Комментарий |
|---|---|---|
| min | $0.99 | минимальная покупка у 93%+ клиентов |
| median | $4.00 | медианный чек |
| mean | $5.4–$5.6 | выше медианы за счёт правого хвоста распределения |
| max | $26.00 | максимальный разовый чек |
Интерпретация: основная масса чеков сконцентрирована в нижнем диапазоне (до $4), а крупные чеки — редкие выбросы, которые смещают средний чек вверх.
- Топ по общей выручке: США (
$520), Канада ($305), Франция ($195), Бразилия ($190). - Топ по максимальному разовому чеку: Чехия ($26), США ($24), Венгрия ($22), Ирландия ($22).
- В большинстве стран максимум не превышает $14.
Интерпретация: объём выручки в США и Канаде формируется за счёт количества клиентов, а не за счёт высокого чека. Высокий разовый чек в Чехии или Венгрии — это единичные покупки (аномалии) 1–2 пользователей, а не показатель ёмкости рынка.
- Топ по разовому чеку и топ по общей выручке практически полностью совпадают: Helena, Richard, Ladislav, Hugh, Luis.
- Лидер оба раза — Helena: максимальный чек $26, общая выручка ~$49.5.
Интерпретация: клиенты, совершающие самые крупные разовые покупки, одновременно являются лидерами по общей выручке.
- Фокус на объёмных рынках. Направить рекламный бюджет в страны с подтверждённой ёмкостью (США, Канада, Франция). Игнорировать страны с единичными аномально высокими чеками (Чехия, Венгрия) при массовом запуске рекламы.
- Увеличение чека. Базовый сценарий клиента — покупка на $4. Однако основную выручку делают те, кто покупает на $15–$26. Рекламная кампания должна продвигать не товары с низкой стоимостью, а с высокой.
- Изучение покупок топ-клиентов. Рассмотреть, какие именно товары приобретали самые прибыльные клиенты (Helena, Richard), и использовать эти данные при построении рекламных аудиторий.
Отчёт показывает только общие закономерности: распределение чеков, география продаж и топ-клиенты. Для более точных выводов по бизнес-решениям нужен более глубокий анализ, который на этом этапе не проводился. Что можно сделать в следующей итерации:
- анализ корзин — какие товары покупаются вместе;
- сегментация клиентов по частоте и давности покупок;
- анализ динамики продаж во времени.
MIT


