Как стать автором
Обновить

Как мы сэкономили время курьерам. Логистика в Яндекс.Еде

Время на прочтение 5 мин
Количество просмотров 45K
Всего голосов 69: ↑67 и ↓2 +65
Комментарии 87

Комментарии 87

1. CTE Сlick_To_Eat- бредовый показатель. Я заказал грузовик еды на следующий день курьер потратил 10 минут чтоб мне его привезти, CTE = 24 часа, реально 10 минут потрачено. Нормальный показатель — сколько заказов курьер развозит в смену/час.
2. Судя по графику, раньше курьер ждал в ресторане, терь ждет назначения заказа. Какая разница? Основной показатель — простой курьера. А где он простаивает — пофигу.
3. Сколько денег вы сэкономили? Сначала написали про CTE, потом забыли сказать, как он поменялся)))
Короче прикрутили модно ML к доставке еды, сами не поняли зачем, сами придумали искусственные показатели, их улучшили.- профит.

Спасибо за вопросы, отвечаю :)

1. Мы следим за двумя показателями: курьерский CTE — это как раз 10 минут из Вашего примера и клиентский CTE – то сколько ждет клиент. И вот второй показатель мы смотрим для asap заказов, а не заказов ко времени. Основной же для нас показатель, как Вы правильно пишете, заказы в час или оборачиваемость (как я в статье называю эту метрику). Но для более детального изучения оборачиваемости нужны прокси метрики, вроде CTE.
2. Разница в том, что он не ждет назначения, в это время он свободен и может выполнять другие заказы. Пример: если раньше курьер был заблокирован на заказе 40 минут, то теперь на заказ он тратит 35 минут. Высвобожденные минуты можно либо потратить на другие заказы, либо меньше работать в день, выполняя то же число заказов.
3. К сожалению, не могу разглашать метрики про деньги и юнит-экономику. Из графика видно как поменялся курьерский CTE – уменьшился на 7 минут. Благодаря этому увеличилась оборачиваемость и эффективность доставки, в результате мы тем же числом курьеров смогли доставлять сильно большее число заказов.
Курьерский CTE не показывает загруженность, потому что не учитывает время простоя в ожидании заказа. Вы «прокси» характеристику, весьма лукавую, приняли за основную и стали ее повышать.

Если б вы сказали раньше курьер в среднем доставлял 5 заказов в час, а стал доставлять 6 заказов в час. Все было б понятно. Ваша эффективность наглядна. А так вы придумали «прокси» показатель, его улучшили на 7 минут и что? Когда нормальный показатель скрывают прикрываясь, какой-то выдуманной фиготой — это подозрительно.
Я выбрал для этого рассказа курьерский CTE по двум причинам:
1. Среднее число заказов в час напрямую зависит от времени, которое курьер тратит на заказ
2. Эффект от внедрения нового алгоритма можно явно отследить по CTE, а оборачиваемость всё же довольно высокоуровневая метрика, на которую влияют почти все наши процессы: соотношение числа курьеров и заказов, корректный вывод курьеров, ценообразование, а также факторы от нас не зависящие: погода, например.
Вы выбрали для этого рассказа CTE, потому что он улучшился)) Толку от вашей работы если оборачиваемость не улучшилась, ради нее все затевалось.

Вы видать уронили время простоя, а оно тоже НАПРЯМУЮ влияет на оборачиваемость.

ЗЫ скажите курьерам снаружи ресторана ждать, у вас время ожидания готовки до нуля упадет. Присобачьте машинЛернинг и хвастайтесь показателем TWC(time waiting cooking) Тоже самое.
Проблема в том что оборачиваемость сильно флуктуирует сама по себе(пункт 2 ответа выше) и то, что она улучшилась еще не значит что именно это нововведение помогло.
Т.е. эффективность введенной системы на практике невозможно посчитать, либо ее результаты в рамках статистической погрешности?

У меня в машине расход 6 литров на сотню.
Тут приходит умник, и начинает мне говорить что расход бензина на сжатие одного цилиндра в третьем такте упал на целых 25%, потому что там присобачен блокчейн и искусственный интеллект. Я спрашиваю как упал общий расход, а мне упорно талдычат, что расход фигня, но вот то что в третьем такте бла-бла-бла… И я начинаю подозревать, что мне вешают лапшу на уши.
Ответить а как же SMART)) Measurable, эффективность нововведения невозможно измерить?
Пункт 1 выдает правильное название метрики — Average Courier Time, а не Click-to-Eat. CTE это скорее название которое проще «продать» при презентации бизнесу.
CTE это показатель для клиента. До введения обсуждаемой оптимизации он совпадал с курьерским.
То есть никто не заказывает еду на через час-два? Так или иначе вы называете эту метрику не по сути того что она из себя представляет а согласно тому как она встроена в бизнес.
Автор же ответил, что это метрика для ASAP заказов. Очевидно, что для плановых доставок логистика рабоатет иначе.
Только если курьер автоматом назначался. Если от курьера ожидалось какое-то согласие, то у него это время меньше должно быть по идее.
Время простоя в ожидании заказа важно в большей степени курьеру, яндекс еде нужен именно сте — они не на курьеров работают(оставим этическую сторону вопроса). Его уменьшение позволяет увеличить вероятность того, что курьер может получить заказ. То есть растет избыточность курьеров. Учитывая неравномерность спроса и скорее всего равномерное распределение «плотности» курьеров во времени, это действительно позволяет лучше справляться с пиками. В другое время, уверен, количество курьеров избыточно. И 5 минут очень редко играют роль.
По идее, должны были хоть незначительно измениться метрики отказов и отмен.
При том низкий сте не гарантирует, что это улучшит ситуацию. Но в случае, когда курьеров не хватает, должно помочь «уплотнить» их.

Полезная фича, в том плане, что с ней лучше, чем без нее. Но если я все правильно понял, то ее максимальная эффективность будет на уровне cte_delta/cte_old — идеальной случай при избытке заказов. Реальная же сильно ниже и зависеть исключительно от ситуаций, когда локальный спрос на курьеров превышает предложение
2. но, в ресторане курьер был заблокирован.
то есть, Вы заказали еду, которую готовить час. курьер получил заказ, притопал в ресторан, 50 минут ждёт там, несет вам заказ.

как я понимаю, теперь, пока Ваша еда готовится, курьер может ещё паре человек жратвы с Мака или КФС принести…
ДА я понимаю. Зелененькое — это статус «Ожидание заказа», которое в теории может быть потрачено на заказ другого. Так пусть дадут статистику нормальную. Стал ли реально курьер тратить это время на другие заказы или не стал.
Есть четкий показатель, количество заказов в час. Его не дают, поэтому я подозреваю, что система не дала прироста эффективности и значит время потрачено впустую.
Я так понимаю, что на гистограмме весь столбик — это именно их CTE, а не время курьера. Зелёная часть не входит во время курьера, это просто время, пока заказ уже сделан, но курьер не назначен, и он занимается например другим заказом.
Вы всё верно понимаете :)
Учитывает ли модель ситуации, когда все курьеры не будут брать заказ (причина почему они так сделаю и реализация не важна), условно у вас было 15 минут до конца готовки, 4 курьера, но заказ они не берут? И что будет в таком случае?
Для случаев, когда курьер не принимает заказ у нас предусмотрено автоматическое переназначение на другого курьера. То есть мы будем последовательно предлагать выполнить заказ разным курьерам.

В Вашем примере, если все 4 откажутся, а других курьеров не будет рядом, мы попробуем спасти заказ с помощью саппорта и назначить его вручную, позвонив курьеру, если не получится, то будем вынуждены отменить заказ и вернуть деньги клиенту.

Но таких случаев у нас доли процентов.
Понял, спасибо! А, если не секрет, есть ведь наверняка «проблемные» районы куда люди не хотят возить заказы или может быть даже «проблемные» курьеры которые регулярно отказываются от заказов просто так. Или, теоретически, если место попадает в зону доставки то вряд ли там регулярно будут проблемы с доставкой.
Не секрет, да, если говорить, например, про Москву, то на окраинах (Химки, Красногорск, ...) стабильно качество доставки хуже, чем в центре.
«Проблемные» курьеры тоже встречаются, мы ведем статистику и совместными силами с курьерскими службами боремся с систематическими случаями непринятия заказов.
а разве это не их добрая воля как исполнителей, выбирать приемлемые для них точки доставки?
Курьеры могут выбирать район в котором выходить на линию, но, конечно же, заказом курьера может утянуть в соседний район.
так тогда зачем с такими людьми бороться?
Допустим, я выбрал район Н-ский, а мне заказ прилетает на Е-вский, почему меня должны наказывать, если я систематически отказываюсь ехать в район, который я не выбирал?
На самом деле, нет понятия района, есть понятие радиус назначения, который ограничен несколькими километрами.
При этом как и в любом сервисе есть правила, согласно которым нужно принимать заказы когда курьер вышел на линию, если принимать заказы курьер не может, то можно просто уйти с линии.

Нюанс ещё в том, что курьер не видит адреса клиента, пока не заберёт заказ из ресторана. Что же касается систематических отказов от заказов, то решается простым увольнением курьера. Потому тут особых проблем нет.

И вот поэтому я не стал работать в яндекс такси. Едь туда не знамо куда.

Работаю курьером больше года) В компании есть штраф, за отказ от заказа — 2000₽. Если система назначила заказ, ты обязан в любом случае выполнить заказ, у нас даже не предусмотрено кнопки "отказ от заказа"))) так что не болтайте!

Вероятно, это штраф курьерской службы. В любом случае, у предложения заказа есть тайм-аут, если в течение этого времени заказ не будет принят курьером, то алгоритм попытается его переназначить на другого курьера.
Отдохнуть/потупить/поплевать в потолок — нормальное состояние человека. С этими интенсификациями и подстегивающими КПИ только приближаетесь к модели амазона, где у работника есть пара минут в день, чтобы отлить. На Изнанке есть хорошее интервью с доставщиком еды, советую почитать.
Да, смотрите, для отдыха можно взять паузу в приложении, в этот момент заказы приходить не будут. Плюс, теперь можно выполнять комфортное число заказов за меньшее число времени и просто меньше часов в день работать.
А может человек отдыхает? У вас же не роботы работают, а живые люди. Что за патологическое желание выжить из человека все соки…
Предлагаю начать вам с самих себя, сделайте контроль и оптимизацию своей работы, а то много отдыхаете видим, и от праздной жизни в ваши головы не пойми что лезет.
Ага, я вот выше ответил про отдых: для перерыва можно взять паузу в приложении, в этот момент заказы приходить не будут. Плюс, теперь можно выполнять комфортное число заказов за меньшее число времени и просто меньше часов в день работать.

Это внедрение высвободило время простоя в ожидании конца приготовления у ресторана, но это время уже можно потратить не только на заказы, но и на то, чтобы раньше закончить рабочий день. В этом смысле стало только лучше.
Спасибо за содержательный ответ.
Отдых может быть организован двумя путями: «бери больше, кидай дальше, пока летит отдыхай» и ставим на паузу. В первом случае у курьера есть какое-то время (ненормированное) за которое он может перекурить, перекинуться парой слов, сходить в туалет. В этом случае курьер знает что от него мало что зависит и он пользуется вынужденной передышкой. Во втором случае он знает что денег за свой небольшой отдых он точно не получит и будет пользоваться этой возможностью уже минимально. Причём, после выхода из паузы, курьер будет неприятно удивлён тем что следующий заказ прилетит не сразу, а опять-таки через какое-то время.
Мы все понимаем что современный бизнес требует уменьшения простоев, но хвастаться тем что вы усилили потогонность системы наверное неправильно даже для имиджа компании.
Сделайте тогда два типа паузы: «ушёл отдыхать, не беспокоить» и «перекур, готов для срочного заказа где-то рядом». Увидите, статистика по второй паузе вас удивит.
достаточно посмотреть, какая потогонка и условия работы в я.такси, речи про имидж и репутацию компании может уже не идти)
Автор молодец, но история грустная.

ЯндексЕда дала нам сегодня наглядный пример, как оторваны обычно аналитики от реальных задач бизнеса. Задайте себе вопрос: какую цель преследуют бенефициары сервиса доставки еды?

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

Смотрите, тут произошла подмена цели: «Увеличить прибыль» на «Снизить издержки». В жадном уменьшении издержек на курьерах не было бы ничего страшного, но в сложном экономическом механизме трудно изменить что-то одно, не повлияв на все остальное. Да, фирма сэкономила 20% на курьерах и даже вроде бы в первую неделю или месяц за счет этого увеличила свою прибыль. Но! Но кто-то стал получать еду не так быстро или чаще сообщения о невозможности выполнить заказ, с кем-то уставший курьер вел беседу чуть менее вежливо и тому подобное. Через месяц фирма недополучила новых клиентов, поскольку ее перестали советовать старые, к тому же часть из них ушли к конкурентам. В итоге «экономия» на курьерах даже возросла, но только вот кое-какие ценные показатели бизнеса резко упали. Что нужно было делать? — в качестве цели ставить баланс между экономией на курьерах и вносимыми ею недостатками в качество сервиса.

Какой вывод? Бизнесмены, выстраивайте руководство и мотивацию в фирме правильно, по учебникам — они давно уже написаны. Аналитики, уточняйте задачи бизнеса, почаще заходите к маркетологам, при поддержке последних стройте модели потребителя и проводите предварительные измерения их отклика на вводимые изменения в вашем продукте.

Желаю и тем и другим успеха в их нелегком деле.
Если зарплата курьера пропорциональна числу заказов, то ему выгодно тратить меньше времени на каждый конкретный.

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

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

Смотрите.
Пусть раньше курьерам нужно было за доставку платить 100 рублей. Эта цена была выставлена так, чтобы поддерживать штат курьеров нужной численности и нужного качества. Если ее снизить, то предложений того же уровня людей станет меньше и недостаток придется покрыть нежелательными кандидатами.

Предположим, курьер стал выполнять заказ на 20% быстрее. Если снизить его плату до 80 рублей — он за рабочий день той же длительности получит столько же денег, как и раньше, но, возможно, чуть больше устанет. Также с новым алгоритмом существенно возрастут отмены из-за невозможности найти курьера и число опозданий. К сожалению история показывает, что именно по этому пути пошло яндекс такси: я частенько интересовался заработком перевозивших меня таксистов и их распорядком дня.

Какие альтернативы?
А может, использовать другой алгоритм, который снизит время только на 10% и только 5% «забрать себе», а 5% отдать курьеру? Тогда разумный вопрос — как правильно выбрать пропорции да и сам алгоритм назначения? Ответ на него я как раз попытался дать в своем первом комментарии — нужно определится, какова здесь непосредственная цель бизнеса, потом провести исследования, сделать замеры, и только после проектировать алгоритм. Может вообще так получится, что выгоднее увеличить число курьеров и при этом еще повысить им зарплату — ценность услуги возрастет настолько, что пользователи с удовольствием покроют дополнительные издержки.
Если за те же деньги надо больше устать, то баланс не соблюдается, курьеры ухоят, и у злобного капиталиста проблемы. Вот если вы снизите ставку на 10%, повысив продуктивность на 20%, то тогда еще можно о чем-то говорить. Но тогда опять же все в плюсе.

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

При этом свободный рынок стремится к Парето Оптимуму


А как насчет олигопольного и сильно регулируемого?

Любые системы (включая курьера) стремятся к снижению издержек


А меня учили, что к увеличению прибыли на некотором промежутке будущего.

Но до тех пор, пока вы рассуждаете в терминах кровавого капитализма, это всё бессмысленно


Да ну! И правда? То есть теперь здравый смысл и логика так теперь зовутся?
А как насчет олигопольного и сильно регулируемого?
Ни тот ни другой не свободный.
А меня учили, что к увеличению прибыли на некотором промежутке будущего.
Тогда почему курьеры не работают по 18 часов?

Вы что-то совсем на эмоции перешли. Пора, наеврное, заканчивать разговор.
Тогда почему курьеры не работают по 18 часов?


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

Могу вам предложить эксперимент — попробуйте придумать какую-то деятельность и обеспечить ее наемным трудом ну хотя бы пол года. Не обязательно много людей — попробуйте хотя бы 1-2 сотрудников нанять.

После этого я буду готов послушать и про угнетение рабочего класса и про что угодно. Заодно расскажете, смогли ли хотя бы в ноль выйти.
У меня долгое время был свой бизнес и я неплохо ладил со своими сотрудниками (3 — 5 в разное время). Как человек с низким уровнем эмпатии, я строил с ними отношения на логике, экономике и здравом смысле. Вроде получалось.
Ну и как у вас со снижением издежек дела обстояли? Пили кровь пролетарскую? Нет? Тогда почему другие, по-вашему, поголовно пьют?
Давал людям возможность заработать и в отличие от «комуняк» не держал крестьян в деревнях без паспортов, расплачивался с работниками деньгами, а не палочками, и не выполнял пятилетку за счет заключенных в лагерях.

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

Как-то так.
Я вот вижу, что вам эта область знакома только по-наслышке
У меня три текущих работника и три бывших.

Вы не то чтобы совсем не правы, но я одно не пойму. Вот вы пишете:
Таки образом, мне именно выгодно было платить моим сотрудникам хорошую зарплату и я считаю, что это признак здорового капитализма.
Но при этом почему-то априорно предполагаете, что другим (включая обсуждаемый яндекс) выгодно обратное. Как так-то?
Но при этом почему-то априорно предполагаете, что другим (включая обсуждаемый яндекс) выгодно обратное. Как так-то?

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

В нашем с вами случае это довольно примитивная игра: роли бенифициара и единственного руководителя совмещены в одном человеке. У фирм размера яндекседы совсем другая история. Я уверен, что там многие руководители, то есть сотрудники, имеющие подчиненных и принимающие важные решения, не я являются бенифициарами бизнеса либо их доля в нем пренебрежимо мала.

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

Предположим, аналитики придумали алгоритм, как сэкономить время курьеров. Что будет выгодно сделать с появившимся излишком моржи руководителю повыше, будет ли он вникать в долгосрочные стратегии бизнеса или на инерции аудитории продукта покажет уже своему руководителю 20% снижение издержек? Снова все зависит от его стимулов и условий игры. Поживем — увидим.
Это все, в целом, верно. Но до тех пор, пока ставка курьера за заказ не уменьшится, оптимизация их времени это вин-вин. Из ваших же выводов как будто бы неявно следует, что экономия времени курьеров это что-то априори плохое.
Но до тех пор, пока ставка курьера за заказ не уменьшится, оптимизация их времени это вин-вин


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

Из ваших же выводов как будто бы неявно следует, что экономия времени курьеров это что-то априори плохое.


— ложное впечатление. Из возможности увеличения эффективности работы курьеров 100% точно можно извлечь стратегическую выгоду для бизнеса. Я утверждаю лишь то, что поставив во главу угла эту самую эффективность, выгоды можно и не получить, более того можно даже нанести вред.
Ну. Статья же про техническую задачу.
Так ведь о том и речь. Посмотрите мой первый комментарий: я жалуюсь на то, что компот подается отдельно от мух. Хотя мне кажется, между вами и мной все таки возникло взаимопонимание.
Думаю, да. В целом, вы дельные вещи говорите, но почему-то вначале я принял вас за воинствующего комуниста.
доброго времени суток! а есть ли корректировка в зависимости от погодных условий? всё-таки курьеры — это не доставка на личном транспорте, а в разных частях города могут быть совсем разные погодные условия. как в таком случае работает алгоритм?
условная проблема вот в чем: допустим,
количество тех, кто успеет к концу приготовления, меньше параметра k
— алгоритм начинает присылать n курьерам заявки, причем считается, что они в равных условиях. но первым принял заказ курьер, который попал в грозу, а не тот, который находится чуть дальше, но чей маршрут не пролегает через сложные метеорологические условия. тогда гипотетически может возникнуть ситуация, что более оптимальный с точки зрения алгоритма курьер может не уложиться в поставленный временной промежуток. или подобный кейс в реальности невозможен?
При выборе того, какому курьеру предложить выполнить заказ есть много нюансов, но в основе приоритизации лежит не расстояние, а время в пути до ресторана. Чем оно ниже, тем выше вероятность, что мы назначим заказ. Время рассчитывается по роутеру и учитывает, например, пробки.
Что касается погодных условий, то нужно понимать, что речь идет про довольно небольшие расстояния: 1-3 км в пути и погода, как правило, не сильно отличается в таких промежутках.
спасибо за ответ!
да, конечно, не по расстоянию, а по времени и хотел написать — это, как минимум, логичнее)
и всё же, получается что даже если погода и будет оказывать влияние на время в пути до ресторана, то скорее всего, она уже будет учитываться при расчете по роутеру?
Да, верно.
А то, что разные люди ходят пешком с разной скоростью, как-то учитывается?
Нет, персональная скорость не учитывается. При этом учитывается тип транспорта, то есть, если курьер на велосипеде, то время в пути будет отличаться от времени в пути пешком.
На велосипеде можно и колесо проколоть, это 10 минут в самом лучшем случае задержка. Есть ли возможность сообщить — «я сломался»?
А если курьер заявляет себя пешим, а реально ездит на велике? Это выигрышная для него стратегия, следовательно так делают многие. В результате искусственный интеллект верит что 3км можно «пройти пешком» за 15 мин, и задает такой норматив все пешеходам.

Какие у вас есть системы для недопущения таких крайностей?
Сейчас строго выгодней делать наоборот — отметить, что ты на велосипеде, если он у тебя есть, так как для курьеров-велосипедистов есть приоритет при распределении заказов.

При этом Вы правы в том, что есть случаи фрода, когда пеший курьер регистрирует себя велосипедистом, чтобы получать больше заказов. Но это не ведет ни к чему хорошему, так как система считает, что курьер передвигается на велосипеде и таймеры по доставке становятся сильно меньше. Плюс у нас есть различные механики (от реальных проверок до анализа данных), нацеленные на поиск такого фрода.
Был у меня случай, в декабре 2018(вроде). Заказал в маке, который находится в 10 минутах пешком от места заказа, через Я.еду разумеется. В итоге заказ готов, и его назначают курьеру, который в 2-3км от мака. В итоге звонит курьер и говорит так и так, пересоздайте заказ плыз, ну те почему то на тот момент нельзя было переназначить курьера, саппорт в итоге тоже не смог помочь. Заказ отменил, пересоздал. В итоге на все про все час или полтора убито.
В описанной модели, вообще не учитывается прогноз по местоположению курьеров?
Если во время получения заказа, у отдельного курьера есть текущий заказ, то его местоположение можно с высокой долей вероятности определить на момент выполнения текущего заказа, где-то в интервале получаса.
Если у курьера, нет заказа, то я полагаю, что его поведение, тоже вполне можно предсказать. Он с огромной вероятностью будет двигаться в сторону местных ресторанов.
Еще один вопрос, Яндекс.Ровер когда в поля пойдет?
Отвечаю по пунктам :)

1. Если у курьера нет заказа, то прямо сейчас мы не пытаемся прогнозировать его местоположение в будущем. Но идея хорошая. Более того, было бы классно предлагать курьеру куда-то переместиться с целью повышения вероятности получить заказ и, соответственно, заработка. Такое есть в планах!
2. Если у курьера есть заказ и он движется по маршруту, то это уже учитывается при расчете «успевания» в ресторан и к клиенту для нового заказа. И в значимом проценте случаев мы назначаем новый заказ «по цепочке».
3. Про Ровер пока не могу назвать точных сроков, но могу сказать, что мы работаем над этим :)
Ровер уже трудоустроен в Сколково. =)
Какой допустимый % SLA при этом всем?
Если под SLA подразумевать отмены по логистическим причинам и опоздания более, чем на 10 минут, то по первому это <0.5%, а по второму <10% от всех заказов.

Доброго времени суток, спасибо за статью! У меня следующий вопрос: тестируете ли вы подобные алгоритмы логистики на каких-нибудь симуляциях? Или выгоднее получить реальные результаты алгоритма, развернув его в каком-нибудь отдельном городе, как было сделано в конкретном случае?

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

Недавно заказывали через couriercloud, там как то рассчитывают и распределяют очень ловко.

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


Спасибо за статью! Осталась нераскрытой тема ограничений при поиске курьера.
Как вы определяете что курьер успеет получить заказ вовремя, как формируются границы области по которым ведётся поиск курьеров? Возможно используете опыт коллег из Яндекс.Маршрутизации? https://habr.com/ru/company/yandex/blog/496818/

На самом деле, много о чем можно было и хотелось бы рассказать, но все не уместил в один пост :) Отвечаю на Ваши вопросы:
1. «Как вы определяете что курьер успеет получить заказ вовремя?» — у нас есть delivery promise — время, в которое мы обещали клиенту доставить заказ; далее мы в некотором радиусе находим курьеров, рассчитываем время прибытия для каждого из них и выбираем тех, кто успевает к клиенту (или не сильно опаздывает, не больше X минут) и уже из этих кандидатов выбираем «победителя». Есть ряд нюансов, связанных с тем, что у нас есть приоритизация среди курьеров в зависимости от того на каком слоте они работают, но это уже не столь важно.
2. «Как формируются границы области по которым ведётся поиск курьеров?» — это отдельная оптимизационная задача, в двух словах про неё не рассказать. Думаю, что сможем осветить это в отдельном посте.

Несовсем понятно, что подразумевается под термином "оборачиваемость". Это количество заказов на курьера? В час или в день? Или в принципе?

Ага, вот определение из статьи: «Под эффективностью мы понимаем оборачиваемость — среднее число заказов, которые курьер успевает доставить за час.»

Роман доброго дня! Любопытная у Вас статья и с удовольствием её прочитал. Так сложилось, что в далёком прошлом я программист, а теперь владелец ресторана и давно ищу того самого таинственного из Яндекс.Еда, чтобы дать Вам обратную связь о работе ваших алгоритмов. Мой коммента скорее не вопрос или уточнение алгоритма, а обратная связь как он работает. Мне очень нравится, что Ваша цель поиска баланса счастья у курьеров, ресторанов и их гостей, но увы не все так гладко в алгоритме. Если с логистикой я могу подтвердить, что в целом ваши размышления верны и алгоритм работает на отлично, то обратная сторона медали это проблема количества заказов для ресторанов. В итоге Ваши курьеры сидят на лавочках как воробушки и играют в телефон. Причина банальна, мой опыт говорит, что в среднем я свой заказ отдаю от 5 до 10 минут быстрее, чем Вы делаете свой прогноз. А далее получается интересная история, я в своём районе, как и мои коллеги, по какой-то причине оказываемся в хвосте за ресторанами которые находятся даже далее нашей зоны доставки вашими курьерами. А результат работы алгоритма отсутствие заказов и простой ваших курьеров. Мне кажется где-то с показателем прогноза приготовления и позицонированием ресторана на вашем сайте у вас явно есть ошибка, так как от вашего ближайшего конкурента мы в итоге получаем заказов в десятки раз больше, ещё раз обращаю внимание в десятки раз больше. Хотя и у них есть проблемы с алгоритмами, но это уже другая история.

Доброго дня! Спасибо за позитивный фидбек.

А далее получается интересная история, я в своём районе, как и мои коллеги, по какой-то причине оказываемся в хвосте за ресторанами которые находятся даже далее нашей зоны доставки вашими курьерами.

Если я правильно Вас понял, то речь про позицию в выдаче ресторанов. Если это так, то на эту самую позицию влияет не только время приготовления и доставки, но и другие факторы, такие как рейтинг, количество отмен и т.п. Впрочем, вероятно, Вы имеете ввиду, что время приготовления + доставки определяется нами неверно.

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

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

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

Ещё раз спасибо!

Доброго дня!


То, что позиция на сайте зависит от многих факторов это прозрачно и понятро, но когда по выдаче очевидно, что вне зоны нашего района выше нас оказываются рестораны с более длинным плечом логистики с српоставимым или меньшим временем приготовления, это выглядит странным. Я даже вижу с такими условиями с рестораны с более низким рейтингом чем мы. Конечно я с удовольствием могу дать Вам в личку название ресторана, но мне даже не верится что кто-то может как-то вменяемо дать обратную связь и совместно подумать над самым главным вопросом и собственно основной целью нашего сотрудничества — взаимный бизнес. Наш менеджер от Вас уже месяц пообещал и пропал, что всех проинформировал, а обратной связи нет до сих пор и разводит руками. Возможно Вам интересен показатель в деньгах по нашей ситуации, то для примера на одной из недель мы с вами получили выручку в размере смешных около 800р против около 40 тысяч у вашего основного конкурента. Если есть мотивация как поменяться к лучшему, готов оказать содействие в обратной связи.

А штрафы курьеров за превышение заниженного рассчётного времени доставки и прочий каждый чих уже убрали?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.