Разработка AI-системы прогнозирования времени доставки ETA
Точный ETA (Estimated Time of Arrival) — ключевой показатель качества сервиса в логистике. Клиент, знающий точное время доставки, переносит ожидание в 5× лучше, чем клиент с размытым "завтра до 18:00". ML-система предсказывает ETA с точностью до 15-30 минут вместо часового диапазона традиционных методов.
Источники данных для ETA модели
Маршрутные данные:
- Дистанция маршрута (Google Maps / HERE / OpenStreetMap OSRM)
- Исторические скорости по дорогам в разное время суток
- Геофенсинг точки отгрузки и получателя
Операционные данные:
- Время обработки на складе (pick-pack-ship)
- Текущая очередь на погрузку/разгрузку
- Количество остановок на маршруте до целевой точки
Внешние факторы:
- Погода: дождь/снег/туман увеличивают время на 15-40%
- Дорожные события: ДТП, ремонты, перекрытия (TomTom TrafficStats, HERE Traffic API)
- Временные паттерны: утренний пик 08-10, вечерний 17-19
Архитектура модели
Задача: регрессия — предсказать время от отгрузки до доставки в минутах.
Feature matrix:
features = {
# Маршрут
'distance_km': route_distance,
'n_stops': stops_remaining,
'route_complexity': turns_per_km,
# Время
'hour_of_day': departure_hour,
'day_of_week': departure_dow,
'is_holiday': holiday_flag,
'month': departure_month,
# Трафик
'historical_avg_speed': avg_speed_for_route_time,
'current_traffic_index': live_traffic_score, # 1.0 = нормально, 2.0 = пробки
'weather_delay_factor': weather_impact_estimate,
# Операционные
'shipment_weight_kg': weight,
'vehicle_type': truck_van_bike,
'driver_experience_days': driver_tenure,
# Исторические для этого маршрута
'route_historical_eta': past_mean_eta_for_route,
'route_eta_std': past_std_eta_for_route
}
Модели:
- LightGBM Regressor: основная модель для табличных данных
- Quantile Regression (p10/p50/p90): для ETA с доверительным интервалом
- LSTM: если последовательность промежуточных GPS-точек доступна
Real-time обновление ETA
Статический прогноз при отгрузке — недостаточно. ETA должен обновляться динамически:
Триггеры обновления:
- GPS трекинг курьера каждые 30 секунд
- Обнаружена пробка на маршруте (traffic API polling каждые 5 мин)
- Задержка на предыдущей точке доставки
- Погодное событие
Online learning vs. static model: В production: статическая модель переобучается ежедневно на новых данных. Real-time поправки через кинематическую модель движения (скорость + дистанция → updated ETA) без перезапуска ML-модели.
def update_eta_realtime(current_position, destination, remaining_stops, base_eta, traffic_api):
# Обновлённое расстояние
remaining_distance = calculate_distance(current_position, destination, via=remaining_stops)
# Текущий трафик-фактор
current_speed = traffic_api.get_current_speed(current_position, destination)
historical_speed = get_historical_speed(current_position, destination, datetime.now())
traffic_factor = historical_speed / current_speed
# Обновлённый ETA
remaining_time = (remaining_distance / historical_speed) * traffic_factor * 60 # minutes
return remaining_time
Last Mile vs. Long Haul
Разные задачи требуют разных подходов:
Last Mile (доставка до двери):
- Много остановок на маршруте (10-30+)
- Неопределённость: клиент не открывает дверь, проблемы с парковкой
- Оптимизация маршрута (TSP) интегрирована с ETA
- Горизонт: 1-4 часа, переобновление каждые 15-30 мин
Long Haul (межгородская):
- Одна точка доставки, но большое расстояние
- Факторы: погода на маршруте 500+ км, весовые ограничения
- Горизонт: 1-5 суток
- Мониторинг по GPS трекеру на каждом часу
Уведомления клиентов
ETA бесполезен без интеграции с коммуникационным слоем:
Workflow уведомлений:
- После отгрузки: "Ваш заказ в пути, ожидаемое время: 14:30-15:00"
- За 60 минут до: "Курьер прибудет через ~55 минут"
- За 15 минут до: "Курьер уже близко, прибудет через ~12 минут"
- При задержке > 20% от ETA: автоматическое уведомление с новым временем и причиной
Каналы: SMS (Twilio/SMS.ru), Push-уведомления, Email, WhatsApp Business API.
Метрики системы:
- ETA Accuracy: % заказов доставленных в ±15 мин от ETA
- ETA MAPE: средняя ошибка прогноза в процентах
- Proactive notification rate: % задержек, о которых клиент уведомлён до наступления
- CSAT correlation: корреляция точности ETA с оценкой доставки
Сроки: базовая ETA модель с статическим прогнозом — 3-4 недели. Real-time обновление + клиентские уведомления + метрики — 10-12 недель.







