Агент по остаткам считает три вещи: темп продаж, дни запаса и дату обнуления по каждой позиции. Главная ошибка - брать средний темп за месяц: на разгоне он занижает риск в два-три раза, потому что не видит тренда. Считать надо по нескольким окнам сразу и сравнивать дни запаса не с абстрактными тридцатью днями, а с длиной вашей поставки. Отдельная задача - дефицит там, где остаток вообще не виден в данных: он ловится по обрывам в ряду заказов, когда устойчивый спрос вдруг встает на неделю. Слепых зон у складских данных много: свой склад, товар в пути, возвраты, лаг отмен. Агент обязан писать, чего он не видит, а не молчать об этом.
Остатки выглядят самой простой задачей для автоматизации: есть склад, есть продажи, дели одно на другое. На практике именно тут агенты чаще всего врут, причем уверенным тоном и с точностью до одного дня.
Разбираю механику: что агент считает каждое утро, где арифметика ломается и какие данные о складе врут по своей природе. Механика общая, без привязки к конкретному кабинету.
Что агент считает каждое утро
Полезный агент по остаткам выдает три числа на каждую позицию и одно решение.
Темп продаж. Сколько штук в день уходит. Считается по заказам, из которых вычтены отмены, а не по отгрузкам и не по деньгам: деньги приходят с задержкой в недели, а решение по закупке принимается сегодня.
Дни запаса. Остаток, деленный на темп. Цифра сама по себе бесполезна, пока ее не с чем сравнить.
Дата обнуления. Тот же расчет, но в календаре: не “17 дней”, а “14 сентября”. Это единственная форма, в которой цифра доходит до человека, потому что ее можно сопоставить с датой ближайшей поставки.
Решение. Успевает поставка или нет. Агент сравнивает дни запаса не с круглым числом вроде тридцати, а с вашим реальным сроком: производство плюс доставка плюс приемка. Если цикл поставки 45 дней, то 30 дней запаса - это уже опоздание на две недели, хотя на дашборде цифра выглядит спокойно.
Все остальное - разбивка по складам, графики, сортировки - надстройка. Если этих четырех вещей нет, автоматизация не нужна, хватит таблицы.
Почему средний темп за месяц врет
Самая дорогая ошибка в расчете. Берем продажи за 30 дней, делим на 30, получаем темп. Проблема в том, что среднее не знает про направление.
Пример на числах. Позиция продавалась так: первая неделя месяца - по 2 штуки в день, последняя - по 8. Средний темп за месяц выйдет около 5 штук в день. При остатке 150 штук агент напишет 30 дней запаса. Реальный темп на сегодня - 8, и через пару недель он может быть 10. Настоящий запас - две недели, а не месяц. Ошибка ровно в два раза, и она всегда в опасную сторону: на разгоне продаж вы узнаете о дефиците последним.
Что с этим делать.
Считать несколько окон сразу. Темп за 7, за 14 и за 28 дней. Если недельный заметно выше месячного - позиция разгоняется, и в расчет идет он. Если ниже - спрос падает, и это уже разговор не про дефицит, а про зависшие деньги.
Смотреть на тренд, а не на точку. Простая линия по последним двум-трем неделям дает более честную дату обнуления, чем плоское среднее. Мы видели расхождение в три раза на реальном расчете: плоский темп рисовал почти три месяца запаса там, где с учетом разгона оставался месяц.
Убирать выбросы. День акции, залет в подборку, единичная оптовая покупка. Одна такая дата в короткое окно поднимает темп вдвое и заставляет закупить лишнее.
Держать в голове сезон. Если товар сезонный, среднее по прошлому месяцу не годится в принципе: сравнивать надо с тем же периодом прошлого года, а не с предыдущими тридцатью днями.
Как ловить дефицит, когда остаток не виден
Отдельный класс задач: остаток в данных есть, но он неправильный, либо его нет вообще. Товар лежит на своем складе, отгружается под заказ, и площадка о нем не знает. Или он числится в нуле, а продажи идут.
Тут работает обходной прием: дефицит ловится не по складу, а по поведению спроса. Агент строит дневной ряд заказов по каждой позиции за три месяца и раскладывает карточки на четыре группы.
Мертвые. Ноль заказов за все окно или последний заказ был больше 45 дней назад. Это не дефицит, это балласт: по таким позициям нельзя строить и план продаж, иначе он превращается в воздух.
Живые с обрывами. Устойчивый темп от половины заказа в день и при этом провал в шесть и больше дней подряд без единого заказа. Вот это и есть кандидаты на дефицит: спрос, который держался месяцами, сам по себе на неделю не останавливается. Либо кончился товар, либо карточка вылетела из выдачи - проверять надо оба варианта.
Вялые. Темп меньше 0,15 заказа в день. Формально живые, практически неуправляемые: любая метрика на таких числах - случайность.
Живые ровные. Все остальное. Обычно это меньшая часть ассортимента, которая приносит большую часть денег, и следить надо в первую очередь за ней.
У метода есть честное ограничение: он запаздывающий. Обрыв в ряду заказов виден уже после того, как продажи потеряны. Поэтому он не заменяет нормальные данные о складе, а страхует их. Правильный ответ - раз в неделю забирать выгрузку собственного склада и сводить ее с площадочной.
Слепые зоны данных о складе
Список того, чего агент не видит по умолчанию. Каждый пункт хотя бы раз приводил к неверному выводу.
Свой склад. Отчет площадки про остатки показывает только ее собственные склады. Товар у продавца в этот отчет не попадает, поэтому ноль в отчете не означает отсутствия товара. Мы однажды получили на этом вывод “половина ассортимента в нуле, план под угрозой”, а при проверке оказалось, что большая часть этих позиций спокойно продавалась со своего склада все предыдущие две недели.
Товар в пути и возвраты в пути. Едет на склад площадки или едет обратно от покупателя. Физически это ваш товар и ваши деньги, в остатке его нет. По отдельным позициям такой невидимый запас доходит до четверти от всего объема.
Лаг отмен. Свежие заказы всегда завышены: часть отменится в ближайшие недели. Доля отмен растет со временем наблюдения - на горизонте недели видна одна цифра, на горизонте месяца заметно больше. Значит, темп по последним семи дням систематически завышен, и агент должен применять поправку, а не брать сырое число.
Резервы под сборку. Часть остатка уже обещана оформленным заказам. Свободного товара меньше, чем в колонке.
Разные склады с одним товаром. Итог по компании может выглядеть спокойно, при этом на ближнем к покупателю складе ноль, а весь запас лежит там, откуда доставка идет вдвое дольше.
Отказ источника. Ручка выгрузки не ответила, агент взял вчерашние данные. Это нормально, ненормально - промолчать об этом. У нас правило: если агент работает на кэше, он пишет об этом первой строкой сводки.
Что агент присылает и чего не делает
Сводка утром, до начала рабочего дня, в один экран. Структура, которая прижилась:
- Горит. Позиции, где дата обнуления наступает раньше, чем приедет поставка. С цифрами: темп, остаток, дата.
- Изменилось со вчера. Ускорения и торможения, новые обрывы в рядах заказов. Не весь список, а только дельта - иначе сводку перестают читать на третий день.
- Перезапас. Обратная сторона: позиции, где запаса на год и больше. Это тоже сигнал, только про замороженные деньги, а не про дефицит.
Чего агент делать не должен: сам заказывать товар, сам менять цены, сам двигать поставки. Решение по деньгам остается за человеком, агент готовит его и показывает основания. Это не осторожность ради осторожности: закупка на ошибочном темпе стоит дороже, чем два дня ожидания.
Второе ограничение - не будить без повода. Агент, который каждый день присылает одно и то же, через неделю сливается с фоном.
Кому нужен агент, а кому хватит таблицы
Честная граница.
Хватит таблицы, если у вас до 30-50 активных позиций, одна площадка, короткая поставка и вы и так каждый день смотрите в кабинет. Раз в неделю выгрузка и формула деления закроют задачу, и платить за автоматизацию не за что.
Нужен агент, если сходится хотя бы три пункта из списка: больше сотни активных позиций; две площадки и больше; цикл поставки от месяца; часть товара едет со своего склада; сезонный или разгоняющийся спрос; вы уже ловили дефицит на топовой позиции и знаете, во сколько он обошелся.
Порог простой: если ручной пересчет занимает больше часа в неделю или вы делаете его не каждую неделю, автоматизация окупается на первом же предотвращенном дефиците.
Как проверить, что агент не врет
Три проверки, которые стоит требовать от любого подрядчика.
Сверка с кабинетом. Раз в неделю берем три-пять случайных позиций и сравниваем цифры агента с тем, что показывает площадка. Расхождение объясняется, а не списывается на округление.
Сторож на сам агент. Отдельный простой скрипт, который следит, что прогон вообще был. Молчащий агент выглядит точно так же, как агент, у которого все спокойно, и это самая частая тихая поломка.
Список слепых зон в самом отчете. Строка “что я не вижу” внизу сводки: свой склад, товар в пути, лаг отмен. Она превращает цифру из обещания в оценку с известной погрешностью - а именно так с ней и надо работать.
Коротко о главном
Агент по остаткам считает темп продаж, дни запаса и дату обнуления, а потом сравнивает ее с длиной вашей поставки. Средний темп за месяц брать нельзя: на разгоне он занижает риск в два-три раза. Считать надо по нескольким окнам и с учетом тренда.
Там, где остаток не виден, дефицит ловится по обрывам в ряду заказов - это запаздывающий, но рабочий индикатор. Слепые зоны есть всегда: свой склад, товар в пути, возвраты, лаг отмен, резервы. Задача агента - не спрятать их, а назвать.
И последнее: решение по закупке остается за человеком. Агент приносит готовый расчет и основания, чтобы это решение занимало пять минут, а не полдня.
Хочешь увидеть свои цифры так, как их видим мы?
Сделаем мини-отчет на твоих реальных данных за 1-2 рабочих дня. Три находки, конкретные суммы, разбивка по каждой строке в выгрузке. Бесплатно, без обязательств.
Открыть бот @aximaa_bot