Структурная причина, по которой ваш дашборд не заметил смену режима.

Прогноз — это утверждение о процессе. Большинство прогнозов в этой отрасли описывают не тот процесс, зато делают это уверенно, и вот уверенность обходится дороже всего.

Прийти к этому можно двумя разными дорогами, которые внешне не похожи совсем, а ломаются одинаково.

Жалоба звучит отовсюду и всегда от тех, кто продаёт данные или предсказания, — так что вычтем коммерческий интерес и посмотрим, что осталось. Чарльз Чейз из SAS в разговоре о прогнозировании от потребления говорит: беда в том, что прогнозируют отгрузки и называют их спросом. Миро Димитров из NWO.ai в разговоре о драйверах спроса говорит: беда в том, что прогнозируют по своим данным и называют их рынком. WorldQuant Predictive пошли дальше и построили платформу, которая принципиально не интегрируется с системами заказчика. Ким Кокс из NielsenIQ в разговоре об омниканальных измерениях говорит, что и касса перестала быть полной картиной: покупка ушла в каналы, которые ни о чём не отчитываются.

Никто не связывает эти четыре реплики между собой. А это одна и та же поломка.

Первая: вы прогнозируете поставку

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

Последние пять лет показали это дважды — пандемия, потом инфляционные скачки. Сломалась не модель. Сломалось допущение под ней: что отгрузка сойдёт за покупку. А доложить о провале допущения, о котором ей никто не сообщал, модель не в состоянии.

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

Вторая: вы прогнозируете собственных покупателей

Прогнозируете только по своим данным — измеряете тех, кто вас уже нашёл. Это ваши покупатели, и всё, что видит модель, идёт следом за этим фактом. Получается эхо-камера с безупречной гигиеной данных.

Этот случай заметить труднее — именно потому, что свои данные обычно самые чистые в компании. Дело не в качестве. Дело в отборе. Ни проверка полноты, ни отчёт о доле пустых значений, ни тест схемы не обнаружат совокупность, которую выбрали за вас ещё до того, как вы начали.

Отказ интегрироваться с внутренними системами — тот же довод, только оформленный как продуктовое решение: внутренние данные не актив, который стоит добавить, а смещение, которое стоит не пустить внутрь. А замечание про кассу — та же поломка этажом выше: источник, который был рынком, тихо стал выборкой, и в самих данных об этом не сказано ни слова.

Правило, которое лежит под обеими

Две поломки, совсем не похожие внешне, и одна причина. Что модель способна наблюдать, то и решает, что она способна заметить.

Отсюда правило, по которому я на самом деле работаю и которого не формулирует никто из четверых:

У каждой модели в продакшене должен быть назван сигнал, по которому она узнаёт, что режим сменился, — и приходить этот сигнал не может оттуда же, откуда её обучающие данные.

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

МодельОбучена наНезависимый сигнал смены режима
Прогноз спросаОтгрузки в каналСиндицированное потребление, касса
Рост категорииСвоя кассаПанель, чеки, поиск
ОттокПоведение своих клиентовПроникновение категории, внешние переключения
Спрос на инновацииСвои запускиНаучная литература, венчурные вложения

Четвёртая строка — та, с которой обычно спорят. Она выросла из правила горизонта у NWO: вопрос про ближайшие двенадцать месяцев и вопрос про ближайшее десятилетие требуют разных источников. Большинство команд гоняют оба через один корпус — потому что это корпус, который у них есть. Чинится дёшево, а спасает от того, чтобы на пятилетний вопрос отвечали данными прошлого квартала.

Из моей собственной работы

Эту поломку я проходила изнутри.

В компании вина и крепкого алкоголя план спроса прогнозировал отгрузки дистрибьюторам и ключевым клиентам, а результат назывался спросом. Подробно, уверенно — и построено на sell-in. Того, что люди на самом деле покупали, в плане не было: данные по sell-out были почти недоступны. Модель обучалась и проверялась по единственному числу, которое видела.

Проблем не было видно до тех пор, пока в канале не скопились лишние запасы, а часть брендов не перестала продаваться. Сказать об этом прогноз не мог: каждое число, за которым он следил, было числом, которое мы уже продали. Он показывал, что всё в порядке, — до того дня, когда об обратном сообщили склады.

Дело было не в том, что нужна модель получше, — прогнозировать надо было другое. Мы пересобрали план вокруг sell-out: рост рынка, промо, конкуренция, сезонность. А sell-in стал арифметикой поверх — уровень запаса, политика запаса, и всё. Сигнал, которого модели не хватало, чтобы заметить смену режима, был как раз тем, которого никогда не было в комнате, и прежде чем им пользоваться, за ним пришлось пойти. Это и есть правило выше, и разговоров оно потребовало больше, чем кода.

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

Дешёвый вариант

Программа для этого не нужна.

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

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