Я ошибался с закупкой, когда делил остаток товара на продажи и называл результат оборачиваемостью. Расчёт показывал, насколько примерно хватит склада при прежнем темпе продаж, а я воспринимал его как оценку того, насколько быстро работал запас за прошедший период. После новой поставки показатель резко ухудшался, хотя покупатели не стали заказывать реже. В моих магазинах такая путаница мешала отделить лишнюю закупку от обычного пополнения склада. Поэтому теперь я сначала выясняю, на какой вопрос должно ответить число, и только потом подставляю данные в формулу.
Если нужно оценить прошедший период, я беру средний запас и сопоставляю его с продажами за тот же отрезок времени. Если нужно решить, когда пополнять склад, смотрю на доступный остаток, ожидаемый спрос и срок поставки. Эти расчёты связаны, но подменять их друг другом нельзя. Ниже я покажу, как рассчитать оборачиваемость товара в днях без случайных тарифов, чужих нормативов и выдуманного примера с красивыми числами. Для проверки понадобятся собственные остатки, движение товара и календарные границы периода.
Формула оборачиваемости товара в днях и смысл результата
Для отдельного товара я использую формулу: оборачиваемость в днях = средний запас в штуках × количество календарных дней периода / продажи в штуках за этот период. Тот же расчёт можно записать иначе: средний запас / среднесуточные продажи. Во второй записи лучше видна механика: сколько дней продаж соответствует тому объёму товара, который я в среднем держал на складе. Это характеристика запаса за выбранный период, а не обещание, что каждая конкретная единица продастся за полученное время. У давно лежащей партии и свежего поступления может быть совершенно разный возраст.
Оборачиваемость в разах считается в обратную сторону: продажи за период / средний запас. Она показывает, сколько объёмов среднего запаса прошло через продажи, но без указания периода такое число почти ничего не говорит. Чтобы перевести его в дни, я делю длительность периода на полученную оборачиваемость в разах. Дни мне удобнее для закупки, потому что их можно сопоставить со сроком пополнения, хранения и ожидания следующей партии. При этом пересчёт в дни не делает сезонные периоды автоматически сопоставимыми: спрос внутри них всё равно мог отличаться.
Для группы разных товаров я предпочитаю расчёт в деньгах: средний запас по себестоимости × дни периода / себестоимость проданных товаров. Складывать штуки разнородных товаров неудобно: единица дорогого товара и единица дешёвого получают одинаковый вес, хотя денег требуют по-разному. Оценка остатков и продаж должна опираться на согласованный способ учёта себестоимости. Нельзя поставить в числитель закупочную стоимость, а в знаменатель выручку или выплату от Ozon. Тогда на результат начнут влиять наценка и удержания, хотя скорость движения товара могла вообще не измениться.
Какие остатки и продажи брать и за какой период
Средний запас я считаю по ежедневным остаткам: складываю сопоставимые значения за каждый день и делю на число дней, по которым собраны данные. Снимок должен относиться к одному и тому же моменту суток, например к завершению дня. Среднее между начальным и конечным остатком годится лишь как грубое приближение, если внутри периода не было заметных скачков. Крупная поставка в середине интервала легко делает такое приближение бесполезным. Если ежедневной истории нет, я прямо помечаю расчёт как оценочный, а не выдаю его за точное измерение.
Затем я определяю границы склада, который измеряю. Для оценки размещённого запаса на Ozon беру остатки и продажи именно этого контура, а для оценки вложений во весь товар учитываю также собственный склад и другие относящиеся к нему запасы. Товар в пути, резерв и недоступный к продаже остаток нельзя то включать, то исключать в зависимости от удобства выгрузки. Если считаю доступность для покупателя, отделяю недоступный товар; если оцениваю связанные деньги, не прячу его из расчёта. Название показателя должно объяснять, какой именно запас попал в числитель.
Продажи я беру по состоявшемуся движению товара, согласованному с учётом остатков, а не по количеству созданных заказов. Отменённый заказ не должен ускорять оборот, если товар никуда не ушёл. Возвраты, которые снова пополнили учитываемый запас, требуют обратного движения в расчёте; возвраты на проверке я сначала разбираю по их фактическому состоянию. Для периода выбираю отрезок с достаточно устойчивыми условиями продаж и видимыми циклами пополнения, а не просто удобные даты в календаре. Акцию, сезонный всплеск, длительное отсутствие товара или изменение схемы работы отмечаю отдельно, потому что усреднение способно спрятать причину результата.
Пошаговый расчёт оборачиваемости на своём товаре
Для первой проверки я выбираю товар, по которому понятны поступления, продажи и возвраты. Мне нужен не самый прибыльный артикул, а тот, чьё движение я могу восстановить без догадок. Рядом открываю историю остатков и выгрузку операций за одинаковый период. Если в источниках разные даты признания продажи, сначала выясняю это расхождение. Иначе формула будет выглядеть правильно, но сравнит запас из одного временного интервала с продажами из другого.
- Фиксирую границы расчёта. Выбираю товар, складской контур и даты начала и окончания периода. Считаю календарные дни по принятому правилу включения границ. Проверяю, что каждому дню соответствует снимок остатка, а пропущенная запись не принята за отсутствие товара.
- Сверяю движение запаса. К начальному остатку прибавляю поступления и возвраты, которые действительно вернулись в учитываемый запас. Затем вычитаю выбытия по продажам, списания и перемещения за границы выбранного контура. Полученный конечный остаток сравниваю с выгрузкой, причём списания и перемещения не называю продажами.
- Получаю средний остаток. Складываю ежедневные остатки внутри выбранных границ. Деление на количество наблюдений даёт средний запас при условии, что наблюдения собраны за каждый день. Если история неполная, восстанавливаю её по движениям либо оставляю явную оговорку о неточности.
- Считаю продажи для знаменателя. Из согласованного с остатками объёма продаж вычитаю возвраты, восстанавливающие этот запас, если исходная выгрузка ещё не сделала такого вычитания. Отмены, не приводившие к продаже, сюда не добавляю. Проверяю состав операций, чтобы не вычесть возврат повторно и не смешать разные способы учёта.
- Перевожу средний запас в дни. Умножаю его на число календарных дней периода и делю на полученный объём продаж. Затем проверяю результат обратным действием: умножение оборачиваемости в днях на среднесуточные продажи должно вернуть средний запас. Если чистых продаж нет или возвраты превышают продажи, обычная интерпретация показателя не работает.
Пример оборачиваемости товара в днях можно проверить без подставных сумм и объёмов. Обозначу ваш средний остаток буквой A, продажи за период — Q, а число дней — D: тогда результат равен A × D / Q. Теперь возьмите текущий доступный остаток R и посчитайте R × D / Q — это уже оценка покрытия будущих продаж при сохранении прежнего темпа. Если перед концом периода пришла поставка, значения могут заметно различаться, и само по себе это не ошибка. Первый результат описывает средний запас в прошлом, второй отвечает, на сколько дней примерно хватит доступного товара сейчас.
Ошибка, из-за которой запас кажется здоровее, чем он есть
Особенно опасной я считаю подмену себестоимости продаж выручкой в денежной формуле. Продавец оценивает остаток по закупке, делит его на выручку и получает приятное небольшое число дней. При положительной наценке знаменатель оказывается выше себестоимости проданного товара, поэтому расчёт искусственно ускоряет оборот. Достаточно поднять цену при неизменном количестве продаж, чтобы показатель стал выглядеть лучше. Но коробки от этого быстрее не исчезают, а вложенные в них закупочные деньги не высвобождаются раньше.
Денежное последствие проявляется в следующей закупке: ошибочно быстрый оборот становится аргументом для дополнительной партии. Размер лишнего вложения я считаю отдельно: из заказанного количества вычитаю обоснованную потребность и положительную разницу умножаю на закупочную себестоимость единицы. Это ещё не убыток в полном размере, потому что товар остаётся активом, но деньги уже недоступны для других закупок и обязательств. Расходы на хранение, финансирование или последующую уценку добавляю только по фактическим условиям, без универсальных ставок. Так видно различие между замороженными деньгами и расходами, которые действительно возникли из-за лишнего запаса.
Малое число дней не доказывает, что товаром управляют хорошо. Если склад регулярно пустовал, низкий средний остаток способен создать видимость быстрого оборота, пока магазин терял возможность продавать. Я всегда проверяю наличие рядом с оборачиваемостью и не переношу средний темп продаж такого периода прямо в план закупки. Без этой проверки попытка ещё сильнее сократить запас может усугубить дефицит.
Какая оборачиваемость в днях считается хорошей для маркетплейса
Я не могу честно назвать универсальное число, после которого оборачиваемость становится хорошей для любого товара на Ozon. Быстро пополняемый запас и товар с долгой нестабильной поставкой требуют разных решений. На рабочую величину влияют размер партии, колебания спроса, сезонность, ограничения хранения и деньги, доступные для закупки. Хорошая оборачиваемость товара в днях для меня означает, что запас не разрастается без причины, а доступность при этом сохраняется на принятом уровне. Короткий оборот ценой постоянных перебоев этому условию не соответствует.
Саму историческую оборачиваемость я не приравниваю к сроку поставки и не использую как готовую точку заказа. Для решения о пополнении отдельно оцениваю потребность до момента, когда новая партия станет доступна покупателю, и добавляю обоснованный резерв на неопределённость. Затем вычитаю доступный запас и подтверждённые поступления, которые успеют к нужному моменту, не учитывая их повторно. Подробнее связь этих расчётов я разбираю в статье о том, как я связываю оборачиваемость со сроками поставки. Такой порядок помогает не заказывать лишнее просто потому, что один показатель выглядит тревожно.
Рабочий ориентир я ищу в собственной истории товара, выбирая сопоставимые периоды без длительных провалов наличия. Смотрю, при каком запасе продажи сохранялись, пополнения приходили вовремя, а остаток не накапливался от поставки к поставке. Если оборачиваемость растёт, проверяю отдельно средний запас и темп продаж: причина может находиться в любом из этих компонентов. Для сезонного товара сравнение с недавним спокойным периодом иногда вводит в заблуждение, поэтому учитываю фазу сезона и предстоящий спрос. Без такой истории у меня есть лишь предварительный ориентир, который придётся корректировать по фактическому движению.
Что проверить завтра перед следующей закупкой
Завтра я бы начал с товара, по которому скоро предстоит решение о пополнении. Собрал бы его ежедневные остатки, поступления, продажи и возвраты в одной таблице, а рядом записал границы складского контура и выбранного периода. После сверки движения рассчитал бы средний запас, оборачиваемость в днях и отдельно покрытие текущим доступным остатком. Рядом обязательно оставил бы отметку о перебоях наличия и необычных событиях, иначе через некоторое время причина отклонения забудется. Уже эта проверка покажет, можно ли опираться на результат или сначала нужно исправлять исходные данные.
Когда магазинов несколько, ручная сверка начинает занимать больше внимания, чем само решение о закупке. Я сделал SellOps для своей работы, потому что не нашёл готового сервиса аналитики, которому мог бы доверять. О том, как устроен SellOps, я написал отдельно, но смысл проверки не зависит от выбранного инструмента. Любое рассчитанное значение должно объясняться исходными остатками, составом продаж и границами периода. Если воспроизвести число нельзя, я не использую его как основание для новой поставки.
После расчёта я записываю конкретное действие по товару, а не оставляю в таблице одинокое число дней. При растущем запасе и прежнем спросе пересматриваю следующую партию; при падении продаж сначала ищу причину, вместо того чтобы автоматически ускорять закупку. Если товар отсутствовал, отделяю историческую оборачиваемость от оценки спроса, который склад не смог обслужить. Для контроля повторяю расчёт на следующем сопоставимом периоде с теми же правилами учёта. Начать стоит с такой проверяемой записи по своему товару: откуда взялись данные, что означает результат и какое решение он изменил.
Хотите увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно