← Дотяну

Как мы считаем — и чего не знаем

Вторая половина заголовка здесь не для скромности. Она и есть главное: числу можно верить ровно настолько, насколько понятно, откуда оно взялось.

Время в пути

Обычный маршрутизатор считает время по классу дороги: «федеральная трасса — значит столько-то километров в час». На бумаге разумно, на практике ошибается заметно. Для Москвы — Казани такой расчёт даёт 11,9 часа там, где реальная поездка занимает около семи.

Мы вместо этого измерили скорость по трекам настоящих поездок — двенадцать дней за рулём, с записью пути. Каждый участок пути привязан к дороге из OpenStreetMap, и для трёх типов дорог получились свои средние скорости:

Тип дорогиСкорость
Скоростная трасса (М-12)125,5 км/ч
Обычная трасса вне застройки87,9 км/ч
В населённых пунктах46,8 км/ч

Это не «средняя скорость по больнице»: четыре дня ушли на подбор коэффициентов, а восемь других — на проверку. На этих восьми днях коэффициенты не менялись, и предсказанное время разошлось с фактическим в среднем на 4,4%. Для сравнения, расчёт по классу дороги на тех же поездках занижал скорость на 20—30% — а значит, завышал время ещё сильнее.

Что считается «населённым пунктом»

Не класс дороги, а разрешённая на ней скорость. Разница неочевидная, но существенная: объездная вокруг города по тегам остаётся «трассой», хотя ограничение там уже городское — 60. Если верить классу дороги, такой участок посчитается как загородный, и время выйдет слишком коротким. Мы смотрим на ограничение скорости, а класс используем только там, где ограничения в данных нет. Два признака совпадают между собой в 78,9% случаев — оставшийся 21% и есть те самые объездные.

Где наше время завышено — и мы об этом говорим

Скорость 125,5 км/ч измерена ровно на одной дороге — М-12. Она единственная вышла далеко за общий разброс: у основной массы трасс получилось 75—95 км/ч, и между ними и М-12 зазор в двадцать километров в час.

По М-4, М-11 и другим скоростным трассам своих замеров у нас нет. Мы не стали придумывать им скорость и считаем их как обычные трассы — то есть время для них завышено. На таких страницах вместо «обычно около» написано «не больше»: человек приедет раньше обещанного, а не опоздает.

Единственное допущение, которое мы себе позволили: для М-11 и ЦКАД скорость получена как их разрешённый лимит, умноженный на измеренное на М-12 отношение реальной скорости к разрешённой. У этого решения в наших записях есть автор и дата — мы считаем, что о таком надо говорить, а не растворять в формуле.

Заправки

Заправки берутся из OpenStreetMap — открытой карты, которую наполняют люди. Отсюда три следствия, о которых честнее сказать заранее.

Станция могла закрыться. Карта отражает то, что кто-то однажды внёс, и не всегда то, что стоит на дороге сегодня.

У части заправок нет названия. Мы не подставляем вместо него «АЗС» и не выдумываем марку: если вывеска неизвестна, так и написано. Но такая заправка всё равно считается в разрывах — иначе мы бы придумали пустой перегон там, где заправка есть.

Газовые станции исключены полностью. Среди «заправок» на карте много АГЗС и метановых — для вопроса «хватит ли бензина» такая точка хуже неизвестной: она выглядит спасением и им не является.

Платные дороги

Цены взяты из приказов оператора — тех самых документов, которыми тарифы утверждаются. У каждой цены на странице указан номер приказа и дата, с которой он действует.

Про этот раздел стоит рассказать случай, потому что он объясняет наш подход лучше любых обещаний.

Сначала на странице Москва — Казань стояло «от 5000 ₽». Потом мы нашли источник поточнее и поставили «от 4998 ₽, тариф зависит от времени суток».

Когда дошли до самого приказа, оказалось, что неверны оба утверждения: проезд стоит 5847 ₽, и от времени суток он не зависит вовсе. Три источника — три разные цены, и все три выглядели солидно.

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

Там, где приказ допускает два прочтения, цены нет. Так было с М-4: два платных участка накладываются друг на друга, и из текста не следует, платит ли проезжающий насквозь за оба. Разница между «530 ₽» и «310 ₽» — не округление, а разные утверждения о деньгах, и страница молчала, пока мы не знали, какое верное.

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

Где плата зависит от дня недели или времени суток — показан диапазон, а не одно число. Участок М-11 до Солнечногорска стоит от 880 ₽ ночью до 1650 ₽ днём в субботу; одно «среднее» число здесь было бы неверным для большинства читателей.

Чего мы не умеем

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

Погоды и сезона тоже нет. Зимняя трасса и летняя считаются одинаково.

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

Мы не строим объезды. Если у пары городов есть платный и бесплатный путь, мы показываем сравнение только там, где бесплатный вариант посчитан по настоящей дороге. Придумывать точку объезда «на глаз» и выдавать результат за маршрут мы не стали.

Почему всё это написано

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