Введение

Маршруты в доставке — это не “рисуем линию на карте”. Это ежедневная борьба с физикой, временем и человеческими привычками. Пробки, окна клиентов, парковка, погрузка-выгрузка, неожиданные переносы и вечное “мы будем после обеда” — всё это превращает хороший план в плохой, если он не учитывает реальность. Зато грамотное планирование даёт быстрый эффект: меньше пробег, ниже расход топлива, больше доставок на машину/смену, меньше простоев на точках.

Типовая ошибка новичков — пытаться оптимизировать только километры. В городской логистике дороже обычно минуты, а не метры. Поэтому ниже — практичный разбор ключевых метрик, подходов и пошаговый алгоритм внедрения планирования маршрутов так, чтобы оно снижало затраты, а не добавляло операционную драму.

Базовые понятия и критерии выбора

1) Пробег (distance) и “пустой пробег”
Пробег — суммарные километры маршрута. Пустой пробег — километры без полезной работы (без доставок/загрузки). Измеряется км/смена и % пустых км. Важно, потому что пустые километры — это топливо и время без выручки.

2) Время на остановку (stop time)
Сколько минут уходит на одну точку: подъезд, парковка, подписание, ожидание, перенос. Измеряется минутами по каждому типу точки. Важно, потому что снижение stop time часто даёт больший эффект, чем “срезать 5 км”.

3) Окна доставки (time windows)
Временные интервалы, когда клиент принимает груз. Измеряются как диапазоны времени и “жёсткость” окна. Важно, потому что жёсткие окна ломают идеальную геометрию маршрута и создают простои.

4) Ёмкость ресурса (capacity)
Ограничения по весу/объёму, количеству мест, времени смены, числу точек, температурным режимам. Измеряется лимитами и фактом загрузки (utilization). Важно, потому что перегруженный план = срывы, штрафы, переработки.

5) SLA/OTIF и стоимость на успешную доставку
OTIF — “вовремя и полностью”. Стоимость на успешную доставку — затраты на одну доставку, которая реально состоялась. Важно, потому что самый “красивый маршрут” бесполезен, если вы не успеваете в окна или получаете много недоставок.

6) Простой
Время, когда машина/курьер стоит и не двигает процесс: ожидание на складе, у рампы, у клиента. Измеряется минутами и причинами. Важно, потому что простой — это оплачиваемое время без результата. Экономика это ненавидит.

Что оптимизируем Метрика Что чаще всего мешает
Пробег км/смена, % пустых км Разброс адресов, плохая кластеризация
Топливо л/100 км, л/смена Пробки, холостой ход, стиль вождения
Простои мин/точка, мин/смена Окна, очереди на рампе, ожидание клиента
Производительность доставок/смена Длинные stop time, неудачные последовательности

Подходы и решения

Вариант 1

Ручное планирование + простые правила (для небольших объёмов)

Когда подходит: до ~20–40 точек в день на одну-две машины, стабильная география, опытный диспетчер, мало жёстких окон.

Плюсы: быстро; не требует дорогого ПО; легко учитывать “человеческие знания” (где парковаться, какие подъезды сложные).

Ограничения: плохо масштабируется; качество зависит от одного человека; сложно анализировать данные системно.

Риски: маршруты “как привыкли” становятся традицией, а традиции редко оптимальны.

Вариант 2

Алгоритмическое планирование (TMS/route optimization) + контроль исполнения

Когда подходит: десятки и сотни точек в день, несколько машин, много окон, высокая стоимость ошибок, нужно масштабирование.

Плюсы: лучше оптимизация по времени и пробегу; прозрачная аналитика; проще пересчитывать маршруты при изменениях.

Ограничения: требует качественных данных (адреса, окна, сервисное время); нужна дисциплина исполнения.

Риски: если данные плохие, алгоритм будет оптимизировать мусор. Это не вина алгоритма, это его работа.

Критерии выбора

Пошаговая инструкция внедрения

Подготовка

Исполнение

  1. Кластеризация: группируйте точки по зонам, чтобы снизить “перелёты” между районами. Контрольная точка: минимум пересечений маршрутов разными машинами.
  2. Построение последовательности: внутри зоны расставляйте точки так, чтобы учитывать окна и сервисное время. Контрольная точка: жёсткие окна стоят “якорями”, остальное подстраивается.
  3. Балансировка нагрузки: распределите точки по машинам по времени, а не только по километрам. Контрольная точка: нет маршрутов, которые заведомо не влезают в смену.
  4. План по простоям: заранее закладывайте типовые ожидания у рамп/клиентов и управляйте ими окнами. Контрольная точка: простой уменьшается не героизмом, а правилами.
  5. Контроль исполнения: сравнивайте план/факт, фиксируйте отклонения и их причины. Контрольная точка: причины повторяются — значит, это не “случайность”, а задача.

Оценка результатов

Кейсы или микро-примеры

Сценарий 1: исходные данные — 3 машины, 120 точек в день, маршруты собирали “по привычке”, пробег и топливо росли. Действия — ввели зонирование города, закрепили зоны за машинами, добавили сервисное время на типы точек и начали анализ план/факт. Результат — пробег снизился, а число доставок на машину выросло без переработок.

Сценарий 2: исходные данные — много простоев у магазинов из-за очередей на рампе. Действия — договорились о более узких окнах приёмки, распределили точки по времени, добавили правило “раньше не приезжать” (да, иногда это тоже оптимизация). Результат — простой снизился, а график стал стабильнее. Мы работаем в этой сфере более 13 лет, и честно: иногда самый большой выигрыш — не в маршруте, а в том, чтобы перестать приезжать туда, где вас всё равно не примут.

Частые ошибки и как их избежать

Мини-FAQ

1) Что даёт больший эффект: оптимизация пробега или сокращение простоев?
Часто — сокращение простоев и времени на остановку. В городских доставках время обычно дороже километров. Но лучше считать по факту: если у вас длинные плечи между районами, пробег тоже может быть главным.

2) Можно ли планировать маршруты без специального ПО?
Можно, если объёмы небольшие и есть дисциплина данных. Но как только растёт число точек, появляются окна и “динамика дня”, ручное планирование начинает съедать время и давать нестабильный результат.

3) С чего начать, если сегодня полный хаос?
С трёх вещей: нормализовать адреса, ввести типы точек (и их сервисное время), фиксировать план/факт с причинами отклонений. Эти базовые данные — топливо для любой оптимизации. Без них оптимизировать нечего, только гадать.