Surrika

Неликвидные товары на складе: как найти по остаткам и продажам

Неликвид это артикул, который лежит на складе и почти не продается последние 12 месяцев. Считаем остаток на последний день месяца, вычитаем возвраты и сравниваем проданные штуки с порогом в 2 штуки. На выходе список артикулов с замороженной стоимостью остатка.

Продажи и ассортимент

Как считать

  1. Берем последний снимок остатков и артикулы с остатком больше нуля штук.
  2. За 12 месяцев до последней даты в продажах суммируем проданные штуки и вычитаем возвраты.
  3. Сравниваем чистые продажи с порогом в 2 штуки и оставляем позиции, где продаж меньше порога.
  4. Считаем стоимость остатка по себестоимости и сортируем артикулы по этой сумме.
  5. Выводим 30 самых дорогих позиций с датой последней продажи.

Расчет на выгрузках магазина

Пример посчитан на выгрузках вымышленного мебельного магазина: продажи сайта и трех маркетплейсов, реклама, сделки CRM и остатки за 2024-2025 годы.

Какие артикулы лежат на складе без продаж и сколько денег в них заморожено за последние 12 месяцев?

Стоимость неликвида по артикулам, руб.

SQL, по которому посчитано

WITH last_stock AS (
    SELECT sku, category, units, value AS stock_value
    FROM stock
    WHERE date = (SELECT max(date) FROM stock)
),
sales_12m AS (
    SELECT sku,
           sum(units) - sum(returned_units) AS sold_units,
           sum(revenue) - sum(returned_revenue) AS revenue,
           max(date) AS last_sale_date
    FROM sales
    WHERE date > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
    GROUP BY sku
),
names AS (
    SELECT sku, max(product) AS product
    FROM sales
    GROUP BY sku
)
SELECT s.sku,
       n.product,
       s.category,
       s.units AS stock_units,
       round(s.stock_value) AS stock_value,
       coalesce(sa.sold_units, 0) AS sold_units_12m,
       round(coalesce(sa.revenue, 0)) AS revenue_12m,
       sa.last_sale_date
FROM last_stock s
LEFT JOIN sales_12m sa ON sa.sku = s.sku
LEFT JOIN names n ON n.sku = s.sku
WHERE s.units > 0
  AND coalesce(sa.sold_units, 0) <= 2
ORDER BY stock_value DESC
LIMIT 30

Откуда берутся цифры

Остатки хранятся месячными снимками на последний день каждого месяца, для расчета берем самый свежий снимок. Продажи записаны по дням, каналам и артикулам, в них есть штуки, выручка и возвраты. Название товара подтягиваем из любой строки продаж по этому артикулу, даже если за последний год продаж не было. Категория берется из остатков. Данные магазина закрывают период с 2024-01-01 по 2025-12-31, последняя дата в продажах задает границу окна анализа.

Как считать неликвид по остаткам и продажам

Окно анализа: 12 месяцев до последней даты в продажах. За это окно складываем проданные штуки и вычитаем возвраты, выручку суммируем за вычетом возвратной. Артикул попадает в список, если на последнем снимке остатка у него больше нуля штук, а чистых продаж за год 2 штуки или меньше. Порог в 2 штуки для мебели означает, что товар выпал из оборота. Стоимость остатка по себестоимости показывает, сколько денег заморожено в каждой позиции.

Как читать результат

Строки отсортированы по стоимости остатка, сверху самые дорогие залежи. Нулевые продажи при остатке в 5-10 штук означают, что товар не берут ни на сайте, ни на маркетплейсах. Дата последней продажи показывает, когда артикул уходил в последний раз, и помогает отличить свежий завоз от старой партии. Если продажи были, но слабые, сравните проданные штуки с остатком: превышение остатка над годовыми продажами в 4 раза и больше говорит о медленном обороте.

Что делать с выводом

По самым дорогим позициям считайте скидку от себестоимости с поправкой на комиссию площадки и логистику. Артикулы с остатком 1-2 штуки проще распродать через сайт или шоурум, чем платить за хранение. На закупку таких позиций ставьте стоп до полной распродажи остатка. Через месяц повторите расчет: снимок остатков обновится, и вы увидите, ушла ли позиция после скидки.

Частые ошибки

Смотреть продажи за последний месяц

В мебели месяц без сделок ничего не значит. Окно в 12 месяцев закрывает сезонные колебания, короткое окно загоняет в неликвид ходовые диваны после тихой недели.

Ранжировать список по штукам

Три светильника и три кухни дают разную заморозку. Сортируйте по стоимости остатка, тогда в работу первыми попадут самые дорогие залежи.

Смешивать снимки остатков разных месяцев

Остаток перестает биться с продажами, и расчет теряет смысл. Берите один снимок на последний день месяца и одно окно продаж.

Не вычитать возвраты

Возвраты съедают продажи и возвращают товар на склад. Считайте чистые штуки, вычитая возвраты из проданного, иначе часть неликвида останется незамеченной.

Вопросы

Какой период брать для поиска неликвида?

12 месяцев до последней даты в данных. Такой срок закрывает сезонные колебания мебели и отсекает случайные всплески продаж.

Какой остаток считается неликвидом?

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

Нужно ли учитывать рекламу?

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

Как часто пересчитывать список?

Раз в месяц, после обновления снимка остатков. Так вы увидите, уходит ли позиция после скидки или остается на складе.

Посчитайте это на своих выгрузках

Бросьте выгрузки на доску Surrika и задайте вопрос обычными словами. Ответ придет графиком, а под ним будет SQL, по которому он посчитан.

14 дней бесплатно, карта не нужна.

По теме

Все задачи