Расширенная модель потерь от Out-of-Stock: структура, методы оценки, автоматизация анализа
Когда бизнес пытается оценить потери от Out-of-Stock (OOS), чаще всего используется простая формула: продать не смогли — значит, потеряли. Но это лишь верхушка айсберга. На самом деле, потери от отсутствия товара выходят далеко за рамки упущенной выручки. Они затрагивают валовую прибыль, планирование, логистику, торговые условия, работу персонала и, что особенно важно, лояльность покупателя. В этом модуле мы системно опишем расширенную модель потерь, разберём её составляющие, предложим методы расчёта и покажем, как встроить это в автоматизированную архитектуру данных и BI.
Почему простая модель потерь недостаточна
Базовая формула:
Lost Sales = Forecast – Sales (если Stock = 0)
Но она не учитывает:
- влияние на смежные товары
- влияние на категорию
- реакцию клиента
- сбой в цепочке поставок
- потери эффективности промо
- потерянные данные, искажающие аналитику
Поэтому мы строим расширенную модель, которая охватывает все уровни потерь — от операционных до стратегических.
Структура расширенной модели потерь
Классификация потерь по типу:
|
Уровень |
Тип потери |
Описание |
|---|---|---|
|
1 |
Lost Sales |
Упущенные продажи по SKU |
|
2 |
Lost Margin |
Упущенная валовая прибыль |
|
3 |
Lost Promotional ROI |
Потери от неэффективных акций |
|
4 |
Substitution Loss |
Уход покупателя к другому бренду |
|
5 |
Basket Dilution |
Снижение размера корзины |
|
6 |
Data Distortion |
Искажение спроса и прогноза |
|
7 |
Operational Inefficiency |
Дополнительные трудозатраты персонала |
|
8 |
Supply Chain Penalty |
Сбой в планировании поставок |
|
9 |
Lost Loyalty & Lifetime Value |
Потери будущих покупок |
|
10 |
Trade Agreement Impact |
Недовыполнение условий с производителем или сетью |
Формулы и расчеты
Lost Sales
Lost Sales = max(Forecast – Sales, 0), если Stock = 0
Lost Margin
Lost Margin = Lost Sales * Margin_Per_Unit
Lost Promotional ROI
Promo_ROI = (Promo_Sales – Promo_Cost) / Promo_Cost Lost Promo ROI = Promo_ROI * Lost Sales (если акция активна и OOS)
Substitution Loss
Если покупатель заменил товар на более дешевый или менее маржинальный:
Substitution Loss = (Expected Margin – Substituted Margin) * Substituted Qty
Basket Dilution
Средний чек падает, если ключевой товар отсутствует:
Basket Impact = Avg_Basket_Size_All – Avg_Basket_Size_OOS
Data Distortion
Сложно формализовать, но можно замерять MAPE и delta между прогнозом с учетом OOS и без:
Forecast Error Increase = MAPE_OOS > MAPE_Normal
Operational Inefficiency
Дополнительные часы персонала:
Lost Labor Cost = Extra_Hours * Hourly_Rate
Пример: тратить 2 часа в день на ручной пересчёт остатков при OOS
Supply Chain Penalty
Стоимость срочной поставки или перераспределения остатков:
Emergency Logistics Cost = (Cost_per_kg * Distance) + Handling Fee
Lost Loyalty
Оценивается через коэффициент оттока:
Customer_Loss_Value = (CLV_Before – CLV_After) * Lost_Customers
Trade Agreement Impact
Если акция сорвана по вине сети:
Missed Bonus = Trade_Fund * % невыполнения планов
Пример: кейс потерь по SKU KVI_001
Условия:
- Товар отсутствовал 2 дня
- Прогноз продаж: 120 единиц
- Маржа: 15 рублей
- Акция: скидка – 10%, ожидался прирост продаж +20%
- 30% покупателей заменили товар, 20% — ушли
Расчет:
- Lost Sales = 120 – 0 = 120
- Lost Margin = 120 * 15 = 1800 руб
- Promo ROI потерян полностью
- Substitution Loss = 36 * (15 – 8) = 252 руб
- Basket Impact = – 12% к среднему чеку в эти дни
- Emergency Logistics = 1800 руб (аварийная доставка)
- Loyalty Loss: 18 клиентов не вернулись, LTV = 2000 руб → 36 000 руб
Итого потери:
- Прямые (Lost Sales + Margin): 1800 руб
- Косвенные: ~40 000+ руб
BI и автоматизация
Для анализа модели в BI/DWH требуется построить витрины:
- dm_oos_losses_extended — расширенная структура потерь
- dm_oos_behavior_effects — влияние на корзину, лояльность
- dm_oos_trade_agreement — связь с промо и условиями контрактов
Поля:
- SKU_ID, Store_ID, Date
- OOS_Flag, Lost_Sales, Lost_Margin
- Promo_Flag, Promo_Loss
- Substitution_Effect
- Basket_Erosion
- Logistics_Cost
- Churn_Effect
- Trade_Penalty
BI-визуализация:
- Диаграмма потерь по слоям
- Геокарта OOS и финансового влияния
- Дашборд по категориям и SKU
Работа с рисками в расчетах
|
Риск |
Решение |
|---|---|
|
Нет факта замены товара |
Использовать похожие SKU, поведенческие паттерны |
|
Невозможно точно оценить CLV |
Применять средние значения по сегменту |
|
Неизвестны логистические расходы |
Задать стандартные ставки по SKU и региону |
|
Отсутствует промо-поддержка в BI |
Интеграция ERP/CRM и промо-календарей |
|
Ошибки в прогнозе искажают потери |
Сравнение прогноза от разных моделей и периодов |
Потери от Out-of-Stock — это не только цифры в строке продаж. Это многослойная модель убытков, которая охватывает финансы, клиентов, логистику, контракты и аналитику. Построение расширенной модели позволяет:
- Точнее приоритизировать товары и магазины
- Обосновывать бюджеты на решение проблемы
- Повышать доверие к BI и аналитике в компании
- Автоматизировать контроль и устранение проблем
Без такой модели система OOS-управления будет недооценена, а действия — ограничены только продажами. Расширенная модель — это то, что позволяет связать аналитику с бизнесом в цифрах, на языке денег и клиентов.



