(low) 08_enrich_economics.py/main: real_n_lots/sold_pct/price считаются по всем лотам, но отчёт подписывает их как период (12 мес/90 дней) #1513

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

Severity: low · Категория: report · Файл: site-finder/08_enrich_economics.py:53-75

08_enrich_economics.py:53-75 — выборка objective_lots без фильтра по дате: n_lots=len(items) (строка 67), n_sold/sold_pct по всем когда-либо проданным (70), median/p25/p75 по всем sold-лотам с ценой (72-75). Только velocity ограничена cutoff_12mo (64,87,93). Это накопительные показатели за всю историю проектов. При этом отчёт 04_report.py:166 утверждает «real_* рассчитаны по N лотам ... основной источник правды», а заголовок 04:250 — «последние 90 дней». Импакт: sold_pct и median цены — за всю историю (старые цены смешаны с текущими), но подписаны как период → вводит в заблуждение. Фикс: либо явно подписать как накопительные, либо добавить фильтр по периоду для sold_pct/цены.

Почему баг: sold_pct = доля проданного за всю историю проектов района, а не за период. Цена-медиана — по всем историческим продажам (включая старые цены). Это нормальный накопительный показатель, но он подписан в отчёте как 90 дней/период, что вводит в заблуждение и смешивает старые цены с текущими.

Как чинить: Либо явно подписать real_* как накопительные за всю историю, либо ограничить цену/sold_pct скользящим окном; синхронизировать с заголовком отчёта.


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

**Severity:** low · **Категория:** report · **Файл:** `site-finder/08_enrich_economics.py:53-75` 08_enrich_economics.py:53-75 — выборка objective_lots без фильтра по дате: n_lots=len(items) (строка 67), n_sold/sold_pct по всем когда-либо проданным (70), median/p25/p75 по всем sold-лотам с ценой (72-75). Только velocity ограничена cutoff_12mo (64,87,93). Это накопительные показатели за всю историю проектов. При этом отчёт 04_report.py:166 утверждает «real_* рассчитаны по N лотам ... основной источник правды», а заголовок 04:250 — «последние 90 дней». Импакт: sold_pct и median цены — за всю историю (старые цены смешаны с текущими), но подписаны как период → вводит в заблуждение. Фикс: либо явно подписать как накопительные, либо добавить фильтр по периоду для sold_pct/цены. **Почему баг:** sold_pct = доля проданного за всю историю проектов района, а не за период. Цена-медиана — по всем историческим продажам (включая старые цены). Это нормальный накопительный показатель, но он подписан в отчёте как 90 дней/период, что вводит в заблуждение и смешивает старые цены с текущими. **Как чинить:** Либо явно подписать real_* как накопительные за всю историю, либо ограничить цену/sold_pct скользящим окном; синхронизировать с заголовком отчёта. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.82 · unit U114</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:59:02 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:02:16 +00:00
bot-backend added the
needs-human
label 2026-06-15 16:44:13 +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#1513
No description provided.