витрина: разброс показанных строк рядом с медианой всей сверки #3269
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3269
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/showcase-spread-footnote"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что не так было
Посетитель видит 20 строк сверки «прогноз против ДКП» и не может понять, где они лежат относительно выборки. Первой в таблице стоит сделка с расхождением +75,7 % — она попала туда законно (отбор по полноте и свежести), но читается как «вот их точность».
Переупорядочить нельзя: отбор по величине ошибки — это ровно тот дефект, который уже был убран из
landing_showcase_deals.py. Возвращать его в другом виде нельзя.Что сделано
Не переупорядочиваем, а даём контекст. Под таблицей появляется строка:
Замер на проде 30.08.2026: показанные 11,5 % против 14,5 % по всей выборке — то есть двадцатка на экране немного удачнее случайной, и теперь это видно, а не скрыто.
Решения
WITHIN_PCTрядом с фильтром. Гейт витринных чисел справедливо покраснел на вписанных руками «20 %» при<= 20в коде — это две независимые величины, которые разъедутся при первой правке.Проверки
shown-spread.test.ts— 6 проверок по ЗНАЧЕНИЮ: модуль вместо знака, медиана вместо среднего, включающая граница порога, числовая сортировка вместо лексикографической.Мутационный прогон: снятие
Math.absв исходнике даётexpected 0.5 to be 21.5— красное по значению, не ImportError.Вся папка: 123 passed (10 файлов).
tsc --noEmitиeslint --max-warnings 0чисто.Отдельно, вне этого PR
Витрина на проде до сих пор показывала реконструированные цены (
2 900 008,10 600 012— только 2 из 20 круглых): правкаfact_rub = deals.price_rubбыла смержена, но таблицу не пересчитывали. Пересчёт запущен, теперь 17 из 20 круглых, а все три некруглые (6 064 696,5 934 451,7 182 187) существуют вdeals.price_rubдословно — это настоящие суммы договоров.