fix(site-finder): раскрыть proxy-fraction в EKB-median velocity-бенчмарке (#2445-A4) #2448
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
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#2448
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/velocity-ekb-median-proxy-disclosure"
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?
Summary
Аудит-находка A4 (epic #2445).
_get_ekb_medianсодержитCOALESCE(deals_total_vol_m2, deals_total_count*45.0)— фабрикует «45 м²/сделку» для строк без реального Объектив-объёма, молча засоряя city-wide знаменатель нормализации, по которому считаетсяvelocity_scoreкаждого участка. Без сигнала качества.Fix (disclosure, не exclusion)
Расширен существующий SF#1871-P2 disclosure-паттерн (уже применён для rosreestr_fallback) на этот бенчмарк:
_get_ekb_medianвозвращает(median, proxy_row_fraction), поверхностно вVelocityResult.ekb_median_proxy_fraction. Fraction и median считаются над одним CTE (та жеHAVING >= 3выборка) → disclosure честный. Аддитивное поле loose-dict ответа → openapi-codegen не требуется (verified).Исключение (а не disclosure) выкинуло бы реально продающийся, но без-м² проект из бенчмарка целиком — другая, но столь же нечестная деформация; docstring не указывает, что real-data-only когда-либо был замыслом.
Test plan
CASTсоблюдёнFollow-up (вынесено, не в этом PR)
2 оставшихся
COALESCE(..., *45.0)сайта (velocity.py:273/405, per-competitortotal_sqm/sqm_sold) — меньший blast radius (один участок, не глобальный знаменатель). Заведу отдельным issue.Refs #2445