AI Delivery ETA Prediction System Development

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Delivery ETA Prediction System Development
Medium
~1-2 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823
  • image_logo-aider_0.jpg
    AIDER company logo development
    762
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    848

Разработка 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 уведомлений:

  1. После отгрузки: "Ваш заказ в пути, ожидаемое время: 14:30-15:00"
  2. За 60 минут до: "Курьер прибудет через ~55 минут"
  3. За 15 минут до: "Курьер уже близко, прибудет через ~12 минут"
  4. При задержке > 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 недель.