Шкала выгодности 0–100: не «да или нет», а «насколько»
Вердикт отвечает, брать заказ или нет. Круговой датчик показывает, насколько он хорош — и позволяет из двух зелёных выбрать тот, что выгоднее.
Пришло два заказа, оба зелёные — «стоит ехать». Оба окупаются, оба выше вашей планки. Но взять успеете только один. Который? По цвету они одинаковые, а по деньгам — нет. Вот тут «да/нет» перестаёт помогать: нужно не решение, а мера.
Вердикт — это ответ на вопрос «ехать?». Число на шкале — ответ на вопрос «а насколько выгодно?». Первое спасает от убытков, второе помогает выбирать лучшее из хорошего.
Что видит человек
На экране «Оценка» вокруг заказа рисуется кольцо-датчик, а в центре — число от 0 до 100. Чем выше балл, тем жирнее заказ. И цвет кольца всегда совпадает с числом — они не спорят друг с другом:
Не стоит — балл в нижней полосе. На грани — в средней. Стоит ехать — в верхней.
Так вы никогда не увидите красное кольцо с числом 80 или зелёное с числом 20 — цвет и цифра говорят одно и то же, просто с разной точностью.
Вердикт делит заказы на «брать» и «не брать». Балл ранжирует те, что внутри одной корзины.
Что за этим стоит
Балл не берётся отдельным расчётом «на глазок» — он строится поверх уже готового вердикта. Сначала приложение решает, в какую полосу попадает заказ: красную, жёлтую или зелёную. А потом определяет место внутри полосы — у нижнего края, у верхнего или посередине.
Положение внутри полосы задаётся плавно, без ступенек. За плавность отвечает функция tanh — она мягко сжимает разброс так, чтобы очень выгодный и запредельно выгодный заказ не улетали к разным краям шкалы, а различие оставалось читаемым. Ключ здесь — маржинальная ставка заказа: сколько он приносит на каждый вложенный час относительно вашей целевой ставки.
- Заказ ровно на целевой ставке даёт балл примерно в середине своей полосы — крепкая норма, ни хуже, ни лучше ожидаемого.
- Выше цели — балл ползёт к верхнему краю полосы.
- Ниже цели — к нижнему.
Масштаб чувствительности привязан к вашей цели: он равен 0,6 от целевой ставки. Проще говоря, шкала настроена под ваши деньги, а не под абстрактные рубли — одно и то же превышение у разных людей отклонит стрелку по-разному.
Почему это важно
Самая дорогая ошибка выездника — не взять убыточный заказ (от него защищает цвет), а взять хороший вместо отличного. Разница между двумя зелёными заказами — это не «повезло/не повезло», это ваш заработок за смену, сложенный из десятков мелких «который из двух».
Число превращает расплывчатое «оба вроде норм» в честное «этот на 84, а этот на 71 — беру первый». Секундное решение, но за месяц из таких секунд складывается ощутимая разница в кошельке. Цвет бережёт от минуса. Число вытягивает к максимуму.
Как устроена шкала
- Балл считает profitability_score() в profitability_service.py — переводит вердикт в число 0–100 для кругового датчика на экране «Оценка».
- Число всегда согласовано с цветом: skip → 5–33, edge → 34–66, go → 67–96 — цифра и цвет не противоречат.
- Позиция внутри полосы задаётся плавно через tanh по маржинальной ставке заказа относительно вашей цели.
- Масштаб чувствительности — 0,6 × целевая ставка; ровно на целевой ставке балл ≈ середина полосы.
- Если целевая ставка ещё неизвестна, балл опирается на знак маржинальной ставки — плюс или минус.
Проверь любой заказ за секунду
Установи приложение и посмотри честный вердикт по своему следующему адресу — стоит ехать или нет.
Скачать для Android Android 8+ · установка из файла · бесплатно