
Как мы снизили расходы на экспресс-доставку в Яндекс.Доставке на 13% и не потеряли в качестве
Привет! Меня зовут Денис Захаров, я руководитель продуктов логистики в компании GRI. Мы занимаемся заказной разработкой и сопровождением, ключевых игроков E-com. Наша задача – не просто интегрировать сервисы, а делать бизнес эффективнее: меньше тратить, больше зарабатывать.
Сегодня расскажу, как оптимизировать тарифы Яндекс.Доставки и снизить логистические расходы, не потеряв в скорости и удобстве для клиентов. Это практический кейс с цифрами, логикой и алгоритмом. Поехали.
Проблема: дорогие доставки и тарифный хаос
Типы доставок Яндекса:
У Яндекс.Доставки есть несколько типов и способов доставки, поэтому очень важно грамотно подбирать нужный для себя оффер.
Типы доставки:
Под типами доставки я подразумеваю группы офферов с разной скоростью и приоритетами доставки вашего товара до клиента.
Типы доставки могут быть следующими:
Экспресс "description": "express"
Самый быстрый и приоритетный способ доставки. Если вы выбираете его, то курьер максимально быстро приезжает к вам и так же быстро доставляет заказ до клиента. При этом, если у курьера есть другие заказы, то ваш заказ будет доставлен до клиента в первую очередь. Данный тип доставки подходит для FoodTech-компаний и для тех, кому скорость доставки критически важна и необходима. В противном случае это деньги в унитаз.Экспресс + 30 "description": "express_30min_longer"
Второй по скорости тип доставки экспресс с замедлением на 30 минут. Что значит с замедлением? Это значит что курьер приедет к вам забрать заказ на 30 минут позже, чем в экспрессе, либо на 30 минут позже доставит до клиента по сравнению с тарифом экспресс, так как ваш заказ в маршрутном листе курьера будет стоят не самым первым.Экспресс + 60 "description":"express_60min_longer"
Аналогично с Экспресс + 30, только задержка на 60 минут.-
Доставка за 2 часа "description":"2_hours_delivery"
Просто доставка до клиента за 2 часа
Сравнение типов доставки по цене:
Проработав с Яндексом примерно год по всей России, мы провели небольшую аналитику и выяснили как отличаются типы доставки друг от друга.
Экспресс |
Экспресс + 30 (-5%) |
Экспресс + 60 (-10%) |
Доставка 2 часа (-15%) |
X рублей |
X рублей |
X рублей |
X рублей |
По итогу могу сказать следующее:
Если у вас есть критическая необходимость доставлять до клиента в сжатые сроки, выбирайте тариф экспресс, а если у вас такой необходимости нет или у вас нет данных о влиянии скорости доставки на GMV или Выкупаемость, то выбирайте тариф “Экспресс + 60 (-10%)”.
Способы доставки:
Под способами доставки я подразумеваю как курьер будет доставлять ваш заказ до клиента, например, на велике или на машине.
Способы доставки могут быть следующими:
"taxi_class":"courier"
Это значит, что курьер будет доставлять на своих двух / на велике / на самокате."taxi_class":"express"
Тут вашу доставку буду доставлять приоритетом на машине, чтобы в максимально сжатые сроки быть у клиента перед дверью. Однако так же могут быть доставки и пешими курьерами"taxi_class":"cargo"
Данным способом не пользовался, но знаю, что перевозит крупногабаритные грузы.
Собираем формулу успеха:
Нужна доставка максимально быстро?
- Выбирай Express без замедления и способ доставки aka taxi_class, также выбирай Express
Нужна доставка не так быстро?
- Выбирай Express+60 и taxi_class = courier
Напишите в комментариях, работаете ли вы с Яндекс.Доставкой или нет. Если да, то какие настройки вы используете, и из какого сегмента ваша компания?
Офферы Яндекса
Про типы и способы доставки с вам поговорил, поехали к офферам. Яндекс.Доставка возвращает обширный список офферов – на любой вкус и скорость. Ну и тоже стоит понимать, что список офферов формируется на основе параметров, которые вы задаете ранее, я говорю о типах и способах доставки.
Все офферы у Яндекса устроены по одному принципу:
“Приедем на точку A во столько-то и довезем до точки B во столько-то”
Ниже приведу фрагмент Json ответа Яндекса с офферами на доставку. В фрагменте будет только оффер с доставкой за 2 часа, по аналогичной структуре формируются оффера и для других типов доставки.
{
"offers":[
{
"description":"2_hours_delivery",
"is_selected":true,
"pickup_interval":{
"from":"datetime.datetime(2025, 7, 11, 15, 37, 44, 829169, tzinfo=zoneinfo.ZoneInfo(key='Europe/Moscow'))",
"to":"datetime.datetime(2025, 7, 11, 16, 45, tzinfo=zoneinfo.ZoneInfo(key='Europe/Moscow'))"
},
"price":{
"surge_ratio":1,
"total_price":305,
"currency":"RUB",
"total_price_with_vat":366
Ключевой вопрос: офферы мы получили, а какой из них выбирать?
Для того чтобы ответить на этот вопрос, мы решили разобраться сколько времени клиент реально готов ждать доставку?
Ответ не так очевиден. Интуитивно кажется: чем быстрее, тем лучше. Но на деле – не всегда.
Люди хотят получить заказ быстро, но не обязательно мгновенно – особенно, когда речь идет не о еде, а о ювелирных украшениях.
Мы провели качественное исследование:
опросили клиентов
проанализировали выкупаемость в зависимости от времени доставки
сопоставили ожидания и реальность
Результаты нас удивили.

Главный инсайт:
Формулировка «от 30 минут» воспринимается как «ну, в течение часа точно привезут».
Однако, нужно понимать, что мы говорим про Рынок E-com, но например, в Foodtech, клиенты не воспринимают доставку за 30 минут, как за час. ?
Именно так: если клиент видит «экспресс-доставку», он внутренне рассчитывает не на 30 минут по таймеру, а просто на «достаточно быстро». А разница между 30 и 45-60 минутами – почти не чувствуется.
Что показала аналитика: платим больше, а смысла нет
После разбора всей истории заказов и тарифов от Яндекс.Доставки мы заметили очевидную нестыковку:
Экпресс доставка за 30 минут обходится в среднем нам в 700+ рублей, а тот же Экпресс+60 на 10% дешевле, чем доставка за 30 минут, а конверсия в выкуп – одинакова. То есть, клиенты не замечают разницы.
Почему это важно? Потому что без фильтрации система чаще выбирает самый быстрый (и дорогой) вариант, даже если он не нужен.
? Пример из жизни
Представим, что клиент оформляет заказ в 14:00 и выбирает экспресс-доставку «от 30 минут». Система возвращает вот такие офферы:

Ранее система выбрала бы доставку за 560 ₽ – просто потому, что она самая быстрая.
Но если взглянуть чуть шире и вспомнить, что «от 30 минут» клиент воспринимает как «в течение часа», становится очевидно:
Лучше выбрать оффер за 425 ₽ – с доставкой до 14:45. Клиент не заметит разницы, а мы сэкономим 135 ₽ на одном заказе.

Микрооптимизация на каждом этапе в итоге даёт значительную экономию.
Три сценария покупки и логика выбора тарифа
Чтобы понять, как выбирать тариф правильно, мы разложили все заказы на типовые сценарии.
Сценарий 1: товара нет в наличии в магазине
Клиент пришел на торговую точку, а нужного размера или фасона не оказалось. Решение простое: доставить нужный экземпляр из соседнего магазина.
Но тут важно не перегнуть с «сервисом»:
Слишком быстро – дорого и требует держать большие товарные остатки на каждой точке
Слишком долго – клиент не дождется и уйдет
Оптимальное окно – 30-60 минут. Это всё ещё «быстро» в восприятии клиента, но уже позволяет экономить на тарифах.
В этом сценарии система должна искать все офферы в пределах 30-60 минут и выбирать самый дешёвый. Это дает баланс между скоростью, удовлетворенностью клиента и маржинальностью.
? Сценарий 2: доставка «до двери» в течение 3 часов
В этом случае клиент оформляет заказ онлайн, и товар нужно привезти по адресу. Тут важна надёжность, но сверхскорость не требуется.
Что учитываем:
Платить за ускорение смысла нет – клиент всё равно ждёт в течение нескольких часов.
Нужно заложить время на сборку заказа (20 минут) и возможные задержки курьера (ещё около 10 минут).
Оптимальное окно доставки – от 2 до 2.5 часов. Этого достаточно, чтобы уложиться в обещанные 3 часа и при этом не переплачивать.
В этом сценарии нужно выбирать самый дешёвый тариф, укладывающийся в лимит до 3 часов, с поправкой на внутренние процессы. Так мы экономим, не рискуя качеством сервиса.
Сценарий 3: доставка «от 30 минут»
В этом случае клиент выбирает экспресс-доставку – и тут, действительно, важна скорость. Но не всё так буквально, как мы уже поняли.
Если в офферах нет варианта ровно на 30 минут – это не повод отказывать клиенту в создании заказа.
Важно другое: уложиться в разумный интервал – до 90 минут, который клиент воспринимает как всё ту же "быструю доставку".
Что делаем:
Ищем все офферы с интервалом от 30 до 90 минут
Из них выбираем самый дешевый
Такой подход сохраняет ощущение «экспресса» для клиента и при этом не тратит лишние деньги на сомнительную гонку за минутами.
Супер инсайд – проблема:
Раньше мы на чек-ауте давали пользователю заказать экспресс-доставку, ориентируясь только на его адрес доставки (входит в полигон доставки или нет) и на локальное время клиента (смотрели, работают ли еще магазины, из которых можем доставить, или нет). Однако такой подход вызывал проблемы связанные с тем, что при создании заказа в Яндексе мы могли получить офферы, ни один из которых не удовлетворял ни по времени, ни по стоимости доставки. По итогу получалась картина, когда клиент заказал доставку от 30 минут и нам ничего не остается, кроме как выбирать невероятно дорогой оффер, чтобы доставить до клиента в разумный интервал времени.
Пример:
1. Покупатель на Check-out выбирает доставку от 30 минут
2. Мы идем создавать заказ и получаем офферы от Яндекса
3. Яндекс присылает дорогущие офферы, один из которых еле-еле попадает в допустимый интервал доставки
4. Мы в ловушке и нам ничего не остается, кроме как выбрать этот самый дорогой оффер, который мог быть дороже самого изделия в заказе
Как с этим бороться?
На check-out-е перед тем как показать способы доставки, опрашивать Яндекс и выводить экспресс-доставку только тогда, когда хотя бы на текущий момент Яндекс имеет адекватные офферы в пуле по адекватным ценам.
Антипаттерны: как точно не надо делать
Проработав все сценарии, мы собрали ТОП-3 ошибки, которые мы раньше допускали:
Брать самый быстрый оффер без фильтрации.
Да, звучит как забота о клиенте. Но на деле – просто бессмысленные траты.Одинаково обрабатывать все сценарии.
У каждого клиента свой контекст. Применять одну и ту же логику к доставке «до двери» и доставке «в торговую точку» – это прямой путь в минус.Гнаться за скоростью, забывая о марже.
Какой смысл доставки за 30 минут, если ты на этом теряешь прибыль?
Как работает наш алгоритм выбора тарифа
Теперь переходим к самому интересному.
Чтобы перестать гадать, мы собрали алгоритм, который учитывает всё – и интересы клиента, и экономику.
Что подаем на вход:
Ожидания клиента (сценарий использования)
Все доступные офферы из API Яндекс.Доставки
Время на сборку заказа
Прибыль с единицы товара
Условие выбора:
Цена доставки < Цена изделия × k1
где k1 – медианный коэффициент маржинальности.
Если доставка съедает прибыль с продажи данного ювелирного изделия, то тариф не проходит фильтр.
Что делает алгоритм:
Выбирает все офферы, которые укладываются в нужное временное окно (по сценарию).
Фильтрует по стоимости – с учетом коэффициента маржи.
Сортирует и берёт самый дешёвый из подходящих.
Если оффер прошёл все условия — даём оформить заказ.
Не прошёл? Не даём создать заказ.
Пример алгоритма на блок-схеме:

Под капотом: как работает алгоритм
Интеграция с Яндекс.Доставкой идёт через их API.
# Пример фильтрации тарифов
def filter_tariffs(offers: list(Offer), cart_price: int, k1 :int, deliver_datetime_limit: datetime) -> OfferID:
max_offer_price = cart_price * k1
return OfferID(sorted(
[o for o in offers if o['delivery_interval']['to'] <= deliver_datetime_limit and o['price']['total_price_with_vat'] <= max_offer_price],
key=lambda x: x['price']['total_price_with_vat']
)[0]['payload'])
В качестве отслеживания корректности выбора тарифов мы:
1. Используем связку Prometheus + Grafana для мониторинга
2. Пересчитываем k1 ежемесячно по реальным данным
Что в итоге?
После внедрения алгоритма:
Расходы на Яндекс.Доставку снизились на 10%
Стоимость доставки перестала “съедать” маржу
Экспресс-доставок стало больше, благодаря расширенному окну (30–60 минут)
Недовольных клиентов не прибавилось
В двух словах
Вместо того чтобы гнаться за доставкой за 30 минут – мы начали думать, что нужно клиенту и сколько это должно стоить бизнесу.
Оказалось: если немного подождать, то можно сильно сэкономить, и никто даже не заметит разницы. :)
Автоматизация – это не магия, это просто честная логика и немного кода.