(medium) MarketTab.tsx/MarketTab: подпись «строящихся» не соответствует activeCount (включает сданные ≤1 года) #1457

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

Severity: medium · Категория: report · Файл: frontend/src/components/site-finder/MarketTab.tsx:64-73, 103-105, 147-151

MarketTab.tsx:64-73, 103-105, 147-151. relevantCompetitors включает: site_status==='Строящиеся' ИЛИ ready_dt>=yearAgoTs (сданные ≤1 года назад или с будущей датой готовности). activeCount=relevantCompetitors.length. Headline-bar выводит <strong>{activeCount} строящихся в {radiusKm}км</strong> (стр. 104), KPI «Активные ЖК» подписан «строящихся в радиусе {radiusKm}км» (стр. 150). Фактически activeCount включает и Сданные комплексы. Слово «строящихся» завышает число объектов в стройке: сданные посчитаны как строящиеся. SectionLabel секции конкурентов (стр. 261) при этом корректно: «строящиеся или сданы ≤1 года». Импакт: data-vs-text рассинхрон в верхней плашке-вердикте и KPI. Medium — числа верны, искажена только формулировка. Фикс: подпись «активных в радиусе {radiusKm}км» / «строящихся и недавно сданных», без слова «строящихся» в одиночку.

Почему баг: activeCount по построению включает и «Сданные» ЖК, сданные ≤1 года назад (или с будущей датой готовности, не имеющие статуса «Строящиеся»). Подпись «строящихся» завышает число объектов в стройке: сданные комплексы посчитаны как строящиеся. Это data-vs-text рассинхрон в верхней плашке-вердикте, на которую смотрит финдиректор в первые 8 секунд.

Как чинить: Либо переименовать в «активных конкурентов» / «активные ЖК» (как и заголовок KPI-карточки), убрав слово «строящихся», либо отдельно считать чисто строящиеся (site_status === 'Строящиеся') для этой подписи.


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

**Severity:** medium · **Категория:** report · **Файл:** `frontend/src/components/site-finder/MarketTab.tsx:64-73, 103-105, 147-151` MarketTab.tsx:64-73, 103-105, 147-151. relevantCompetitors включает: site_status==='Строящиеся' ИЛИ ready_dt>=yearAgoTs (сданные ≤1 года назад или с будущей датой готовности). activeCount=relevantCompetitors.length. Headline-bar выводит `<strong>{activeCount} строящихся в {radiusKm}км</strong>` (стр. 104), KPI «Активные ЖК» подписан «строящихся в радиусе {radiusKm}км» (стр. 150). Фактически activeCount включает и Сданные комплексы. Слово «строящихся» завышает число объектов в стройке: сданные посчитаны как строящиеся. SectionLabel секции конкурентов (стр. 261) при этом корректно: «строящиеся или сданы ≤1 года». Импакт: data-vs-text рассинхрон в верхней плашке-вердикте и KPI. Medium — числа верны, искажена только формулировка. Фикс: подпись «активных в радиусе {radiusKm}км» / «строящихся и недавно сданных», без слова «строящихся» в одиночку. **Почему баг:** activeCount по построению включает и «Сданные» ЖК, сданные ≤1 года назад (или с будущей датой готовности, не имеющие статуса «Строящиеся»). Подпись «строящихся» завышает число объектов в стройке: сданные комплексы посчитаны как строящиеся. Это data-vs-text рассинхрон в верхней плашке-вердикте, на которую смотрит финдиректор в первые 8 секунд. **Как чинить:** Либо переименовать в «активных конкурентов» / «активные ЖК» (как и заголовок KPI-карточки), убрав слово «строящихся», либо отдельно считать чисто строящиеся (`site_status === 'Строящиеся'`) для этой подписи. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.8 · unit U94</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:55:56 +00:00
bot-backend added the
scope/frontend
label 2026-06-15 11:02:07 +00:00
Owner

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

Текущее состояние кода: frontend/src/components/site-finder/MarketTab.tsx — фильтр relevantCompetitors стр. 66-72 (включает site_status === 'Строящиеся' ИЛИ ready_dt >= yearAgoTs), activeCount = relevantCompetitors.length стр. 73. Headline-bar <strong>{activeCount} строящихся в {radiusKm}км</strong> стр. 103-105. KPI «Активные ЖК» подпись «строящихся в радиусе {radiusKm}км» стр. 149-151. SectionLabel конкурентов корректен: «фильтр: строящиеся или сданы ≤1 года» стр. 261.

Корень: activeCount по построению (стр. 66-72) включает и сданные ≤1 года (или с будущей ready_dt), но плашка-вердикт (стр. 104) и KPI-подпись (стр. 150) называют их «строящихся» — завышение числа объектов в стройке, data-vs-text рассинхрон в верхней плашке, на которую смотрят первой. Числа верны, искажена формулировка → medium.

Что править:

  • Заменить слово «строящихся» на «активных» в обоих местах: headline-bar (стр. 104) → {activeCount} активных ЖК в {radiusKm}км; KPI-подпись (стр. 150) → «активных в радиусе {radiusKm}км» (согласовать с заголовком карточки «Активные ЖК», стр. 136).
  • Альтернатива: отдельно считать чисто строящиеся (c.site_status === 'Строящиеся') для этой подписи.

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

  • Код: MarketTab.tsx:66-73, 103-105, 149-151, 261; тип competitors[].site_status/ready_dt в frontend/src/types/site-finder.ts.
  • Vault: domains/ui/components/Component_SiteFinder_Page.md (MarketTab — таб «Рынок»).
**🔍 week ревью 1 — верификация (ПОДТВЕРЖДЕНО)** **Текущее состояние кода:** `frontend/src/components/site-finder/MarketTab.tsx` — фильтр `relevantCompetitors` стр. 66-72 (включает `site_status === 'Строящиеся'` ИЛИ `ready_dt >= yearAgoTs`), `activeCount = relevantCompetitors.length` стр. 73. Headline-bar `<strong>{activeCount} строящихся в {radiusKm}км</strong>` стр. 103-105. KPI «Активные ЖК» подпись «строящихся в радиусе {radiusKm}км» стр. 149-151. SectionLabel конкурентов корректен: «фильтр: строящиеся или сданы ≤1 года» стр. 261. **Корень:** `activeCount` по построению (стр. 66-72) включает и сданные ≤1 года (или с будущей `ready_dt`), но плашка-вердикт (стр. 104) и KPI-подпись (стр. 150) называют их «строящихся» — завышение числа объектов в стройке, data-vs-text рассинхрон в верхней плашке, на которую смотрят первой. Числа верны, искажена формулировка → medium. **Что править:** - Заменить слово «строящихся» на «активных» в обоих местах: headline-bar (стр. 104) → `{activeCount} активных ЖК в {radiusKm}км`; KPI-подпись (стр. 150) → «активных в радиусе {radiusKm}км» (согласовать с заголовком карточки «Активные ЖК», стр. 136). - Альтернатива: отдельно считать чисто строящиеся (`c.site_status === 'Строящиеся'`) для этой подписи. **Что посмотреть:** - Код: `MarketTab.tsx:66-73, 103-105, 149-151, 261`; тип `competitors[].site_status`/`ready_dt` в `frontend/src/types/site-finder.ts`. - Vault: `domains/ui/components/Component_SiteFinder_Page.md` (MarketTab — таб «Рынок»).
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#1457
No description provided.