Вторая половина заголовка здесь не для скромности. Она и есть главное: числу можно верить ровно настолько, насколько понятно, откуда оно взялось.
Обычный маршрутизатор считает время по классу дороги: «федеральная трасса — значит столько-то километров в час». На бумаге разумно, на практике ошибается заметно. Для Москвы — Казани такой расчёт даёт 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 ₽ днём в субботу; одно «среднее» число здесь было бы неверным для большинства читателей.
Пробок нет. В наших данных нет текущей загрузки дорог, поэтому время не зависит от того, в котором часу вы выезжаете. Наше время — про дорогу, а не про конкретное утро понедельника.
Погоды и сезона тоже нет. Зимняя трасса и летняя считаются одинаково.
Расход мы не измеряем, а берём от вас. Сайт не знает вашу машину: бак, остаток и расход вы вводите сами, и весь расчёт «хватит ли» строится на этих трёх числах. Они остаются в вашем браузере и никуда не отправляются — об этом отдельно на странице обработки данных.
Мы не строим объезды. Если у пары городов есть платный и бесплатный путь, мы показываем сравнение только там, где бесплатный вариант посчитан по настоящей дороге. Придумывать точку объезда «на глаз» и выдавать результат за маршрут мы не стали.
Любой сайт может сказать «мы считаем точно». Проверить это нельзя, а значит и верить нечему. Поэтому здесь названы конкретные числа, способ их получения и граница, за которой они перестают работать. Если какое-то из них покажется вам неправдоподобным — напишите, это ровно та обратная связь, которой нам не хватает.