(medium) 04_report.py/build_html: заголовок «последние 90 дней» не соответствует реальным периодам real_* (12 мес / всё время) #1506

Closed
opened 2026-06-15 05:58:54 +00:00 by bot-backend · 1 comment
Collaborator

Severity: medium · Категория: report · Файл: site-finder/04_report.py:250-251

04_report.py:250 — секция озаглавлена «Экономика района (Объектив API, последние 90 дней)», но выводимые real_* метрики имеют другие периоды: velocity в 08_enrich_economics.py:64,93 считается по cutoff_12mo (12 мес, /12.0), а n_lots/n_sold/sold_pct/median/p25/p75 (08:70-75) — по ВСЕМ лотам без фильтра по дате. Никакого окна 90 дней у real_* нет. В самом блоке (строка 161) скорость подписана «(по 12 мес)», что уже противоречит заголовку 90 дней. Импакт: ложная атрибуция периода для клиента. Фикс: переименовать заголовок в соответствии с фактическими окнами (накопительно/12 мес) или добавить реальный 90-дневный расчёт.

Почему баг: 08_enrich_economics.py: cutoff_12mo=today-365, velocity=len(reg_dates)/12.0/n_corp_real; n_lots=len(items) без даты. Значит «90 дней» в заголовке — ложная атрибуция периода для клиента: скорость по году, доли продаж — за всё время, а подписано как 90 дней.

Как чинить: Сменить заголовок на корректный период (напр. «real_* — накопленный per-flat срез, скорость за 12 мес») либо считать метрики на реальном 90-дневном окне, если хочется именно 90 дней.


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

**Severity:** medium · **Категория:** report · **Файл:** `site-finder/04_report.py:250-251` 04_report.py:250 — секция озаглавлена «Экономика района (Объектив API, последние 90 дней)», но выводимые real_* метрики имеют другие периоды: velocity в 08_enrich_economics.py:64,93 считается по cutoff_12mo (12 мес, /12.0), а n_lots/n_sold/sold_pct/median/p25/p75 (08:70-75) — по ВСЕМ лотам без фильтра по дате. Никакого окна 90 дней у real_* нет. В самом блоке (строка 161) скорость подписана «(по 12 мес)», что уже противоречит заголовку 90 дней. Импакт: ложная атрибуция периода для клиента. Фикс: переименовать заголовок в соответствии с фактическими окнами (накопительно/12 мес) или добавить реальный 90-дневный расчёт. **Почему баг:** 08_enrich_economics.py: cutoff_12mo=today-365, velocity=len(reg_dates)/12.0/n_corp_real; n_lots=len(items) без даты. Значит «90 дней» в заголовке — ложная атрибуция периода для клиента: скорость по году, доли продаж — за всё время, а подписано как 90 дней. **Как чинить:** Сменить заголовок на корректный период (напр. «real_* — накопленный per-flat срез, скорость за 12 мес») либо считать метрики на реальном 90-дневном окне, если хочется именно 90 дней. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.9 · unit U114</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:58:54 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:02:15 +00:00
Owner

🔍 week ревью 1 — верификация (ПОДТВЕРЖДЕНО)

Текущее состояние кода: site-finder/04_report.py:250 (заголовок секции); реальные периоды — site-finder/08_enrich_economics.py:64,70,93.

Корень: :250 секция озаглавлена «Экономика района (Объектив API, последние 90 дней)», но выводимые real_* метрики имеют другие окна: в 08_enrich_economics.py velocity = len(reg_dates)/12.0/n_corp_real (:93, фильтр cutoff_12mo = today-365 на :64,87) — то есть 12 месяцев; n_lots/n_sold/sold_pct (:67-70) считаются по ВСЕМ лотам без фильтра по дате (накопительно). Никакого 90-дневного окна у real_* нет. Внутри econ_block скорость уже подписана «(по 12 мес)», что прямо противоречит заголовку 90 дней. Ложная атрибуция периода для клиента.

Что править:

  • Сменить заголовок на корректный, напр. «Экономика района (Объектив API · доли продаж накопительно, скорость за 12 мес)».
  • Либо, если нужен именно 90-дневный срез, добавить реальный расчёт по окну today-90 в 08_enrich_economics.py и выводить его.

Что посмотреть:

  • Код: 04_report.py:250-251; 08_enrich_economics.py:64,67-70,80-93.
  • Vault: релевантных заметок не найдено.
**🔍 week ревью 1 — верификация (ПОДТВЕРЖДЕНО)** **Текущее состояние кода:** `site-finder/04_report.py:250` (заголовок секции); реальные периоды — `site-finder/08_enrich_economics.py:64,70,93`. **Корень:** `:250` секция озаглавлена «Экономика района (Объектив API, последние 90 дней)», но выводимые `real_*` метрики имеют другие окна: в `08_enrich_economics.py` `velocity = len(reg_dates)/12.0/n_corp_real` (`:93`, фильтр `cutoff_12mo = today-365` на `:64,87`) — то есть 12 месяцев; `n_lots`/`n_sold`/`sold_pct` (`:67-70`) считаются по ВСЕМ лотам без фильтра по дате (накопительно). Никакого 90-дневного окна у `real_*` нет. Внутри `econ_block` скорость уже подписана «(по 12 мес)», что прямо противоречит заголовку 90 дней. Ложная атрибуция периода для клиента. **Что править:** - Сменить заголовок на корректный, напр. «Экономика района (Объектив API · доли продаж накопительно, скорость за 12 мес)». - Либо, если нужен именно 90-дневный срез, добавить реальный расчёт по окну `today-90` в `08_enrich_economics.py` и выводить его. **Что посмотреть:** - Код: `04_report.py:250-251`; `08_enrich_economics.py:64,67-70,80-93`. - Vault: релевантных заметок не найдено.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#1506
No description provided.