AI-управление складом запасных частей (Aftermarket)
Управление складом запчастей — задача с сотнями тысяч SKU, резко асимметричным распределением продаж (ABC-анализ), критическими сроками доставки и высокой стоимостью ошибок (stockout критической детали = простой автомобиля клиента). ML-подходы снижают уровень запасов на 15-25% при сохранении или улучшении сервисного уровня.
Особенности aftermarket-инвентаря
Структура спроса:
- Класс A (20% SKU, 80% оборота): частые продажи, стабильный спрос → классические методы планирования
- Класс B (30% SKU, 15% оборота): нерегулярный спрос → Croston's method, INARMA
- Класс C (50% SKU, 5% оборота): редкий/единичный спрос → bootstrap или empirical методы
Intermittent Demand — главная сложность: Большинство деталей продаётся нечасто. ARIMA и Prophet здесь не работают.
from statsforecast.models import CrostonOptimized, IMAPA, TSB
# Croston: раздельное прогнозирование размера и частоты продаж
# TSB (Teunter-Syntetos-Babai): улучшение Croston для устаревающих деталей
models = [
CrostonOptimized(),
IMAPA(), # Intermittent Multiple Aggregation Prediction Algorithm
TSB(alpha_d=0.1, alpha_p=0.1)
]
Прогнозирование спроса на запчасти
Park-driven forecast: Спрос = парк автомобилей × вероятность замены детали:
def park_based_forecast(part_number, region):
# Парк совместимых автомобилей в регионе
applicable_models = parts_catalog.get_applicable_models(part_number)
park = vehicle_registration_db.count(
models=applicable_models,
region=region,
age_range=(2, 20) # лет
)
# Failure rate по возрасту (U-образная кривая или линейный рост)
failure_curve = get_failure_rate_curve(part_number)
# Свёртка: распределение парка по возрасту × failure rate
expected_demand = sum(
park[age] * failure_curve[age]
for age in range(2, 21)
) / 12 # per month
return expected_demand
Сезонность:
- Аккумуляторы: пик октябрь-ноябрь (перед зимой), пик февраль-март (отказы в мороз)
- Шины: выраженные пики апрель и октябрь (переобувка)
- Тормозные колодки: равномерно, небольшой летний пик (отпуска, длинные поездки)
- Фильтры: привязка к ТО циклам → пик весной
Safety Stock оптимизация
Newsvendor model для деталей:
from scipy.stats import norm, poisson
def optimal_safety_stock(mean_demand, std_demand, lead_time_days,
service_level=0.95, holding_cost_rate=0.25,
stockout_cost=50.0):
"""
Оптимальный SS при несимметричных затратах
"""
# Critical ratio
cu = stockout_cost # стоимость дефицита
co = holding_cost_rate * unit_cost / 365 # стоимость хранения в день
critical_ratio = cu / (cu + co)
# Safety stock через z-factor
z = norm.ppf(critical_ratio)
demand_during_lt = mean_demand * lead_time_days
std_during_lt = std_demand * np.sqrt(lead_time_days)
safety_stock = z * std_during_lt
reorder_point = demand_during_lt + safety_stock
return safety_stock, reorder_point
Differentiated service levels:
- Критические детали (immobilizing failure): target SL 98-99%
- Стандартные расходники: 93-95%
- Медленные детали C-класса: 85-90%
Управление устаревающими деталями
Phase-out Management: Снятые с производства модели → спрос на детали постепенно угасает. TSB-модель хорошо справляется с убывающим спросом.
def detect_obsolescence_risk(part_number, sales_history):
"""
Признаки надвигающегося EOL (End of Life) спроса:
- 12-месячный тренд продаж отрицательный
- Соответствующие модели автомобилей выводятся из эксплуатации
- Доля парка данных авто снижается
"""
trend = np.polyfit(range(len(sales_history)), sales_history, 1)[0]
park_decline = get_park_trend(part_number)
if trend < -0.1 and park_decline < -0.05:
return 'phase_out', suggest_final_buy_quantity(part_number)
return 'active', None
Final Buy: Перед прекращением производства — расчёт оптимального финального заказа: сколько держать ещё 5-7 лет гарантийного и послегарантийного обслуживания.
Multi-echelon: OEM → Дистрибьютор → Дилер
Интегрированное планирование:
OEM централизованный склад (DC)
↓ lead time 7-14 дней
Региональный дистрибьютор
↓ lead time 1-3 дня
Дилерский склад
↓ немедленно / overnight
Клиент
Оптимизация safety stock на каждом уровне с учётом downstream demand variability (bullwhip effect). Увеличение буфера на уровне дилера → можно снизить страховой запас дистрибьютора.
Vendor Managed Inventory (VMI): Дистрибьютор управляет запасами дилерского склада: видит остатки и продажи в реальном времени → автоматические пополнения.
Возвраты и кросс-докинг
Core Returns (ядра агрегатов): Стартеры, генераторы, рулевые рейки: выдаётся новая деталь → возвращается восстановленное ядро → переработка. ML-прогноз возвратов важен для планирования производства восстановленных деталей.
Аварийное кросс-докинг: Критическая деталь есть у другого дилера в радиусе 50 км. Автоматический трансфер через платформу vs. заказ у дистрибьютора.
Сроки: ABC-анализ + Croston/TSB для intermittent + safety stock оптимизация + дашборд — 4-5 недель. Park-based forecast + phase-out management + multi-echelon оптимизация + VMI-интеграция — 3-4 месяца.







