Возврат прошёл, товар убыточен: считаем стоимость обратной логистики

Покупатель вернул куртку. В отчёте её выручку сторнировали, деньги покупателю перечислили, а склад снова показывает одну штуку. Кажется, операция закончена. Но вещь нужно осмотреть, перевезти и продать повторно, возможно со скидкой. Иногда восстановление упаковки обходится дороже того, что удаётся вернуть продажей. Для решения нужен расчёт будущего денежного результата каждой доступной судьбы товара.

Отделить уже понесённые затраты от выбора сейчас

Закупка, первая доставка и комиссия за первую покупку уже произошли. Они нужны для полной экономики заказа, но при выборе «перепродать или ликвидировать» важны суммы, которые ещё изменятся от этого решения. Сначала убедитесь, что обязательный осмотр и проверка безопасности проведены; нельзя включать в варианты продажу вещи, которую запрещено возвращать в оборот. Затем сравните только допустимые способы обращения с товаром.

Пусть после осмотра доступны три варианта. Продать как возврат за 1800 рублей: комиссия 180, доставка покупателю 250, обработка 120. Восстановить упаковку за 300 и продать за 2200: комиссия 220, доставка 250, обработка 120. Передать ликвидатору за 1000 с расходом на передачу 50. Цены условные, но расходы согласованы на одной налоговой базе. Осмотр стоимостью 100 уже проведён одинаково для всех вариантов.

Найти лучший остаток денег

Перепродажа без восстановления оставляет 1250 рублей будущего вклада. Восстановление — 1310, ликвидация — 950. При этих условиях выгоднее восстановить упаковку, преимущество над простой перепродажей составляет всего 60 рублей. Теперь видно, какой запас решения: небольшое снижение цены или дополнительная пересылка способны изменить победителя. Сравнение только цен 2200 и 1800 скрывало почти все расходы.

options = {
 'resell': {'price':1800, 'fee_rate':0.10, 'delivery':250, 'handling':120, 'repair':0},
 'repack': {'price':2200, 'fee_rate':0.10, 'delivery':250, 'handling':120, 'repair':300},
 'liquidate': {'price':1000, 'fee_rate':0, 'delivery':50, 'handling':0, 'repair':0}}
net = {name: x['price']*(1-x['fee_rate'])-x['delivery']-x['handling']-x['repair']
       for name,x in options.items()}
best = max(net, key=net.get)
x = options['repack']
minimum_price = (net['resell']+x['delivery']+x['handling']+x['repair'])/(1-x['fee_rate'])
print({'net':net, 'best':best, 'repack_price_to_match':round(minimum_price,2)})
assert net == {'resell':1250.0, 'repack':1310.0, 'liquidate':950}
assert best == 'repack'
assert 2133 < minimum_price < 2134

Проверить сроки и вероятность повторного возврата

Порог цены восстановленной вещи — примерно 2133,34 рубля при денежном округлении вверх. Если реальная цена ниже, восстановление уже уступает простой перепродаже. Но этот порог предполагает, что покупатель найдётся и заберёт товар. Для решения на складе добавьте срок реализации, хранение и вероятность повторного возврата по состоянию товара. Вещь, которую нужно держать полгода, связывает место и деньги иначе, чем быстрая ликвидация.

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

Вернуть расчёт в общую экономику товара

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

Для работы заведите идентификатор возврата и связь с исходной единицей заказа. В отчёте храните состояние, выбранное действие, ожидаемый остаток денег и фактический результат после реализации. Разница между ожиданием и фактом поможет пересмотреть цены и расходы. В нашем примере главная рекомендация — восстанавливать упаковку только при достаточной цене и коротком сроке реализации: преимущество в 60 рублей слишком мало, чтобы принимать решение без этих данных.

Продолжить работу с данными

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

Продолжить на практике

  • Практическая аналитика данных ↗

    Превратите знания SQL или Python в аналитическую работу: проверяйте данные, считайте бизнес-метрики, стройте дашборды и объясняйте выводы на трёх прикладных кейсах.