Не показывается в UI. Считается отдельно для роли клиента и исполнителя (rating_as_client, rating_as_executor). Публичные звёзды — сущность reviews, это другой контур. В поиске рейтинг не участвует: список сортируется по расстоянию и цене, клиент сужает фильтрами.
Цифры утверждены. Один паттерн.
rating_events.Оба подтвердили исполнение (completed) и клиент сам нажал «работа выполнена» (не авто).
| Кому | Балл |
|---|---|
| Исполнитель | +5 |
| Клиент | +3 |
На заказ плюс один раз.
Автоподтверждение молчащего клиента: исполнителю +5, клиенту +3 нет, клиенту −3 (late_confirm).
Автоподтверждение молчащего исполнителя: заказ всё равно completed в пользу исполнителя (работа по сути сделана). Исполнителю +5 за успех и −3 (late_confirm). Клиенту +3 (он сам нажал «работа выполнена»).
Админ закрыл спор в completed — как успех (+5 / +3), без late_confirm.
Всегда −3 виновной стороне:
| Событие | event_type |
Кому |
|---|---|---|
| Таймаут 5 минут на запрос (не ответил = отказ) | timeout (response_timeout) |
исполнитель |
| Не подтвердил условия за 1 сутки | timeout (terms_timeout) |
исполнитель |
| Автоподтверждение: сторона молчала сутки после первого «работа выполнена» | late_confirm |
молчавший (клиент или исполнитель) |
| Не оплатил безопасную сделку за 1 сутки (заказ возвращается в поиск) | payment_timeout |
клиент |
Отмена на published без причины — 0. Снятие запроса (withdrawn) — 0. Автоотказ (auto_declined: исполнитель принял другой срочный заказ) — 0 обеим сторонам. Системная отмена «исполнитель не найден» и отмена админом — 0.
Сторона, на которую указывает код. Тяжесть × стадия, округление как round, минимум 1 если балл ≠ 0.
Тяжесть:
| Уровень | Балл до коэффициента |
|---|---|
| лёгкий | −3 |
| средний | −6 |
| тяжёлый | −9 |
Стадия:
| Статус | Коэффициент |
|---|---|
published |
0.5 |
in_negotiation, awaiting_payment |
1.0 |
in_progress плановый до planned_start_at (отмена) |
1.0 |
in_progress, completed (спор) |
1.5 |
Клиент нажал:
| code | Тяжесть | С кого |
|---|---|---|
found_another |
лёгкий | клиент |
price_disagreement |
лёгкий | клиент |
no_contact |
средний | исполнитель |
late_or_no_show |
тяжёлый | исполнитель |
wrong_equipment |
тяжёлый | исполнитель |
quality |
тяжёлый | исполнитель |
other |
— | 0, очередь админу |
Исполнитель нажал:
| code | Тяжесть | С кого |
|---|---|---|
busy_or_broken |
лёгкий | исполнитель |
price_disagreement |
лёгкий | исполнитель |
unsafe |
лёгкий | клиент |
no_contact_client |
средний | клиент |
site_not_ready |
средний | клиент |
scope_changed |
средний | клиент |
not_paid |
тяжёлый | клиент |
other |
— | 0, очередь админу |
Спор, отклонение партнёра и отмена планового до начала используют те же коды и стадию на момент события.
other: событие pending_admin, delta = 0; админ ставит дельту через POST /admin/rating-events/{id}/resolve.
После выплаты (captured) админ в споре не двигает деньги; санкция к пользователю — через этот рейтинг и/или блокировку.