Surrika

Оборачиваемость запасов по категориям за 12 месяцев

Оборачиваемость категории считают по себестоимости: себестоимость проданных товаров за 12 месяцев делят на среднюю стоимость остатка на складе за те же месяцы. Число оборотов показывает, сколько раз средний запас категории ушел со склада за год, а 365 делить на обороты дает дни запаса. У мебельного магазина расчет идет на продажах и месячных остатках с 2024 по 2025 год.

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

Как считать

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

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

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

Сколько оборотов в год делает каждая категория мебели и где запас лежит на складе дольше всего?

Оборачиваемость запасов по категориям, оборотов в год

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

WITH p AS (
  SELECT (SELECT max(date) FROM sales) - INTERVAL 12 MONTH AS start_date,
         (SELECT max(date) FROM sales) AS end_date
),
sp AS (
  SELECT s.category AS category,
         sum(s.cost_of_goods) AS cogs_12m,
         sum(s.units) AS units_sold
  FROM sales s CROSS JOIN p
  WHERE s.date > p.start_date AND s.date <= p.end_date
  GROUP BY s.category
),
st_month AS (
  SELECT k.category AS category,
         k.date AS date,
         sum(k.value) AS stock_value
  FROM stock k CROSS JOIN p
  WHERE k.date > p.start_date AND k.date <= p.end_date
  GROUP BY k.category, k.date
),
st AS (
  SELECT category,
         avg(stock_value) AS avg_stock_value
  FROM st_month
  GROUP BY category
)
SELECT sp.category AS category,
       round(sp.cogs_12m) AS cogs_12m_rub,
       round(st.avg_stock_value) AS avg_stock_value_rub,
       round(sp.cogs_12m / nullif(st.avg_stock_value, 0), 2) AS turnover_times,
       round(365 / nullif(sp.cogs_12m / nullif(st.avg_stock_value, 0), 0)) AS days_of_stock,
       sp.units_sold AS units_sold
FROM sp
JOIN st ON sp.category = st.category
ORDER BY turnover_times
LIMIT 30

Как считается оборачиваемость запасов по категориям

Оборачиваемость показывает, сколько раз за период запас категории полностью продается и закупается снова. Считайте ее по себестоимости: сумму себестоимости проданных товаров за 12 месяцев делите на среднюю стоимость остатка на складе за те же месяцы. Обе величины берите в рублях и за один период, тогда цифры сопоставимы между Диванами, Кроватями, Кухнями, Шкафами и Освещением. Результат выражается в оборотах за год: значение 2 значит, что средний запас категории уходит со склада дважды за год. Дни запаса получаются делением 365 на число оборотов, это тот же показатель в более понятной единице.

Откуда брать данные для расчета оборачиваемости

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

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

Сравнивайте категории между собой за одинаковый период и в одной единице. Категория с оборотом 1 держит запас на 365 дней, категория с оборотом 6 оборачивает его примерно за 61 день. Низкие обороты при большой стоимости остатка означают залежалый запас: деньги лежат на складе и не работают. Высокие обороты говорят о риске дефицита, если следующая поставка идет долго. Смотрите показатель вместе с выручкой категории, потому что медленная категория может давать большую часть прибыли.

Что делать с залежалыми категориями

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

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

Считают по выручке

Выручка содержит наценку, остаток идет по себестоимости. Обороты получаются завышенными. Берите обе части расчета в себестоимости, тогда категории с разной наценкой сравнимы.

Берут остаток на одну дату

Склад на 31 декабря после предновогоднего всплеска не отражает год. Усредняйте стоимость остатка по всем месяцам окна, иначе результат зависит от одной даты.

Считают за один месяц

В коротком окне сезонность мебели ломает сравнение: в низкий сезон обороты падают у всех категорий. Берите 12 месяцев и одно окно для всех категорий.

Не учитывают возвраты

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

Вопросы

Как посчитать оборачиваемость запасов по категориям?

Себестоимость проданных товаров за 12 месяцев разделите на среднюю стоимость остатка за те же месяцы. Получите число оборотов за год, а 365 делить на него даст дни запаса.

В чем считать оборачиваемость, в рублях или в штуках?

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

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

Последние 12 месяцев от последней даты продаж. Короткое окно усиливает сезонные колебания, длинное смешивает старые цены с текущими.

Какие запасы считать залежалыми?

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

Как перевести обороты в дни запаса?

Разделите 365 на число оборотов за год. Результат покажет, на сколько дней продаж хватает среднего остатка категории.

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

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

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

По теме

Все задачи