Анализ out of stock - выявление случаев отсутствия товара на складе или полке
Out of stock (OOS) - ключевой индикатор здоровья цепи поставок и ассортимента. В условиях современных розничных бизнес-моделей дефицит товара может приводить к потере продаж, снижению клиентского доверия и ухудшению эффективности маркетинговых акций. Глава посвящена подходам к анализу OOS в рамках BI DWH для анализа ассортиментной матрицы: от концепций и архитектуры данных до алгоритмов обнаружения, интеграции с процессами управления ассортиментом и практических сценариев внедрения.
В рамках данного раздела рассматриваются взаимосвязи между данными продаж, запасами и спросом, методы измерения и мониторинга доступности товара, а также методы прогнозирования и автоматизации реакции на OOS. Особое внимание уделяется тому, как данные по доступности товара интегрируются в моделирование ассортимента на уровне магазина и сети, чтобы поддержать принятие управленческих решений в области пополнения запасов, substitution и оптимизации ассортимента.
Краткое содержание главы
- Архитектура данных и цепочка обработки для отслеживания OOS: источники, контуры качества и интеграции в DW.
- Математические и операционные метрики OOS, их интерпретация и пороги.
- Алгоритмы обнаружения OOS: правила порогов, статистика и элементы ML, примеры реализации.
- Взаимодействие OOS с ассортиментной матрицей: влияние на подбор SKU, substitutions и политики пополнения.
- Практические аспекты внедрения: процессы контроля качества, мониторинг, роль стейкхолдеров и управление изменениями.
Контекст и цели анализа out of stock
OOS следует рассматривать как состояние, которое может быть вызвано несколькими причинами: отсутствие товара на складе, задержка поставки, несоответствие планируемого спроса и реального спроса, ошибки в учёте запасов и ошибки в исполнении заказов. В рамках BI DWH задача состоит в том, чтобы:
- точно идентифицировать случаи дефицита на уровне магазина и SKU;
- квантить влияние OOS на выручку, маржу и удовлетворённость клиентов;
- выделять сигнал по каждому SKU и по каждому магазину для оперативного реагирования и долгосрочного планирования;
- связать OOS с ассортиментной матрицей: какие товары следует расширить или сузить, как перераспределить запасы между каналами, какие substitution-правила применить.
Ключевые понятия: доступность товара, запас на складе, наличие на полке, время до пополнения, доля обслуживания (service level) и доля продаж, утраченная из-за дефицита. Замеры должны учитывать сезонность, различия между каналами (розничная сеть, онлайн-канал, гипермаркеты и дискаунтеры), а также иные факторы спроса - акции, промо-периоды, погодные условия и т. д. Важной концепцией является различение «реального» OOS и «сокрытого» OOS вследствие задержки данных или несвоевременной синхронизации.
С точки зрения архитектуры это означает создание целостной картины по следующей логике: источники данных по запасам, продажам и поставкам -> единая бизнес-логика расчёта доступности -> слой метрик и предупреждений -> влияние на ассортиментную матрицу и управленческие процессы. Это требует не только технической реализации, но и согласованных правил обработки данных, определения порогов и ролей стейкхолдеров.
Архитектура решения
Архитектура решения должна обеспечивать точную, своевременную и сопоставимую информацию об OOS по всей сети. Основные компоненты:
-
Источники данных. В качестве базовых источников применяются данные ERP/WM о запасах и поставках, POS данные и данные по складам, а также данные по онлайн-каналу и PIM-данные. Важна синхронизация времени (дата, период) и единые семантики товара (SKU, бренд, атрибуты товара) и магазина (Store, Channel, сегмент). Данные по прогнозам спроса и фактическим продажам также должны быть доступны для сравнения с запасами.
-
Обработку данных. В DW/дата-морже применяются подходы ELT/ETL с акцентом на качество и полноту данных. Важны:
- Обычный слой ODS/ staging для первичной нормализации;
- Хранение факт-данных по запасам, продажам и движению запасов (facts: Inventory, StockMovement, Availability) и размерных таблиц DimStore, DimProduct, DimDate, DimChannel и DimSupplier;
- Модели времени и агрегации: суточные, недельные и месячные планы доступности; поддержка временных периодов с историей изменений.
- Контроль качества данных: полнота (absence of key fields), согласованность (consistent product-store mappings), своевременность (lateness of updates) и точность (validation правил).
-
Модели данных и интеграция с ассортиментной матрицей. Для поддержки анализа OOS в контексте ассортиментной матрицы целесообразно связать факты доступности с dims ассортимента и магазина. Это позволяет не только считать OOS по SKU и магазину, но и анализировать влияние дефицита на широту и глубину ассортимента, на планы пополнения и на решения по замещению (substitution). В идеале - реализовать Data Vault или расширенную звездную схему с сущностями: DimProduct, DimStore, DimDate, DimChannel, DimPromotion, FactStock, FactSales, и связь с таблицами ассортимента.
-
Архитектура контроля качества и мониторинга. Встроенные проверки целостности на каждом этапе: полнота записей, соответствие SKU между системами, сопоставление запасов с продажами за одинаковые даты, отслеживание задержек обновления. В мониторинге полезны сигналы по «задержке данных» и «расхождениям» между запасом и продажами.
-
Интеграции и сценарии использования. Решение должно обеспечивать:
- расчёт OOS-метрик в реальном времени/близком к реальному времени;
- передачу сигналов в планирование пополнения и управление ассортиментом;
- сценарное моделирование воздействия изменений ассортимента на OOS и наоборот.
Техническая реализация может опираться на существующий стек: СУБД (например, PostgreSQL, Oracle или аналог), облачные платформы (AWS, Azure, GCP) и BI-слои (табличные модели, OLAP-кубы, Power BI/Looker/Quicksight). В рамках данного раздела целесообразно показать примеры на концептуальном уровне и подчеркнуть принципы совместимости данных и масштабируемости.
Метрики и сигналы OOS
Метрики дают бизнес-раскрытие проблемы и позволяют сравнивать эффективность по магазинам, регионам и каналам. Основные метрики:
- Stock-out rate (уровень дефицита). Доля дней/периодов, когда запас товара на складе или полке равен нулю, относительно общего числа наблюдаемых периодов.
- Fill rate (уровень наполнения). Доля выполненных заказов/продаж без дефекта дефицита за заданный период.
- SLA по доступности. Процент времени, когда товар доступен на полке в рамках заданного окна (например, за день или неделю), с учётом приоритетов.
- Time-to-stock (TTS). Время от момента заказа до поступления на полку, с учётом задержек поставок.
- OOS по сегментам. Разделение по SKU, категории, бренду, магазину, региону; позволяет выявлять узкие места в ассортиментной матрице.
- Затраты и потерянная выручка. Оценка потенциальной выручки, утерянной из-за OOS, с учётом маржинальности и доли рынка.
Пороги и пороговые сигналы должны быть адаптированы под бизнес-процессы и сезонность. Например, для высокомаржинальных SKU можно устанавливать более строгие пороги, в то время как для экспериментальных или промо-товаров - более гибкие. Важно различать «простой» OOS (запас нулевой по всем каналам) и «локальный» OOS (ноль запаса в отдельных магазинах или сегментах). В контексте ассортиментной матрицы полезно также учитывать доступность товара не только в текущий момент, но и в ближайшие периоды (прогнозный OOS).
Алгоритмы обнаружения OOS
Раздел можно рассмотреть как сочетание правил на основе порогов и методов статистического анализа/ML. Основные направления:
-
Правила порогов. Простые и прозрачные правила, которые мгновенно дают сигналы:
- oos_flag = 1, если на складе/на полке запас равен нулю в течение N последовательных периодов и есть потенциально доступный спрос в ближайший период.
- oos_flag по магазинам и SKU может зависеть от динамики спроса и от наличия поставок в ближайшие дни.
-
Анализ соответствия спроса и запасов. Сравнение прогноза спроса с текущими запасами и запасами в пути. Если forecast_demand > on_hand + in_transit на заданный период, сигнал OOS усиливается.
-
Статистические методы и детекция аномалий. Применение простых и устойчивых методов аномалий:
- скользящее среднее и стандартное отклонение по SKU-store за окно W;
- локальные аномалии по заявленной доступности: z-score, Seasonal-Hybrid ESD и др. для выявления странных отклонений от сезонной нормы.
- кластеризация доступности: SKU с аналогичной динамикой спроса и запасов можно кластеризовать и к каждому кластеру подобрать пороги.
-
Модели прогноза и для решений. Применение базовых ML-моделей (регрессия, деревья решений, градиентный бустинг) для предсказания потребности и определения рисков OOS в горизонте; использование прогнозной доли выполнения заказов, чтобы предупредить потенциальный дефицит.
-
Правило на основе substituion и доступности. В контексте ассортимента можно учитывать вероятности замещения (substitution rate) между SKU и добавлять сигнал об OOS, если не удаётся удовлетворить спрос из аналогичных запасов в ближайшей замене. Это помогает в управлении запасами и поддержке ассортимента.
SQL-примеры и кодовые фрагменты следует включать только там, где это действительно помогает объяснить реализацию. Ниже приведены примеры, иллюстрирующие концепции, а не полностью рабочий продакшн-код.
-- Пример простого OOS-флага по каждому SKU в магазине за день
SELECT
s.store_id,
p.product_id,
d.date_id,
CASE
WHEN inv.on_hand = 0
AND inv.is_pending_receipt = 0 THEN 1
ELSE 0
END AS oos_flag
FROM
fact_inventory inv
JOIN dim_store s ON inv.store_fk = s.store_pk
JOIN dim_product p ON inv.product_fk = p.product_pk
JOIN dim_date d ON inv.date_fk = d.date_pk
WHERE
d.date_id = '2026-03-09';
-- Усреднение OOS-уровня по SKU и магазину за месяц
SELECT
store_id,
product_id,
AVG(oos_flag) AS oos_rate
FROM (
SELECT
s.store_id,
p.product_id,
d.date_id,
CASE WHEN inv.on_hand = 0 THEN 1 ELSE 0 END AS oos_flag
FROM
fact_inventory inv
JOIN dim_store s ON inv.store_fk = s.store_pk
JOIN dim_product p ON inv.product_fk = p.product_pk
JOIN dim_date d ON inv.date_fk = d.date_pk
WHERE
d.month_id = '202603'
) t
GROUP BY store_id, product_id;
-- Пример простого прогноза потребности и сигнал к OOS, основанный на сравнении спроса и запасов
SELECT
s.store_id,
p.product_id,
d.date_id,
forecast_demand,
on_hand,
in_transit,
CASE
WHEN forecast_demand > (on_hand + in_transit) THEN 1 ELSE 0
END AS oos_signal
FROM
forecast_demand f
JOIN dim_store s ON f.store_fk = s.store_pk
JOIN dim_product p ON f.product_fk = p.product_pk
JOIN dim_date d ON f.date_fk = d.date_pk;
Иногда достаточно двух-трех простых запросов, чтобы набрать сигналы и начать их агрегацию в ежедневной/еженедельной аналитике. В случае сложных сценариев полезно внедрять пакеты коррекции сезонности, учета праздничных периодов и внешних факторов спроса для повышения точности сигналов.
Интеграция в ассортиментную матрицу и сценарии реагирования
Ассортиментная матрица - это инструмент балансирования глубины и ширины ассортимента по магазинам и сегментам. Анализ OOS становится важной частью её управления, поскольку дефицит влияет на восприятие бренда, лояльность покупателей и экономику магазина.
-
Связь OOS с ассортиментом. Оценка, в каких магазинах и по каким SKU OOS наиболее выражен. Это позволяет принимать решения об изменении широты ассортимента (увеличение/уменьшение количества SKU в сегменте) и глубины (число вариантов одного SKU в разных размерах/моделях). Если OOS устойчив на определенных SKU в сегменте, можно пересмотреть приоритет пополнения или заменить этот SKU на более ликвидный аналог.
-
Политика пополнения. OOS-метрики должны интегрироваться в планы пополнения и поставок. В правилах пополнения можно учитывать:
- критические SKU с высокой маржинальностью и высоким уровнем спроса;
- сезонные товары, для которых OOS больше всего отражается на продажах;
- маржинальные приоритеты: снижать риск дефицита там, где маржа выше, и наоборот - перераспределять запасы.
-
Подходы к substitutions. В сценариях с дефицитом возможно применить управляемые substitutions. Это требует учета совместимости по категории и схожести между SKU, а также влияния на валовую выручку. В DW можно хранить показатели substitution rate по парам SKU и использовать их для автоматизированного предложения альтернатив.
-
Мониторинг и визуализация. В BI-слое аппаратируются dashboards, где отображаются:
- OOS-скоринг по магазинам и SKU;
- топ-10 SKU/магазинов по OOS;
- влияние OOS на выручку и маржу по ассортиментным сегментам;
- динамика во времени и сезонные паттерны.
-
Практические сценарии внедрения. Примеры:
- сценарий A: в магазине определяется повторяющийся OOS по группе SKU в определённой категориальной секции; решения - реорганизация поставок, перераспределение запасов или временная замена на более ходовые аналоги.
- сценарий B: онлайн-канал показывает высокий спрос на конкретный SKU, но запасы нулевые; решение - ускорить поставку или предложить substitutive SKU онлайн.
- сценарий C: сезонная акция приводит к всплеску спроса; внедряется предиктивное пополнение, чтобы снизить вероятность OOS в пик.
Внедрение, качество данных и мониторинг
Эффективное внедрение требует как технических, так и организационных изменений:
-
Качественные требования к данным. Обеспечение полноты и согласованности ключевых полей SKU, магазина, даты и статусов запасов. Важно иметь единый источник истины для запасов, учёта поставок и продаж, чтобы исключить расхождения.
-
Управление данными и данные об источниках. Документация источников, их частота обновления и зависимости. Важно поддерживать lineage, чтобы отслеживать, как данные об OOS попадают в дамбы ассортимента и как это влияет на решения.
-
Мониторинг и оповещения. Настройка порогов для тревог (email/Slack/портал BI) и SLA для исправления ошибок в данных. Регионы с задержками обновления должны получать отдельные сигнальные каналы.
-
Governance и роли. Назначение ответственных за качество данных, подтверждение изменений в ассортиментной матрице и обработку исключений, а также регламент на запрос изменений в SKU и магазинах.
-
Обеспечение масштабируемости. По мере роста ассортимента и числа магазинов схему нужно адаптировать: добавление новых SKU, новых каналов, расширение периодов агрегации и расширение функционала анализа (модели ML, прогнозы спроса, анализ substitution).
-
Обучение и организационные изменения. Внедрение требует поддержки со стороны Merchanising, Supply Chain и IT. Важно обеспечить обучение пользователей работе с сигналами OOS и принятию управленческих решений на основе данных.
Примеры реализации
-
Архитектура процессов интеграции данных должна быть описана в документации проекта: какие источники используются, какие этапы обработки, какие тесты качества данных проводятся.
-
Примеры KPI и слепков по OOS на уровне магазина и SKU в рамках ассортиментной матрицы помогут оперативно увидеть узкие места и приоритезировать работу команды пополнения.
-
Реализация задач в BI-среде: панели с OOS-метриками, картины по магазинам, категории, и сравнение по периодам.
-
Пример комплексного алгоритма обнаружения OOS можно оформить как этапы:
- сбор данных по запасам, продажам, поставкам;
- вычисление базовых метрик (on_hand, in_transit, forecast_demand, oos_flag);
- применение пороговых сигналов и алгоритмов аномалий;
- генерация рекомендаций для ассортимента и пополнения.
Key takeaways
- OOS - критический показатель для эффективного управления ассортиментной матрицей и сбалансированного снабжения. Его анализ требует тесной интеграции данных запасов, спроса и поставок.
- Архитектура решения должна обеспечивать целостность данных, своевременность обновлений и понятные контуры ответственности: DW-слой, ODS, Dim-таблицы иFACT-таблицы по запасам и продажам.
- Метрики должны быть адаптированы к бизнес-целям: пороги и сигналы зависят от сегмента, канала и сезонности. Важно учитывать как локальные OOS, так и глобальные тренды.
- Алгоритмы обнаружения OOS сочетают простые правила порогов и продвинутые методы статистического анализа и ML. Включение прогнозирования спроса и учитывание substitution повышает точность сигналов.
- Интеграция OOS в ассортиментную матрицу позволяет управлять глубиной и широтой ассортимента, перераспределять запасы и формировать разумные политики пополнения и substitutions.
- Внедрение требует внимательного управления качеством данных, мониторинга и организационных изменений: ясные процессы, роли, документирование и обучение сотрудников.
FAQ
- Что такое real OOS и как он отличается от временного дефицита из-за задержки данных?
- Real OOS - ситуация, когда товар отсутствует на полке/складе в реальном времени и недоступен для продажи. Временный дефицит может возникать из-за задержки обновления данных, когда запас уже есть, но система еще не зафиксировала это. В аналитике важно различать оба типа, чтобы правильно калибровать сигналы и не вводить в заблуждение бизнес-пользователей.
- Какие данные являются базовыми для анализа OOS?
- Базовые данные включают запасы на складе и в пути, продажи по SKU и магазину, поставки и даты их ожидаемого поступления, информацию по ассортименту (DimProduct), магазины (DimStore), каналы (DimChannel) и даты (DimDate). Важно также иметь данные по прогнозам спроса и характеристикам товара, чтобы сравнивать спрос и доступность.
- Какие показатели OOS наиболее полезны для принятия решений по ассортиментной матрице?
- Полезны: OOS-скоринг по SKU и магазину, уровень наполнения (fill rate), время до пополнения (TTS), доля доступности по сегментам, а также влияние OOS на выручку и маржу. Анализ substitution-способностей и сценариев перераспределения запасов расширяют возможности принятия решений.
- Как обосновать выбор порогов для сигналов OOS?
- Пороги зависят от бизнес-целей, маржинальности SKU, сезонности и ожидаемой конверсии. Приближайте пороги к реальному влиянию на прибыль: для высокомаржинальных SKU - более строгие пороги; для экспериментальных товаров - гибкие (меньшая чувствительность). Хорошая практика - использовать исторические данные и A/B тестирование для калибровки.
- Какие алгоритмы можно использовать для обнаружения OOS?
- Можно сочетать простые правила порогов с методами оценки аномалий: скользящее среднее, z-скор, Seasonal-Hybrid ESD; регрессионные модели и деревья решений для оценки спроса и запасов; модели классификации для прогнозирования риска OOS по SKU/магазину. Важно периодически обновлять модели и учитывать сезонность.
- Какие организационные изменения требуются для внедрения анализа OOS?
- Необходимо определить ответственных за качество данных и аналитику, выстроить governance и процессы согласования изменений в ассортиментной матрице, наладить мониторинг и оповещения, обучить пользователей работе с сигналами и рекомендациями, а также обеспечить интеграцию с планированием пополнения и substitutions.
- Какие open-source и коммерческие решения полезны для реализации OOS-аналітики?
- В открытом доступе часто применяются базы данных и аналитические инструменты общего назначения (PostgreSQL, Apache Spark) и BI-платформы (например, Metabase, Apache Superset). Коммерческие решения в области BI и планирования запасов часто включают встроенные наборы KPI по доступности, прогнозы спроса и функционал мониторинга запасов. В любом случае выбор должен опираться на требования к масштабируемости, безопасности и интеграции с существующими процессами.
- Что учитывать при внедрении в рамках уже существующей ассортиментной матрицы?
- Важно обеспечить совместимость метрик и семантики SKU и магазинов между системами, определить методику обновления ассортимента и алгоритмы учета substitution; внедрить процесс согласованного принятия решений между Merchandising, Supply Chain и IT; и обеспечить прозрачность в отношении источников данных и логики расчётов.
- Как обеспечить прозрачность и объяснимость OOS-решений для бизнес-пользователей?
- Используйте простые и понятные сигналы: oos_flag, oos_rate, forecast_gap. Включайте пояснения к каждому сигналу, предоставляйте контекст по сезонности и тенденциям, представьте сценарные рекомендации (что сделать в случае определенного сигнала). Дайте возможность пользователям проследить источник данных и логику расчётов в рамках прозрачной документации.
- Какие шаги предпринять на стадии пилота проекта по OOS-анализу?
- Определить целевые SKU и магазины, формализовать бизнес-метрики и пороги, настроить базовую DW-модель и загрузку данных, внедрить простые сигналы OOS в одном регионе или сети, проверить точность и влияние на процессы, затем расширять проект по всей сети и углублять анализ (ML-методы, substitution и сценарное моделирование).
Эта глава охватывает гибридный подход к анализу OOS в BI DWH: концепции, архитектуру, метрики, алгоритмы и практики внедрения в контексте ассортментной матрицы. Применение вышеуказанных методик позволяет не только выявлять дефицит, но и управлять ассортиментом и пополнением так, чтобы минимизировать потери продаж и повышать удовлетворенность покупателей.



