Analytics: конкурентный 360 — топ ближайших ЖК по геометрии для нового проекта #19

Closed
opened 2026-04-30 19:47:29 +00:00 by lekss361 · 1 comment
lekss361 commented 2026-04-30 19:47:29 +00:00 (Migrated from github.com)

Идея

Когда девелопер хочет ввести новый ЖК в районе X, сейчас в калькуляторе recommend_mix показываются «comparable ЖК» — но они выбираются по полю district_name (текстовое совпадение). Это грубо: соседние районы могут быть ближе чем дальние ЖК внутри своего района.

С загруженной NSPD-геометрией (709 cad-кварталов, 10590 cad_buildings) теперь можно делать геометрически-точный конкурентный анализ.

Что сделать

Backend:

  • POST /api/v1/analytics/competitor-360 с body {lat, lng, radius_m=1500, target_class} — возвращает топ-10 ЖК в радиусе:
    • obj_id, comm_name, dev_name, distance_m, flat_count, sold_perc
    • sale_graph: realised_per_month_median, price_avg
    • cad_quarter_match (совпадает ли cad_quarter точки с ЖК)
  • Источники: domrf_kn_objects (lat/lng) + cad_quarters_geom для контекста + domrf_kn_sale_graph для метрик

Frontend:

  • На /analytics/recommend — новая опциональная секция «Где этот участок»
    • Поле для координат (lat/lng) или drag-drop GeoJSON-полигона участка
    • Карта Leaflet с точкой/полигоном пользователя + 10 ближайших ЖК (цветовая градация по sold%)
    • Таблица: distance_m / sold% / темп / средняя цена

Связь со Stage 2 (Site Finder):

  • Полностью переиспользуется в Site Finder для карточки участка («Соседи»)

Acceptance

  • Для координат Академического (56.7833, 60.4833) endpoint возвращает 10 ЖК Атомстроя/Брусники/УГМК
  • Latency <500мс с GIST-индексом
  • UI показывает результат за <2с end-to-end

Effort

~3 дня.

## Идея Когда девелопер хочет ввести новый ЖК в районе X, сейчас в калькуляторе recommend_mix показываются «comparable ЖК» — но они выбираются по полю `district_name` (текстовое совпадение). Это грубо: соседние районы могут быть ближе чем дальние ЖК внутри своего района. С загруженной NSPD-геометрией (709 cad-кварталов, 10590 cad_buildings) теперь можно делать **геометрически-точный** конкурентный анализ. ## Что сделать **Backend:** - `POST /api/v1/analytics/competitor-360` с body `{lat, lng, radius_m=1500, target_class}` — возвращает топ-10 ЖК в радиусе: - obj_id, comm_name, dev_name, distance_m, flat_count, sold_perc - sale_graph: realised_per_month_median, price_avg - cad_quarter_match (совпадает ли cad_quarter точки с ЖК) - Источники: `domrf_kn_objects` (lat/lng) + `cad_quarters_geom` для контекста + `domrf_kn_sale_graph` для метрик **Frontend:** - На `/analytics/recommend` — новая опциональная секция «Где этот участок» - Поле для координат (lat/lng) или drag-drop GeoJSON-полигона участка - Карта Leaflet с точкой/полигоном пользователя + 10 ближайших ЖК (цветовая градация по sold%) - Таблица: distance_m / sold% / темп / средняя цена **Связь со Stage 2 (Site Finder):** - Полностью переиспользуется в Site Finder для карточки участка («Соседи») ## Acceptance - [ ] Для координат Академического (56.7833, 60.4833) endpoint возвращает 10 ЖК Атомстроя/Брусники/УГМК - [ ] Latency <500мс с GIST-индексом - [ ] UI показывает результат за <2с end-to-end ## Effort ~3 дня.
lekss361 commented 2026-05-11 20:19:47 +00:00 (Migrated from github.com)

Закрываем — функциональность мерджится в D4 (#36) — Project pipeline 5км для конкуренции за покупателя на 24 мес. Аналитический «конкурентный 360» становится частью site-finder analyze response (competition.pipeline_24mo.*), доступным как с /site-finder, так и для analytics страниц через тот же endpoint.

См. milestone https://github.com/lekss361/-gendesign/milestone/4

Закрываем — функциональность мерджится в **D4 (#36)** — Project pipeline 5км для конкуренции за покупателя на 24 мес. Аналитический «конкурентный 360» становится частью site-finder analyze response (`competition.pipeline_24mo.*`), доступным как с /site-finder, так и для analytics страниц через тот же endpoint. См. milestone https://github.com/lekss361/-gendesign/milestone/4
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#19
No description provided.