fix(tradein/v2): честная подача интервала оценки — одна цифра-герой + честный разброс #2159

Merged
lekss361 merged 1 commit from fix/tradein-v2-hero-honest-interval into main 2026-07-02 16:20:07 +00:00

1 commit

Author SHA1 Message Date
d63122d3e4 fix(tradein/v2): честная подача интервала оценки — одна цифра-герой + честный разброс
All checks were successful
CI / changes (pull_request) Successful in 8s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
Оценщик жаловался на «большой интервал» между рекомендованной ценой и
оценкой. Бэктест: ширину коридора косметически не сузить (реальная рыночная
дисперсия + asking→sold gap). Чиним подачу, не число (математика не тронута).

Витрина /trade-in/v2 (активная, wired на real data через mapResultPanel):
- deltaLabel «К РЫНКУ» → «К ОБЪЯВЛ.» (mappers.ts + fixtures.ts): −N% —
  разрыв «объявление → ожидаемая сделка», а не «скидка от нас».
- ResultPanel: честная подпись под ценовыми карточками — «Диапазоны
  показывают разброс цен на рынке, а не погрешность оценки». Широкий
  диапазон не читается как неуверенность расчёта.
- Иерархия expected_sold=headline / median=baseline / ДКП=справочно уже
  была (audit H2, #2062/#2081) — не трогаем.

Легаси-витрина / (HeroSummary), тот же принцип и устранение конфликта термина:
- hero-duo: expected_sold — цифра-герой («Оценка · ожидаемая цена продажи»,
  34px, accent), median — вторичный «Рекомендованная цена в объявлении»
  (20px, приглушённый) вместо двух равнозначных 28px-блоков «Выставить»/
  «Получить». Новый модификатор .hero-duo--sold-primary.
- Диапазон sold подписан «рыночный разброс» + honest hint «Диапазон отражает
  разброс цен по рынку, а не погрешность оценки».
- Бейдж «−N%» → «−N% к объявлению» + title (разрыв asking↔сделка, не скидка).
- OfferCard: «Оценка по рынку» → «Цена в объявлении» (median ≠ «оценка»;
  слово «оценка» на витрине = expected_sold).

Проверка: tsc --noEmit чисто; next build чисто (lint+types, 13 роутов).
2026-07-02 19:16:37 +03:00