25 августа 2026 г.
Умный прогноз спроса: тренд, сезонность и аномалии
До этого обновления «Поставки FBO/FBS» считали рекомендуемое количество одним способом: берём сумму проданных штук за выбранный период, делим на число дней — получаем «среднюю скорость продаж», умножаем на горизонт (7/14/28/56 дней), вычитаем текущий остаток. Просто, прозрачно, и... слепо к тому, что происходит с продажами на самом деле.
Если товар последнюю неделю продаётся вдвое быстрее, чем в начале месяца, плоское среднее это не заметит — оно одинаково взвешивает и старые, и свежие дни. Если у товара есть свои «горячие» дни недели (например, по субботам берут заметно активнее), среднее размажет это по всем дням поровну. А один разовый крупный опт — заказ на 200 штук вместо обычных 10-15 — задерёт среднее на весь период вперёд, хотя это не про органический спрос вообще.
Как считаем теперь
Три фактора, в таком порядке.
- Тренд — линейная регрессия по ежедневным продажам за выбранный период, спроецированная вперёд. Не «допустим, завтра будет как в среднем», а «допустим, завтра продолжится та же траектория». Если данных мало (период короче 14 дней или меньше 5 дней с хоть какими-то продажами), тренд не считается — используется обычное среднее, и это честно помечено в интерфейсе как «мало данных», а не выдаётся за уверенный прогноз.
- Сезонность — коэффициент по каждому дню недели, посчитанный за тот же период. Понедельник ли, суббота — если для конкретного товара по факту есть разница, прогноз на конкретный будущий день её учитывает, а не усредняет всё в одну цифру.
- Аномалии — день считается аномальным, если продано больше чем в 3 раза выше 90-го перцентиля обычных дней для этого товара (или на 20+ штук больше — для совсем низких объёмов). Такой день не участвует в расчёте тренда и сезонности — он капается до порога, — но и не замалчивается: он отдельно показан в интерфейсе с датой, фактическим количеством и «типичным» уровнем, чтобы было видно, что произошло.

Почему порог аномалии именно такой
Первая версия использовала стандартный статистический метод — модифицированный z-score по медиане и медианному абсолютному отклонению. На бумаге это надёжный, широко используемый способ ловить выбросы. На реальных данных сервиса он пометил около 13% всех дней как «аномальные» — то есть почти каждый седьмой день. Для товаров с неравномерным, «рваным» спросом (типичная картина для маркетплейса: то ноль продаж, то всплеск) обычная статистика видит аномалию там, где на самом деле просто нормальная волатильность спроса.
Порог в 3 раза выше 90-го перцентиля оказался куда точнее: на 90 днях реальных данных сервиса он не дал ни одной ложной аномалии, при этом уверенно поймает настоящий разовый опт, который выбивается далеко за пределы даже самых «бойких» обычных дней.
На каком уровне считается
Тренд и сезонность считаются по товару целиком, по всем складам сразу — у одного отдельного склада или кластера обычно слишком мало продаж, чтобы надёжно поймать тренд именно там. Дальше эта общая цифра распределяется по кластерам пропорционально тому, какую долю продаж этого товара исторически даёт каждый кластер, и уже на уровне конкретного кластера вычитается его собственный текущий остаток.
Итог: «Реком.» в листе сборки и в таблице поставок — это не «сколько продавали в среднем», а «сколько, скорее всего, продадим, если тенденция продолжится» — с честной пометкой, где данных не хватает и что было исключено как разовый выброс.
Хочешь увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно