Задача
Спрос на сталь меняется раньше, чем это становится видно в заказах. На него влияют строительство, автопром, инфраструктурные инвестиции, стоимость капитала, валютные курсы и планы нескольких крупных покупателей. Прогноз, построенный на прошлых продажах, реагирует с задержкой в квартал и не отвечает на главный вопрос планирования — почему ожидается рост или падение и насколько этому можно верить.
Задача была в том, чтобы собрать ранние сигналы из источников за пределами компании, связать их с конкретными видами продукции и конкретными рынками и дать коммерческому и производственному планированию один прогноз вместо нескольких несогласованных оценок.
Решение
Пять уровней признаков. Данные собирались слоями, от внутренних к внешним:
1. Внутренние данные ArcelorMittal — отгрузки, заказы, портфель контрактов, цены, отмены, запасы, загрузка мощностей и сезонность по категориям продукции. 2. Макроэкономика стран — промышленное производство, ВВП, PMI, строительство, инфраструктурные расходы, процентные ставки, валютные курсы, энергия, импорт и экспорт. 3. Отрасли-потребители — выпуск автомобилей и техники, объёмы строительства, инвестиционные циклы, производство труб и другие показатели, привязанные к конкретной категории стали. 4. Ключевые покупатели — публичная финансовая отчётность, выручка, запасы, CAPEX, долговая нагрузка, производственные планы и опубликованные прогнозы. 5. Текстовые сигналы — письма акционерам, комментарии генеральных директоров, презентации и расшифровки публичных выступлений.
Всего получилось около 50 факторов. Для каждого учитывались задержка публикации, периодичность и пересмотры — иначе в обучение легко попадает информация, которой на момент прогноза ещё не существовало.
Отчётность как измеримый сигнал. NLP-модуль извлекал из текстов темы, тональность, уверенность, долю конкретных числовых обещаний и характер высказываний о будущем. Формулировки сопоставлялись не с реакцией рынка, а с последующими закупками стали этим же покупателем. В данных проявлялись неочевидные закономерности: сухое перечисление ухудшающихся показателей часто предшествовало сокращению закупок, а воодушевляющая, но менее конкретная речь руководителя в отдельных компаниях, наоборот, исторически совпадала с ростом потребления. Система не превращала это в универсальное правило — текстовые признаки работали только вместе с финансовыми и производственными показателями конкретного клиента.
Модель. Для каждого сочетания «страна — категория продукции — горизонт» строился базовый сезонный прогноз, а поверх него работал ансамбль моделей машинного обучения: лаги внутренних продаж, макроэкономические ряды, отраслевые показатели и NLP-признаки ключевых покупателей. Валидация — скользящим окном по времени: модель обучалась только на прошлом и проверялась на следующем периоде. Для факторов с редкой или задержанной публикацией сохранялись последние доступные значения и отдельные признаки давности, чтобы модель понимала, насколько свежими данными она пользуется.
Ансамбль возвращал не одну цифру, а точечный прогноз и диапазон неопределённости. Отдельные сценарии показывали, что произойдёт при ускорении строительства, падении промышленного выпуска, изменении курса или пересмотре планов крупного покупателя.
Интерфейс. Пользователь выбирал страну, категорию стали и горизонт и видел историю спроса и прогнозный диапазон, вклад внутренних, макроэкономических и клиентских факторов, покупателей и отрасли, которые сильнее всего сдвигают ожидание, свежие публикации и извлечённые из них сигналы, сравнение базового, оптимистичного и стрессового сценариев и изменение прогноза относительно предыдущего расчёта. Прогноз агрегировался по регионам и продуктовым группам и выгружался в цикл коммерческого и производственного планирования.
Реализация — Python.
Результат
ArcelorMittal получила ранний прогноз спроса, который дополняет внутреннюю историю продаж внешними экономическими и клиентскими сигналами. Изменение потребления по рынкам и категориям стали становится видно до того, как оно доходит до заказов, а коммерческий прогноз можно согласовать с производственным планом на одних и тех же цифрах.
Главное — прогноз перестал быть «чёрным ящиком». Интерфейс объясняет пересмотр через конкретные факторы: какой покупатель, какая отрасль, какой макропоказатель сдвинул ожидание и в какую сторону. С таким объяснением прогноз можно обсуждать и оспаривать на планировании, а не просто принимать к сведению.