Оптимизация маршрутов
Оптимизация последней мили: как составить план дня, который выдержит смену
Оптимизация последней мили — это работа по превращению списка адресов в план, который живая команда действительно способна отработать за живой день: с пробками, временными окнами, обедом и клиентом, которого нет дома. Это самый дорогой участок всей цепочки и единственный, который вообще видит конечный получатель. Разбираем, на что здесь на самом деле уходят деньги, что движок оптимизации решает, а что нет, и как перейти от собранного вручную плана к автоматическому, не останавливая операционку на полгода.
Почему последняя миля — самый дорогой участок
Перевезти паллету через всю страну — задача решённая: большие объёмы, мало остановок, предсказуемое расписание, стоимость размазана по сотням единиц товара. Финальный участок переворачивает каждое из этих свойств. Каждая посылка едет к своей двери, каждая дверь съедает несколько минут рабочего времени человека, и стоимость этих минут делится на один заказ, а не на тысячу.
Три структурных факта заставляют этот участок вести себя иначе, чем всё, что выше по цепочке:
- Расходы считаются на визит, а не на километр. Два адреса в одном подъезде почти ничего не добавляют к смете; два адреса на разных концах города стоят часа. Расстояние важно, но порядок объезда важнее.
- Мощность — это люди, а люди неэластичны. В смене фиксированное число рабочих часов. Нельзя добавить десять процентов часов в пять вечера, поэтому план, который не укладывается, просто превращается в несостоявшиеся визиты.
- Это единственный участок, который видит клиент. Пропускная способность склада невидима, а сорванное двухчасовое окно — нет. Качество сервиса именно здесь влияет на повторные заказы так, как не влияет ни один другой этап.
Поэтому небольшие улучшения в планировании окупаются тут быстро. Сокращённый простой между точками экономит не только топливо — он укладывает больше закрытых заявок в ту же оплаченную смену, а это и есть цифра, которая на самом деле интересует финансовый отдел.
Где на самом деле теряются деньги
Прежде чем покупать движок, стоит понять, на чём теряет текущий день. У большинства команд утечки не экзотические — это одни и те же четыре, и они накладываются друг на друга.
- Несбалансированный план. Один курьер заканчивает в два часа дня, другой в восемь вечера ещё в полях. На доске планирования перекос не виден, а в отметках о закрытии заявок очевиден.
- Метания по району. Собранные вручную маршруты обычно зигзагами пересекают район, потому что диспетчер выстраивал их в порядке поступления заказов, а не в порядке, который диктуют улицы.
- План и день расходятся. Утренний план — это гипотеза. Новые срочные заказы, поломка, клиент, который перенёс визит, — к полудню бумажная версия описывает день, которого уже нет, и никто не перепланирует, потому что руками это час работы.
- Несостоявшиеся визиты. Самая дорогая строка: курьер доехал, подождал и вернулся с посылкой. Поездка оплачена дважды, а клиент недоволен один раз.
У этих утечек общая причина. Диспетчер вручную и в цейтноте решает задачу, число возможных ответов в которой растёт быстрее, чем их можно перебрать. Двадцать точек выстраиваются в большее число последовательностей, чем секунд прошло с начала Вселенной; человек выбирает правдоподобный вариант и идёт дальше. Правдоподобный обычно далёк от хорошего, и насколько именно — никто никогда не узнаёт, потому что сравнивать не с чем.
Что именно решает движок оптимизации
Формально это задача маршрутизации транспорта (vehicle routing problem): есть набор адресов, набор машин или выездных сотрудников и набор ограничений — нужно найти распределение и порядок объезда, при которых работа выполняется с наименьшими издержками. Задача хорошо изучена, для неё существуют зрелые решатели, и современные системы планирования строятся на них, а не на самописных эвристиках.
На практике важно другое: движок оптимизирует под ваши ограничения, а не под учебник. Рабочий план обязан уважать всё то, что диспетчер сегодня держит в голове:
- Временные окна. Интервал, согласованный с клиентом, и рабочие часы смены.
- Вместимость. Что влезает в машину и сколько заявок человек реально закрывает за день.
- Правила назначения. Навыки, оснащение, районы, клиент, который требует одного и того же мастера.
- Время обслуживания на точке. Передача у двери и монтаж — разные события, и план, который считает их одинаковыми, поедет ещё до обеда.
В itlogist движок маршрутизации построен на OR-Tools и учитывает окна доставки и ограничения при построении плана — вместе с операционной частью дня: приёмом заказов и распределением по выездным сотрудникам, живыми маршрутами на карте и подтверждением выполнения на месте. Если нужна общая картина того, как это собирается вместе, посмотрите раздел Маршрутизация в itlogist.
Чего движок не решает — так это данных. Если время обслуживания взято с потолка, адреса не выверены, а половина заказов приходит по телефону в одиннадцать утра, оптимальный план на таком входе всё равно развалится — просто развалится более организованно.
Временные окна: ограничение, которое определяет план
Ничто не формирует маршрут так сильно, как обещание, данное клиенту. Широкое окно даёт свободу группировать точки географически; узкое жёстко задаёт последовательность и способно дважды за день прогнать курьера через весь город. Это рычаг, который большинство команд настраивает в последнюю очередь, а настраивать его надо первым.
Из того, как решатели обращаются с окнами, следует несколько практических правил:
- Узкое окно — платная услуга, а не настройка по умолчанию. Каждый час, отрезанный от обещания, где-то стоит машино-часов. Продавайте точность там, где клиент её ценит, вместо того чтобы обещать её всем и срывать.
- Окна нужно предлагать от реального плана. Слот, про который система знает, что он достижим, стоит дороже слота, который оператор придумал, чтобы закрыть звонок.
- Смешанные окна лучше однородных. День, где часть точек гибкая, даёт движку запас, чтобы обойти жёсткие. Если срочно всё, оптимизировать нечего.
- Мерьте попадание в окно, а не только выполнение. Заказ, доставленный вне своего интервала, — это одновременно закрытая заявка и нарушенное обещание, а в проценте выполнения видно только первое.
Вторая половина обещания — рассказывать клиенту, что происходит. Личный кабинет с актуальными статусами снимает большую часть звонков, в которых спрашивают только «когда», — а именно эти звонки и отрывают диспетчера от управления днём.
Смена после плана: контроль, исключения, подтверждение
План — это допущение о следующих восьми часах. Оптимизация окупается, только если допущение отслеживают и корректируют, поэтому экран планирования и экран исполнения должны быть одной системой. Эту нагрузку несут три вещи.
- Живые маршруты на карте. Диспетчер видит, где каждый выездной сотрудник относительно плана, и замечает отставание, пока ещё есть время среагировать: передать две последние точки коллеге, предупредить клиента, осознанно перенести визит вместо того, чтобы молча его сорвать.
- Статусы, которые меняются по ходу работы. Курьер переводит заказ в новое состояние прямо на точке, и офису не приходится восстанавливать картину дня по телефонному звонку.
- Подтверждение у двери. Фотоотчёты и чек-листы в мобильном интерфейсе закрывают заявку с доказательствами, прикреплёнными к заказу. В itlogist выездной сотрудник работает через мобильный веб-интерфейс без обязательной установки приложения — это важно, когда часть штата временная или это подрядчики.
Исключения заслуживают той же дисциплины, что и успехи. Визит, закончившийся без передачи, всё равно съел час оплаченной смены; и если причину фиксируют по закрытому списку, а не описывают свободным текстом, то месяц таких записей покажет, какие районы, заказчики или слоты порождают срывы. Это и есть обратная связь, которая делает следующий план лучше: движок оптимизирует последовательность, а данные об исключениях чинят вход.
Как начать без проекта на полгода
Проекты оптимизации застревают по организационным причинам куда чаще, чем по техническим. Поэтапный подход помогает не попасть в обычную ловушку — перестраивать всё сразу.
- Сначала приведите в порядок адреса. Ничто не портит план быстрее, чем координаты, указывающие не в тот двор. Работа неблагодарная, но именно она задаёт потолок для всего остального.
- Честно измерьте текущий день. Точек на смену, время между визитами, доля несостоявшихся визитов, доля заказов, доставленных в своё окно. Без базовой линии не понять, новый план лучше или просто другой.
- Оцените время обслуживания по типам работ. Спросите курьеров, потом сверьте с реальными отметками времени. Решатель хорош ровно настолько, насколько верна эта цифра.
- Подключите источники заказов. itlogist обменивается данными с 1С, AmoCRM, Bitrix24 и Excel, поэтому заказы приходят из тех систем, в которых вы уже работаете, а не перенабираются вручную в новую.
- Начните с одной группы. Две недели гоняйте автоматическое планирование на одном районе или одной бригаде и сравнивайте с базовой линией. itlogist рассчитан на запуск за 7 дней, работает без долгосрочных контрактов и подходит командам от 5 до 100 выездных сотрудников, так что пилот — это две недели внимания, а не квартал.
- Первое время разбирайте итоги еженедельно. Смотрите, что диспетчер поправил вручную. Каждая ручная правка — это либо недостающее ограничение в модели, либо привычка, от которой пора отказаться; знать полезно и то и другое.
Сделанная в таком порядке, оптимизация перестаёт быть покупкой софта и становится тем, чем должна быть: коротким промежутком между точками, обещанием, на которое клиент может опереться, и сменой, которая заканчивается тогда, когда была запланирована.
Частые вопросы
Что реально меняет оптимизация последней мили?
Она меняет способ, которым собирается день. Вместо диспетчера, выстраивающего адреса вручную в порядке их поступления, движок распределяет заказы по выездным сотрудникам и выстраивает последовательность так, чтобы соблюдались временные окна, вместимость и рабочие часы. Видимый результат — меньше километров между точками, ровнее нагрузка по команде и больше закрытых заявок в той же оплаченной смене.
Чем это отличается от навигатора?
Навигатор отвечает на вопрос, как доехать из А в Б. Оптимизация отвечает на вопрос шире: кому из сотрудников отдать какие заказы и в каком порядке их объезжать с учётом окон, вместимости, навыков и времени обслуживания. Навигатор оптимизирует один перегон, маршрутизация — весь день всей команды. На практике нужны оба: план даёт движок маршрутизации, а подсказки на дороге — карта.
Узкие окна доставки делают оптимизацию невозможной?
Не невозможной, но дорогой. Каждое ограничение отнимает у решателя варианты, а день, где жёсткая каждая заявка, почти не оставляет пространства для улучшения. Практичный подход — смесь: продавайте узкие окна как платную и сознательно ограниченную услугу, держите долю гибких точек, вокруг которых движок сможет расставить жёсткие, и мерьте попадание в окно, а не только процент выполнения.
Какие данные нужны, чтобы автоматическое планирование имело смысл?
Три вещи: адреса, которые разворачиваются в правильные координаты, реалистичное время обслуживания для каждого типа работ и ограничения, которые вы сейчас держите в голове, — окна, вместимость машин, навыки, районы. Решатель, запущенный на данных с потолка, выдаёт уверенный план, который рассыпается к обеду, поэтому работа с данными идёт первой и во многом определяет качество результата.
Сколько времени занимает переход от таблиц к автоматическим маршрутам?
Меньше, чем ожидает большинство команд, если делать это поэтапно. itlogist рассчитан на запуск за 7 дней, работает без долгосрочных контрактов и обменивается данными с 1С, AmoCRM, Bitrix24 и Excel, поэтому заказы продолжают приходить из привычных систем. Обычный сценарий — двухнедельный пилот на одном районе или одной бригаде в сравнении с заранее снятой базовой линией.