Все кейсы

IBP-платформа

#Python
#Django
#TypeScript
#React
#PostgreSQL
#ClickHouse
Разработали масштабируемую и расширяемую платформу для цифровой трансформации процессов планирования и прогнозирования в корпорациях. На базе платформы реализовали процесс планирования спроса (demand planning)
Контекст
К нам обратился клиент, имеющий большой опыт в консалтинге по прогнозирования спроса и продаж в ритейле с запросом на разработку масштабируемой платформы, которая на этапе MVP сможет автоматизировать процессы планирования спроса (demand planning), а в дальнейшем и другие процессы планирования и в перспективе составить конкуренцию мировым planning-платформам.

Задача

Разработать масштабируемую и расширяемую платформу для цифровой трансформации процессов планирования и прогнозирования. На базе платформы реализовать процесс планирования спроса (demand planning).

Технологии и архитектура

Backend: Python, фреймворк Django (+Django Rest Framework)
Redis, SQLAlchemy, аналитические библиотеки Pandas и Polars, а также дополнительные сервисы, необходимые для работы с этими библиотеками — EXSX Reader, Fastparquet
Для Rabbit MQ используется библиотека aio-pika (помогает асинхронно доставать из очереди приходящие сообщения)
Frontend: React, TypeScript, TanStack, CanvasJS для графиков, i18n
Архитектурно: веб-сервер работает на Django, одна база данных на PostgreSQL, вторая на ClickHouse, третья — Rabbit MQ, четвертая — Celery и Flower (для мониторинга Celery)

Функционал

Все прогнозы загружаются по каждому отдельному проекту. Управлять проектами и заводить новые можно из административной панели. 
Функционал

Проекты, сценарии и версии

Проекты, сценарии и версии — основные сущности, которые позволяют структурировать работу вокруг разных кейсов планирования и учитывать бизнес-сценарии разных сотрудников и отделов. Разные входные данные, разные департаменты, сценарность с учетом внесенных ручных корректировок.

Управление проектами осуществляется через административную панель и позволяет гибко настраивать права доступа (как между проектами, так и в рамках самих проектов). 

Для demand-планирования версионирование результатов позволяет хранить историю расчетов и вычислять важный показатели текущей версии прогноза (например, forecast bias).
Работа с данными

Источники данных

Данные для анализа и построения прогноза загружаются из единого шаблона на панели «Источники данных». При необходимости шаблон можно скачать. Управление столбцами шаблона осуществляется гибко из административной панели.

Для проектов можно создавать неограниченное количество источников данных для анализа. При загрузке источников происходит проверка на корректность данных: соответствие источника заданному шаблону, заполненность полей и корректность самих данных. 
Работа с данными

Мастер-дата

Функционал работы с «Мастер-данными» позволяет управлять иерархиями клиентов, складов, продуктов. Данные в системе представлены в древовидном формате.

По-умолчанию в системе есть базовая «Продуктовая» иерархия. При этом система позволяет создавать любые дополнительные иерархии (клиентскую, географическую и т.д.) и до 5 уровней в каждой из них.
Функционал

Работа со статусами товаров

Система позволяет работать и учитывать при построении прогноза разные статусы товаров из продуктовой иерархии:
Delisting — для работы с позициями, помеченными на удаление;
Innovation — для заведения новых позиций; 
Promo in-out — для позиций с ограниченным сроком продажи;
Transition — для обновленных позиций (например, с обновленной упаковкой)
Для управления статусами продуктов в системе есть общий дашборд по всем статусам всех продуктов и отдельные дашборды для управления данными. Данные можно удобно фильтровать: загрузить все позиции, либо оставить только архивные, неактивные или товары, которые на данный момент на проверке у планера.
Функционал

Работа с инновациями

Для прогнозирования новых продуктов и продуктов с ограниченным сроком продаж есть отдельный раздел. В нем происходит расчет объемов продаж и сокращения объема продаж (каннибализации) из-за выхода аналогичных товаров. При работе с товарами типа Innovation можно привязать продукт к определенному уровню иерархии для корректного учета каннибализации. 
Дашбор прогноза

Кастомизация виджетов страницы

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

Фильтрация и ограничение выборки

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

Визуализация прогноза в виде графиков

Графики позволяют визуализировать данные о фактических продажах, сравнивать их с данными прошлых периодов (Y-1, Y-2) и с построенным системой прогнозом. Данные в графике с показателями можно фильтровать по гранулярности (в неделях, в месяцах, в кварталах, в годах). График позволяет управлять масштабом отображения, зумировать данные и отслеживать тренды  за конкретный произвольный период.
Дашбор прогноза

Ручные корректировки

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

Значения корректировок могут быть как отрицательными, так и положительными. При внесении последовательных корректировок сохраняется история по предыдущим (данные суммируются). 
Дашбор прогноза

Расчет ключевых показателей прогноза

Блок отображает ключевые показатели текущего варианта прогноза:
— forecast accuracy и forecast bias;
— YTD — отношение факта от начала года до последнего закрытого периода к аналогичному периоду факта предыдущего года;
— YTG —  отношение текущего прогноза от самого раннего незакрытого периода;
— Y vs prev — отношение Actuals + Forecast текущего года текущей версии к Actuals + Forecast текущего года к прошлой утвержденной версии минус 1;
— Y-1 — объем прошлого года (Actuals) — факт за прошлый год суммарно;
— Y — объем текущего года в натуральном выражении (Actuals+Forecast);
— Y+1 — объем следующего года в натуральном выражении (Forecast).

Функционал

Workflow — согласование прогнозов

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

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

Результаты

Реализовано ядро платформы с основными кейсами планирования
Платформа интегрируется и адаптируется для нескольких крупных корпораций
Продолжается реализация кейсов планирования: от промо-планирования до планирования производства

Связаться с нами

Хотите обсудить свой проект? Воспользуйтесь формой обратной связи и мы начнем общение.