На последней миле основные потери не в пробеге, а в повторных визитах. Курьер доехал, поднялся, позвонил — и уехал с той же коробкой, потому что клиента нет дома, окно с ним никто не согласовывал, а телефон он не берёт. Оптимизация маршрута такой заказ не спасает: маршрут был идеальный, просто одна из точек оказалась пустой.

В деньгах это выглядит так: одна недоставка обходится в 695 ₽ — 490 ₽ прямых расходов на повторный визит и 205 ₽ упущенного слота, который курьер мог отработать. При типичной доле недоставок 9 % служба на 200 доставок в день теряет 262 710 ₽ в месяц, и в отчётности эта сумма не видна нигде: она размазана по зарплате, топливу и по фразе «сегодня много переносов».

Ниже — разбор трёх механик, которые эту долю снижают, минимальный состав приложения курьера, честный раздел про мотивацию (там легче всего получить приписки вместо данных) и расчёт порога, ниже которого свою службу держать дороже, чем купить доставку у подрядчика.

Сколько стоит одна недоставка

Модельная служба: 8 курьеров на своих фургонах, 25 доставок на курьера в смену, 21 рабочий день — 200 доставок в день и 4 200 в месяц. Смена 8 часов, средний дневной пробег машины 110 км. Полная стоимость часа курьера — 550 ₽, диспетчера — 650 ₽. Начинать надо не с недоставки, а с себестоимости обычной доставки, иначе не с чем сравнивать.

Статья расходовВ месяцНа одну доставку
Курьеры: 8 человек × 168 часов × 550 ₽739 200 ₽176 ₽
Машины: 8 × 38 000 ₽ постоянных расходов304 000 ₽72 ₽
Топливо, шины, ТО: 18 480 км × 14 ₽258 720 ₽62 ₽
Диспетчер: 168 часов × 650 ₽109 200 ₽26 ₽
Итого на 4 200 доставок1 411 120 ₽336 ₽

Здесь стоит остановиться на расхождении с соседним расчётом. В разборе себестоимости городской доставки товара выходит 721 ₽ за доставку — вдвое больше. Разница не в ошибке, а в двух вещах: там поток 880 доставок в месяц против 4 200, и в себестоимость входит упаковка, которой у курьерской службы нет — коробку собирает отправитель. Плотность маршрута — главный рычаг на последней миле, и он же объясняет, почему подрядчик умеет возить дешевле вас.

Теперь недоставка. Повторный визит — это 35 минут курьера, потому что к самой попытке добавляются подъезд не по оптимальному плечу, звонки и возврат в маршрут. Плюс лишний пробег, время диспетчера на перепланирование и связь. И отдельно — упущенный слот: при 25 доставках за восьмичасовую смену на одну доставку приходится 19,2 минуты, то есть повторный визит съедает 1,8 слота, каждый из которых приносит 114 ₽ маржи при тарифе 450 ₽.

Цена одной недоставки и её вес на потоке 4 200 доставок в месяц
Время курьера: 35 минут по 550 ₽/час321 ₽
Дополнительный пробег: 7 км по 14 ₽98 ₽
Диспетчер: 6 минут по 650 ₽/час65 ₽
Звонки и сообщения6 ₽
Прямые расходы на повторный визит490 ₽
Упущенный слот: 1,8 доставки по 114 ₽ маржи205 ₽
Полная цена одной недоставки695 ₽
Недоставок в месяц: 9 % от 4 200378 штук
Итого262 710 ₽ в месяц, 3,15 млн ₽ в год — при доле недоставок 9 %
графикkurerskaya-dostavka-poslednyaya-milya--01
Диаграмма состава цены недоставки: 490 рублей прямых расходов и 205 рублей упущенного слота

Составной горизонтальный столбец на 695 ₽, разбитый на пять сегментов с подписями и суммами: «курьер, 35 мин — 321 ₽», «пробег 7 км — 98 ₽», «диспетчер — 65 ₽», «связь — 6 ₽», «упущенный слот, 1,8 доставки — 205 ₽». Первые четыре сегмента объединены скобкой «прямые расходы 490 ₽», последний выделен штриховкой и подписан «в учёте не появляется». Под столбцом строка: «× 378 недоставок в месяц = 262 710 ₽». Ось в рублях, подписи по-русски.

Половину цены недоставки составляет то, что в бухгалтерии не видно

Три механики, которые снимают недоставки

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

  1. 1
    Подтверждение окна накануне вечером

    Сообщение уходит в 18:00–20:00 за сутки: «завтра, окно 14:00–18:00, подтвердите или перенесите». Ответ — две кнопки, не свободный текст. Отвечают не все: в модели подтверждает или переносит 62 % получателей, и этого хватает, чтобы убрать из завтрашнего маршрута самые безнадёжные точки. Канал по состоянию на сентябрь 2026 года — MAX как основной, push в приложении, если оно есть, и SMS как фолбэк для тех, кого нет ни там, ни там.

  2. 2
    Кнопка переноса у клиента

    Не «позвоните нам в рабочее время», а ссылка, по которой клиент сам выбирает другой день и окно из реально свободных слотов. Ключевое слово — реально свободных: если страница показывает слоты, которых нет, вы получите не перенос, а вторую недоставку и раздражённого клиента. Это та же слот-модель, что стоит за подтверждением записи в услугах, только вместо кресла в ней машина курьера.

  3. 3
    Уведомление за 30 минут до приезда

    Срабатывает по факту прохождения предыдущей точки, а не по плановому времени, и содержит расчётное время прибытия. Эта механика снимает меньше всего недоставок, но она единственная спасает случай «клиент дома, но вышел в магазин на двадцать минут». Работает только при живом расчёте времени прибытия — иначе уведомление врёт и его перестают читать.

Воронка недоставок: 4 200 доставок в месяц, было 378 недоставок
Базовая доля недоставок, 9 % от 4 200378
Снимает подтверждение окна накануне−129
Снимает кнопка самостоятельного переноса−71
Снимает уведомление за 30 минут до приезда−44
Остаётся недоставок, 3,2 % от потока134
Снято недоставок, по 695 ₽ каждая244 × 695 ₽
Валовый эффект в месяц169 580 ₽
Разработка контура: уведомления, страница переноса, ETA, пересборка маршрута580 000 ₽ разово
Ежемесячно: SMS-фолбэк 1 900 сообщений и поддержка−29 980 ₽
Итого139 600 ₽ чистыми в месяц, окупаемость 4,2 месяца
Три сообщения — потолок, четвёртое работает против вас

Подтверждение накануне, уведомление о выезде и уведомление за 30 минут — это уже три касания на одну доставку. Добавлять к ним «ваш заказ передан курьеру», «курьер вышел на маршрут» и «оцените доставку» означает, что клиент отключит уведомления целиком и перестанет видеть те три, ради которых всё делалось. Каждое сообщение обязано менять что-то в жизни получателя — иначе оно не информирует, а расходует внимание.

Приложение курьера: шесть функций и три соблазна

Приложение курьера — единственное место, где данные о последней миле вообще появляются. Курьер часто не сотрудник в привычном смысле: самозанятый на своей машине, работающий сегодня у вас, а завтра у агрегатора. Он не будет учиться работать в сложном интерфейсе и не станет заполнять поля «для аналитики». Поэтому набор функций короткий и жёстко ограниченный.

  • Список точек на смену с окнами и адресами, отсортированный в порядке объезда. Без ручной пересортировки: если курьер меняет порядок сам, окна перестают соблюдаться.
  • Навигация до точки одним нажатием — передача адреса и координат во внешнюю карту. Свою карту рисовать не надо, это самый дорогой и самый бесполезный экран.
  • Отметка результата в одно касание: доставлено, отказ, не застал, перенос. У трёх последних — обязательная причина из короткого списка, потому что без причины эти данные ничего не стоят.
  • Фото и подпись получателя. Фото — не «для контроля вообще», а конкретно: состояние упаковки при отказе и место, куда оставлен заказ, если так договорились.
  • Приём оплаты, если он есть: сумма подставляется, курьер её не набирает руками. Расхождение по кассе — самый частый источник конфликтов и самый простой в устранении.
  • Кнопка «нужен диспетчер» с автоматической привязкой к текущей точке. Курьер не должен объяснять голосом, где он и какой заказ имеет в виду.

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

разбор экранаkurerskaya-dostavka-poslednyaya-milya--02
Схема экрана приложения курьера: список точек, кнопки результата и обязательная причина

Нарисованный абстрактный экран телефона, разделённый на зоны с подписями. Сверху «Смена: 25 точек, выполнено 11». Основная зона — список из трёх карточек точек с адресом и окном «14:00–18:00», у активной карточки кнопка «Навигация». Внизу ряд из четырёх крупных кнопок: «Доставлено», «Не застал», «Отказ», «Перенос». Под ними всплывающая панель «Причина: обязательно» со списком из четырёх вариантов. Сбоку две маленькие иконки: «Фото» и «Нужен диспетчер». Отдельная выноска справа: «чего здесь нет — чат с клиентом, ручная пересортировка, личный рейтинг». Чертёжный стиль, подписи по-русски.

Шесть функций — и ни одного поля, которое курьер заполняет «для аналитики»

Пересборка маршрута в течение дня

Механики из предыдущего раздела создают новую проблему: если клиент переносит доставку в 11 утра, маршрут на день уже посчитан и курьер едет по нему. Перепланировать всю смену руками невозможно — диспетчер на 8 курьерах просто не успеет. Поэтому пересборка должна быть частичной и дешёвой.

  1. 1Точка помечается снятой, а не удаляется. Маршрут остаётся тем же, просто одна остановка пропускается: пересчитывать порядок из-за одного переноса дороже, чем проехать лишний квартал.
  2. 2Пересчёт запускается, когда снятых точек накопилось три и более или когда освободилось больше 40 минут. Порог настраивается: чаще — маршрут «дёргается» и курьер перестаёт ему доверять, реже — теряется смысл.
  3. 3Новый порядок уходит курьеру только на неотработанный хвост смены. Пройденные точки не трогаются никогда, иначе в приложении меняется история и разбирать спор становится нечем.
  4. 4Срочные заказы вставляются в существующий маршрут, а не порождают отдельный выезд. Правило вставки — то же самое, что в планировании рейсов и маршрутизации: вставка допустима, если она не ломает окно ни одной из следующих точек.
Диспетчер остаётся, и это нормально

Ни одна пересборка не закрывает случаи вида «клиент просит принести на другой адрес в том же районе» или «в подъезде нет лифта, а холодильник один». В модельной службе после автоматизации диспетчер тратит на ручные правки примерно 1,5 часа в смену вместо 4 — это 109 200 ₽ в месяц по-прежнему в смете. Если подрядчик обещает убрать диспетчера полностью, он либо не работал с последней милей, либо считает эффект от его отсутствия.

Мотивация курьеров: что честно считать, а что даёт приписки

Как только появляются данные, появляется соблазн привязать к ним оплату. Здесь легче всего испортить и мотивацию, и сами данные, поэтому стоит различать два типа показателей: те, которые курьер может улучшить только работой, и те, которые он может улучшить отметкой в приложении.

ПоказательЧто с ним происходит на практикеГодится для оплаты
Число доставленных заказовЧестный счётчик, подтверждается получателем и оплатойДа, это база сдельной части
Соблюдение окна доставкиПроверяется отметкой времени и координатой, подделать трудноДа, как надбавка
Доля успешных доставокКурьер начинает помечать недоставку как «отказ клиента» — своя вина исчезаетНет, только для разбора причин
Средняя скорость на маршрутеПоощряет опасную езду и штрафы, экономии не даётНет
Оценка клиента после доставкиОтвечают 10–15 %, и почти всегда — недовольныеНет, слишком редкая выборка

Практическое правило: показатель, который курьер ставит сам, не может быть основанием для его же премии. Причину недоставки он отмечает, но подтверждается она вторым источником — отметкой времени и координатой в точке, попыткой звонка в журнале телефонии, ответом клиента на подтверждающее сообщение. Если второго источника нет, причина идёт в отчёт как «со слов курьера» и в расчёт оплаты не попадает вовсе. Это неудобно, зато честно, и через месяц данные становятся пригодными для дашборда по причинам недоставок, а не только для спора.

сравнениеkurerskaya-dostavka-poslednyaya-milya--03
Сравнение показателей курьера: подтверждаемые вторым источником и ставящиеся им самим

Сравнение в две колонки. Левая «Подтверждается вторым источником»: доставленные заказы (оплата и подпись получателя), соблюдение окна (время и координата), расхождение по кассе. Правая «Ставит сам курьер»: причина недоставки, отметка «клиент отказался», комментарий к точке. Под левой колонкой зелёная плашка «идёт в оплату», под правой серая плашка «идёт в разбор причин, в оплату не идёт». Внизу общая строка: «доля успешных доставок 9 % → 3,2 % — показатель службы, а не курьера».

К оплате привязывается только то, что подтверждено не самим курьером

Когда своя курьерская служба дороже подрядной

Весь расчёт выше имеет смысл только при своём парке и своих курьерах. При потоке 4 200 доставок в месяц себестоимость выходит 336 ₽ за доставку. Но структура расходов почти целиком постоянная: люди, машины и диспетчер стоят одинаково и при полной, и при половинной загрузке. На 1 800 доставках в месяц служба сокращается до четырёх курьеров, но диспетчер и недозагруженные машины остаются — себестоимость поднимается до 392 ₽, и это уже верхняя граница подрядного тарифа 300–420 ₽ за городскую доставку.

Себестоимость доставки при падении потока с 4 200 до 1 800 в месяц
Курьеры: 4 человека × 168 часов × 550 ₽369 600 ₽
Машины: 4 × 38 000 ₽ постоянных расходов152 000 ₽
Топливо, шины, ТО: 9 240 км × 14 ₽129 360 ₽
Диспетчер на полставки: 84 часа × 650 ₽54 600 ₽
Итого расходов в месяц705 560 ₽
Доставок в месяц1 800
Итого392 ₽ за доставку против 336 ₽ при полной загрузке — на 17 % дороже

Отсюда три условия, при которых свою службу держать не стоит.

  • Поток ниже примерно 2 500 доставок в месяц при ровной загрузке. Постоянные расходы не с кем делить, и собственная доставка стоит дороже покупной при том же качестве.
  • Пик выше среднего больше чем вдвое. Своя служба держится под пик и простаивает всё остальное время; подрядчик масштабируется в обе стороны и берёт деньги за факт. Считать надо не средний день, а отношение пикового дня к медианному.
  • Нет требований к сервису, за которые клиент доплачивает. Если вам не нужны узкие окна, фото при отказе, возврат подписанных документов и приём оплаты по вашим правилам — вы покупаете голую перевозку, и покупать её выгоднее, чем производить.

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

Маршрут можно оптимизировать бесконечно. Пустая точка в нём стоит дороже, чем весь выигрыш от оптимизации.