Прогнозирование спроса: инструмент Novo Forecast Enterprise
Прогнозирование спроса: система Novo Forecast Enterprise
SCM Academy начала серию обзоров ИТ-систем для ритейла и логистики. Первый выпуск был посвящен теме планирования и прогнозирования спроса. Экспертами выступили представители компаний Novo BI и «Балтика».
Текстовая версия выпуска: 10 минут на чтение
Артем Рогов, SCM Academy:
Цепь поставок начинается с прогнозирования спроса. Поэтому и мы начнем обсуждение с систем, которые позволяют прогнозировать спрос. Герои в виртуальной студии: Андрей Андреев, региональный менеджер по развитию и автоматизации систем планирования в компании «Балтика», и основатели компании Novo BI Евгений Непейвода и Алексей Батурин.
Евгений Непейвода, Novo BI:
Компания Novo BI была основана в 2015 году. Мы являемся разработчиком цифровых систем для прогнозирования спроса и бизнес-анализа. Входим в рейтинг «Крупнейшие поставщики решений для анализа данных в России 2019», по данным CNews Analytics. Нашей системой прогнозирования спроса и интегрированного планирования в цепях поставок Novo Forecast Enterprise пользуются более двухсот компаний. Среди них ALIDI, AP Trade, «Увелка», «Генеральские колбасы» и другие. База пользователей – 15 000 человек. Novo BI – постоянный партнер крупнейшего профессионального логистического сообщества в Российской Федерации – Совета профессионалов по цепям поставок. Компания является резидентом инновационного центра «Сколково». Для рассказа о системе Novo Forecast Enterprise передаю слово Алексею Батурину.
Алексей Батурин, Novo BI:
Евгений, спасибо. Система Novo Forecast Enterprise состоит из трех блоков. Первый блок – это автоматизация прогнозирования с подготовкой данных, выбором лучшей модели прогнозирования, корректировкой прогноза факторами. Второй блок – это организация и автоматизация процессов совместного планирования, планирование мероприятий и факторов, оцифровка этих мероприятий, оценка рисков, оценка возможностей, электронное согласование, оповещение. Третий блок – это интегрированное планирование в цепи поставок, то есть от прогноза спроса мы выстраиваем планы поставок на региональные склады, на РЦ, в магазины, формируем заявки, исходя из графиков остатков, товаров в пути, различных ограничений. Дальше формируются заявки на производство, на закупку сырья и материалов. Эта цепочка зависит от структуры компонентов.
Novo Forecast Enterprise размещается на серверах клиента, но можно выбрать размещение в облаке. Система состоит из четырех модулей – это сервер базы данных Microsoft, сервер прогнозирования, который делает все расчеты подготовки данных, всю работу в первом блоке, сервер совместной работы для автоматизации второго блока и автоматизации формирования планов, блок аналитики.
Интеграция происходит через промежуточную базу данных. Внешние и внутренние данные компании интегрируются в одну базу, настраиваются их регулярные обновления, и дальше данные забираются в базу «Сервер». Все отображается в интерфейсе или аналитике, но загрузка, обработка и сохранение происходят через промежуточную базу.
Андрей Андреев, «Балтика»:
Как происходит нормализация этих данных? Если у меня условный справочник населенных пунктов, погодная информация, еще что-то, и все имеет другую структуру, другие наименования. Как это решается?
Алексей Батурин, Novo BI:
Нормализация происходит в промежуточной базе. Процесс автоматизирован и проходит ежедневно. Если возникают какие-то ошибки, система пишет информацию о состоянии: пользователь видит, что, где пошло не так.
Андрей Андреев, «Балтика»:
Какие методы, модели, локальные алгоритмы, ваши собственные разработки используете? Как обрабатываете и предобрабатываете данные?
Алексей Батурин, Novo BI:
Начнем с автоматизации прогнозирования, подготовки данных, выбора модели. На данный момент у нас 3000 математических моделей прогнозирования.
Вопрос в том, какие типы временных рядов и какие характеристики временных рядов эти модели отрабатывают. Но до того, как система применяет математику, до того, как выбирает математические модели, происходит подготовка данных. Сначала очистка от влияющих факторов. Дальше на основании подготовленных данных происходит определение групп прогнозирования, то есть система загружает в себя справочники товаров, справочники клиентов, для каждого уровня детализации (направление прогнозирования, канал сбыта, клиент) определяет, на каком уровне справочника необходима статистика, чтобы получить максимальную точность прогноза.
Как она это делает и для чего? Например, есть большое количество товаров, которые каждый год ратируются. В рамках групп бывает каннибализация (пока не было одного товара, покупатели брали другой). Система все это видит, агрегирует статистику в листовые календари, рассчитывает там прогноз, а затем распределяет на те позиции, которые сейчас актуальны, продаются либо активны в ассортименте.
Система рассчитывает прогноз на всех уровнях, находит тот уровень, который дает максимальную точность прогноза на тестовом промежутке времени, спускает туда. Потом этот уровень фиксирует и использует для прогноза на стопроцентных данных. Затем подготовленная статистика проверяется на выбросы, разовые события и очищается либо сверху, либо снизу, восстанавливая спрос на период этих выбросов и разовых событий. Все настройки можно задать.
Цикл прогнозирования проходит в рамках проекта. Если это внедрение, то можно по 2 раза вдень считать проект. Если уже выстроенная, регулярная работа, то считают проект раз в месяц, когда закрывается период. И этот месяц попадает в статистику. В рамках проекта происходит подготовка данных, пересмотр групп прогнозирования, очистка от влияющих факторов, расчет базовой модели прогноза, заново выбор математической модели и корректировка прогноза факторами. Корректировка происходит ежедневно или несколько раз в день, если есть в этом потребность для цепочки поставок, для формирования заказов.
Андрей Андреев, «Балтика»:
Это очень даже интересно, потому что обычно системы намного реже предлагают подобные решения, так как это довольно ресурсоемкая штука.
Алексей Батурин, Novo BI:
Мы отлаживали это, года два точно. У нас было два крупных клиента, которые заказывали и просили именно отладить. И мы тщательно разбирали множество примеров, когда что-то работало не так. Сейчас все уже несколько лет работает без вопросов.
Артем Рогов, SCM Academy:
Я правильно понимаю, что, если в компании пять уровней на определенном тестовом промежутке, то параллельно считаются пять прогнозов? Еще около трех тысяч комбинаций. И потом это все сравнивается между собой и выбирается уровень с максимальной точностью?
Алексей Батурин, Novo BI:
Да. При этом у нас скорость большая, потому что расчеты распараллелены. Это стало возможным, так как математику мы начали писать пять лет назад уже на последних технологиях, когда появились параллельные вычисления. Кроме того, части системы распределены между разными серверами. Они друг другу не мешают, что тоже увеличивает скорость работы.
Андрей Андреев, «Балтика»:
На каком массиве данных вы работаете – миллионы, миллиарды?
Алексей Батурин, Novo BI:
Возьмем, например, крупнейшего дистрибьютора ALIDI. У них полтора миллиона торговых точек, 10 тысяч SKU, около 40 филиалов. Прогноз у них считается раз в месяц часа 3-4. Это быстро. Ежедневный пересчет занимает от минуты до часа в зависимости от количества факторов и мероприятий
Андрей Андреев, «Балтика»:
Для такого объема данных скорость более чем достойная. А с какой детализацией выдаете прогнозы?
Алексей Батурин, Novo BI:
Все факторы применяются по дням.
Андрей Андреев, «Балтика»:
Для такого колоссального массива данных, наверное, надо будет уже не 20 или 24 ядра, а все 80 или 150.
Алексей Батурин, Novo BI:
У ALIDI как раз 24 ядра, им хватает стандарта.
Андрей Андреев, «Балтика»:
Здесь только аплодировать можно.
Алексей Батурин, Novo BI:
Надо сказать, что вся информация по подготовке данных сохраняется в рамках проекта. И потом по прошествии времени можно разобраться и понять, что повлияло на подготовку данных: модели не в ту сторону пошли, данные не почистились и так далее. Затем можно быстро внести корректировки в систему и дальше по циклу понять, на что можно повлиять.
После того, как данные подготовлены, происходит анализ и предварительная оценка характеристик временного ряда. Затем выбор модели прогнозирования. Тестирование на нескольких промежутках времени. Анализ ошибок. Выбирается модель, которая на нескольких промежутках времени дала максимальную точность прогноза. Дальше этот прогноз корректируется факторами и мероприятиями, которые пользователи запланировали в системе. Весь процесс загрузки, подготовки, пересчета выстраивается в согласованную цепочку, и одно за другим запускается.
Артем Рогов, SCM Academy:
Система как-то сигнализирует пользователю, что есть нелогичный выброс, может быть, риски подсвечивает?
Алексей Батурин, Novo BI:
Есть оповещения внутри факторов и мероприятий. Внутри системы уже готовы шаблоны. Вам не нужно придумывать, как планировать новинки, акции, тендеры, разовые поставки и так далее. Можно брать готовое решение, в нем планировать и работать. В рамках этих готовых решений есть оценка рисков. Когда вы, например, планируете акцию, листинг, поставку и т.д., система выделяет и показывает риски. Они могут касаться прогнозной оборачиваемости, перепланирования, пересечения с аналогичными мероприятиями и другими факторами, которые являются взаимоисключающими. Система не запрещает, но обращает внимание пользователя: вдруг вы ноликом ошиблись или надо запросить новые данные.
Также на ежедневной основе мониторятся прогнозы, фактические продажи. Если есть остатки, система вводит автоматические блокировки и информирует участников процесса о этом.
Андрей Андреев, «Балтика»:
Это очень интересная опция. Наверное, ее стоит обсудить отдельно. А пока давайте еще немного про математику поговорим.
Алексей Батурин, Novo BI:
Детализация. Прогнозы могут строиться по дням, а могут – по клиентам. Можно сделать список клиентов, выделить ключевых, с различными ограничениями и по другим параметрам. Контролировать уровень сервиса и остатки, подходящие под этих клиентов. В итоге, все прогнозы будут на том уровне детализации, который нужен клиенту.
Артем Рогов, SCM Academy:
Как происходит работа с факторами?
Алексей Батурин, Novo BI:
Перед тем, как перейти к настройкам, мы с клиентом согласовываем регламент работы системы и бизнес-процесс. Согласовываем список мероприятий и факторов, который необходим для планирования.
За последние два года я не встречал каких-то новых мероприятий, которых нет в нашей системе. Все эти факторы уже преднастроены и настраиваются только согласования, то есть сам процесс. Пользователи привязываются к этим факторам по ролям.
Если есть пожелания от клиентов «а давайте сделаем еще вот такую штуку», то мы их рассматриваем и выставляем. Но здесь надо понимать, что уже очень много всего сделано. Сейчас задача – научить новых пользователей работать с тем, что уже есть. Готовые интерфейсы подстраиваются под клиента, исходя из его справочника и различных характеристик.
Андрей Андреев, «Балтика»:
Что делать с таким фактором, как погода?
Алексей Батурин, Novo BI:
С погодой уже много раз были эксперименты. Этот фактор имеет смысл применять только на подготовку данных. В остальном решается сезонностью.
Артем Рогов, SCM Academy:
Вы упоминали, что по промо есть отдельные интерфейсы, расскажите подробнее, пожалуйста.
Алексей Батурин, Novo BI:
Да, под промо у нас отдельный интерфейс. В стандартной комплектации – только в единицах планирования (штуки, килограммы, литры, квадратные метры). Обычно согласовываем отдельный проект, потому что у каждой компании свои особенности с финансами, себестоимостью, оценкой эффективности, бюджетами. Промо может применяться по-разному, в зависимости от цели. Система автоматом считает все показатели по промо. Прогнозы распределяются в новую версию шаблона. Фиксируется вся история изменений. Можно импортировать отчет, отправить его клиенту, поставщику.
И еще, если мы об интегрированном планировании говорим, то интересно, что есть возможность включения ваших клиентов и поставщиков в контур совместного планирования и прогнозирования. Вы можете дать им доступ, чтобы они вносили свои планы в систему, а вы будете согласовывать эти заявки. После согласования данные автоматически применяются к прогнозу. Сводить информацию вручную не нужно.
Андрей Андреев, «Балтика»:
Это вы говорите уже про совсем светлое будущее, про настоящую коллаборацию, когда ритейлеры и поставщики работают в одной системе.
Алексей Батурин, Novo BI:
Техническая возможность уже есть. И для дистрибьюторов это ключевой функционал. Потому с нами работают два крупнейших дистрибьютора (ALIDI и AP Trade): им важно, чтобы поставщики планировали свои мероприятия в рамках единой системы.
Андрей Андреев, «Балтика»:
Можно ли догружать в систему, например, данные с касс, предоставленные клиентом? И если клиент их выгружает на FTP или на Google-диск, возможности по интеграции есть?
Алексей Батурин, Novo BI:
У нас есть отдельная система, которая занимается обработкой таких данных, потому что, когда вам клиент предоставляет информацию, первая задача – подготовить эти данные. Только после проверки их можно загружать в систему прогнозирования. На самом деле, по каждому клиенту вы можете решить, с какими данными будете работать. Будете строить прогноз на уровне первичных продаж этому клиенту либо на уровне вторичных продаж от клиента, либо третичных продаж. Лишь бы данные были регулярные и обновляемые.
Обращу внимание, что если это данные сетей, то там должна быть подготовка заранее. Это не подготовка к прогнозированию, это подготовка справочников, подготовка к структуре, заложенной в системе.
Андрей Андреев, «Балтика»:
Несколько неожиданно, что система работает в обе стороны: как поставщик что-то согласовывает с клиентом, так и клиент что-то согласовывает с поставщиком.
Артем Рогов, SCM Academy:
То есть получается, если ты производитель, ты можешь работать в рамках этой системы со своими поставщиками сырья и материалов.
Алексей Батурин, Novo BI:
В согласованиях есть еще оповещения к определенной дате. Можно установить дату, и всем участникам придет оповещение с вашими комментариями.
Андрей Андреев, «Балтика»:
Вернемся к новинкам. Бывают новинки производства, региональное расширение продуктовой линейки, листинги в сети. Что система здесь умеет?
Алексей Батурин, Novo BI:
Андрей, все, что сказали, все умеем. Географию, где новинка запускается, вы можете выбирать. Можно прогноз аналогов взять. Если это ротация, то можно новинку по прогнозу планировать. Аналог подбирается по характеристикам, которые существуют в справочнике (массы, вкусы и так далее). Для подбора новинок собирается такое сочетание слов, в котором содержатся все важные параметры. Мы работаем с именем, и рецептурные характеристики тоже могут быть в имени.
По поводу локации и направления. Вы можете выбрать одно направление и запланировать в нем новинки. Потом везде добавить. Есть нюанс: ближайшие месяцы корректировать нельзя (то, что уже начало продаваться). Будущие месяцы можно корректировать. Эти корректировки сохраняются в истории, но все равно за новинками нужен глаз да глаз. План сделали 4 месяца назад, не факт, что он останется таким же.
Еще по интерфейсу планирования листинга. Листинги – отдельный интерфейс. Это может быть новый клиент, может быть расширение действующего клиента, может быть корректировка прогнозов у клиента по действующему ассортименту.
Артем Рогов, SCM Academy:
Каким образом выглядит согласование? Куда приходят оповещения? Можно ли задавать отдельно группу клиентов или группу брендов одному бренд-менеджеру? И если человек корректирует, возможно ли каким-то образом дальше отслеживать его корректировки, и как они повлияли на прогноз?
Алексей Батурин, Novo BI:
Каждому пользователю присваивается роль. То есть к каким мероприятиям у него есть доступ. И только в рамках роли он может смотреть, согласовывать, заменять, читать, вносить корректировки, удалять и так далее. Дальше можно сделать доступ по территориям, по географическому признаку, по товарным направлениям, по контрактам. Каждого сотрудника можно поместить в определенный отдел. В зависимости от этих всех параметров можно создать схему согласования. Можно выстроить порядок согласований (например, сначала закупщик, потом руководитель отдела). Если есть бюджеты, то добавляется согласование факта. Оповещения – пользователь сам может назначить, в какую дату должно прийти дополнительное оповещение. Присваивается роли и потом уже назначаются факторы.
Когда ты заходишь на главную страницу Novo Forecast Enterprise, видишь все связанные с тобой события, на которые ты должен обратить внимание и что-то по ним сделать. И на почту такая же информация приходит с заданной частотой.
Артем Рогов, SCM Academy:
Я изменил цифру, и как это повлияло?
Алексей Батурин, Novo BI:
Можно дать согласователю доступ на изменения, а можно не давать. Тогда только ответственный сможет изменять. Вы можете написать о своем несогласии. Ответственный посмотрит и внесет корректировки. Дальше к вам приходит информация о том, что он внес корректировки, вы ее смотрите и подтверждаете. Все действия записываются в истории событий по каждому фактору. Есть сквозная история по всем факторам. Ее можно посмотреть за любой диапазон времени.
Андрей Андреев, «Балтика»:
Я бы хотел затронуть вопрос логирования. Все ли действия вы записываете? Есть ли копирование перехода из одного цикла в другой? Драматически ли это влияет на базу данных и ее производительность?
Алексей Батурин, Novo BI:
У нас все логируется. Все действия по факторам записываются. И мы еще не столкнулись с такой проблемой, чтобы где-то это грузило базу. Плоская обычная таблица – она никак не нагружает данные.
Второй вопрос по поводу сохранения версии планов. Проекты каждый месяц создаются и сохраняются. Если вам необходимо зафиксировать какой-то проект, то вы его создаете, и он пошел дальше на следующий этап. В этот момент снимается корректировка, пересчет факторов останавливается, оставляем галочку «Боевой». Но создается новый проект, который параллельно считается и обновляется. Он зафиксируется по прошествии времени.
Все расчеты сохраняются в рамках проекта. Можно посмотреть, с какой точностью год назад вы что-то планировали, прогнозировали, почему такое решение приняли. Это все сохранено в рамках проекта с детализацией. Вот это нагружает базу данных, но только у больших клиентов. И годовой истории им вполне хватает.
Андрей Андреев, «Балтика»:
Получается, вы поддерживаете работу со сценариями в рамках одного проекта или в рамках нескольких параллельных проектов. Я могу сделать оптимистичный, пессимистичный, сверхпессимистичный сценарий. И потом уже выбрать итоговый, который мне кажется наиболее реалистичным?
Алексей Батурин, Novo BI:
У нас есть доверительные интервалы – это верхняя граница, нижняя граница, прогноз. И это уже, по сути, сценарии развития событий с заданной точностью сигма и так далее. Если вам надо сделать несколько проектов – один без промо, второй с промо, с новинками – можно сделать отдельные проекты, включить-отключить какие-то факторы, на разных уровнях детализации посчитать, без клиентов, с клиентами. Обычно, когда система уже работает регулярно, уже все понятно и ничего настраивать не надо, никто этого не делает.
Артем Рогов, SCM Academy:
Где происходит визуализация? У вас своя собственная либо внешние системы?
Алексей Батурин, Novo BI:
В рамках факторов у нас есть визуализации, но итоговый прогноз выгружается в виде сводной таблицы. Либо забирается из базы данных. Это сводная таблица с заданной детализацией по товарам, по направлениям, по группам товаров, по клиентам, прогнозы, акции и так далее.
И есть еще дополнительные визуализации, которые у нас настроены в аналитической системе. Здесь можно выбрать конкретный проект, группу товаров, клиента. Увидеть, какие данные были загружены в систему. Как данные были подготовлены. Какой получился прогноз регулярных продаж. Какой в этот момент произошел в этом проекте факт. Какие прогнозы с факторами мы сделали. Смогли учесть эти факторы или нет. То есть это конструктор, в рамках которого мы сразу предоставляем готовые инструменты для работы с тем функционалом, который внедряем. Есть преднастроенные отчеты, которые мы при внедрении поставляем. И есть отчеты, которые мы с клиентом дополнительно согласовываем, когда он говорит: «Сделайте мне еще такой график».
Андрей Андреев, «Балтика»:
В середине нашей встречи вы озвучили опцию автоматизации факторного анализа. Предлагаю дополнить. Если у меня был какой-то всплеск или, наоборот, падение, может ли система сама на основе статистических данных попытаться опознать, что это: фактор Out-of-stock, просроченной задолженности клиента или чего-то еще?
Алексей Батурин, Novo BI:
Так как у нас факторы подготовлены, мы их уже давно развиваем, естественно, появились сценарии автоматического определения факторов. Потому что на основании анализа обычной статистики и прогнозов можно понять, что, например, клиент ввел новый товар. По нему нет прогнозов, но продажи вдруг взлетели вверх.
Тогда система автоматически создает эти факторы, определяет события, которые влияют либо в плюс, либо в минус, и оповещает ответственных сотрудников, у которых настроен доступ к конкретному направлению. Этот функционал мы развиваем, в каждой новой версии добавляем новые опции определения факторов.
Артем Рогов, SCM Academy:
Ну, что ж, коллеги, полтора часа пролетели как минута. Спасибо за интересную, профессиональную дискуссию.