(low) trade_in_pdf._build_listings_page: строка «(с учётом ремонта)» дублирует тот же n_total, фильтрации по ремонту нет #1531

Closed
opened 2026-06-15 05:59:22 +00:00 by bot-backend · 0 comments
Collaborator

Severity: low · Категория: report · Файл: tradein-mvp/backend/app/services/exporters/trade_in_pdf.py:626-630, 702-706

trade_in_pdf.py:629 — n_with_repair = n_total; на стр.2 (строки 702-706) рисуются две строки таблицы: «Количество объявлений по аналогичным объектам» = N и та же подпись «(с учётом ремонта)» = N. Оба числа всегда идентичны. Комментарий (627-628) утверждает, что estimator уже отфильтровал по repair_state — но выборка аналогов не фильтруется по ремонту (применяется лишь ценовой коэффициент к медиане/диапазону). Импакт: клиент видит две одинаковые цифры под разными смыслами, что вводит в заблуждение, будто подобраны объекты именно с похожим ремонтом. Чинить: либо убрать строку-дубль, либо считать реальный отфильтрованный по repair_state count.

Почему баг: Это утверждение ложно: estimator.py не фильтрует аналоги по repair_state (покрытие listings.repair_state ~2%, см. estimator.py:160-164), а лишь применяет ценовой коэффициент _repair_coefficient к медиане/диапазону (estimator.py:1992-1998). То есть выборка аналогов НЕ отфильтрована по ремонту, а строка «(с учётом ремонта)» подаёт тот же самый общий счёт как «отфильтрованный по ремонту». Клиент видит две одинаковые цифры под разными смыслами — вводит в заблуждение о том, что подобраны именно объекты с похожим ремонтом.

Как чинить: Либо убрать вторую строку «(с учётом ремонта)» (ремонт учитывается коэффициентом цены, а не фильтром выборки), либо показывать честную надпись («оценка скорректирована на ремонт коэффициентом, выборка по ремонту не фильтровалась»). Поправить вводящий в заблуждение комментарий.


deep-audit «армия ботов 2» · verify+harden, confidence 0.8 · unit U129

**Severity:** low · **Категория:** report · **Файл:** `tradein-mvp/backend/app/services/exporters/trade_in_pdf.py:626-630, 702-706` trade_in_pdf.py:629 — `n_with_repair = n_total`; на стр.2 (строки 702-706) рисуются две строки таблицы: «Количество объявлений по аналогичным объектам» = N и та же подпись «(с учётом ремонта)» = N. Оба числа всегда идентичны. Комментарий (627-628) утверждает, что estimator уже отфильтровал по repair_state — но выборка аналогов не фильтруется по ремонту (применяется лишь ценовой коэффициент к медиане/диапазону). Импакт: клиент видит две одинаковые цифры под разными смыслами, что вводит в заблуждение, будто подобраны объекты именно с похожим ремонтом. Чинить: либо убрать строку-дубль, либо считать реальный отфильтрованный по repair_state count. **Почему баг:** Это утверждение ложно: estimator.py не фильтрует аналоги по repair_state (покрытие listings.repair_state ~2%, см. estimator.py:160-164), а лишь применяет ценовой коэффициент `_repair_coefficient` к медиане/диапазону (estimator.py:1992-1998). То есть выборка аналогов НЕ отфильтрована по ремонту, а строка «(с учётом ремонта)» подаёт тот же самый общий счёт как «отфильтрованный по ремонту». Клиент видит две одинаковые цифры под разными смыслами — вводит в заблуждение о том, что подобраны именно объекты с похожим ремонтом. **Как чинить:** Либо убрать вторую строку «(с учётом ремонта)» (ремонт учитывается коэффициентом цены, а не фильтром выборки), либо показывать честную надпись («оценка скорректирована на ремонт коэффициентом, выборка по ремонту не фильтровалась»). Поправить вводящий в заблуждение комментарий. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.8 · unit U129</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:59:22 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:02:19 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1531
No description provided.