feat(site_finder): market-metrics service (#949 PR A, §9.2) #997

Merged
Light1YT merged 1 commit from feat/949-competitor-relevance into main 2026-06-02 19:26:26 +00:00
Owner

Site Finder v2 / GG-форсайт — EPIC #949 PR A (детерминированный, без LLM, read-only).

compute_market_metrics(db, district/obj_ids, window) из Objective: absorption_rate, months_of_supply, sell_through, unit/area_velocity, liquidity_index (per-room), overstock_index, demand_concentration (HHI), price_sensitivity (reuse _elasticity_coef) + confidence. Graceful на тонких данных (None+low, не 0/краш) — обходит sparse domrf↔objective маппинг через district-фильтр. 55 тестов. code-reviewer (opus) . Без миграции/endpoint — потребляется forecast #952 + relevance #949 PR B. Часть #944.

**Site Finder v2 / `GG-форсайт` — EPIC #949 PR A** (детерминированный, без LLM, read-only). `compute_market_metrics(db, district/obj_ids, window)` из Objective: absorption_rate, months_of_supply, sell_through, unit/area_velocity, liquidity_index (per-room), overstock_index, demand_concentration (HHI), price_sensitivity (reuse _elasticity_coef) + confidence. Graceful на тонких данных (None+low, не 0/краш) — обходит sparse domrf↔objective маппинг через district-фильтр. 55 тестов. code-reviewer (opus) ✅. Без миграции/endpoint — потребляется forecast #952 + relevance #949 PR B. Часть #944.
Light1YT added 1 commit 2026-06-02 19:26:23 +00:00
Deterministic, no-LLM market metrics from Objective data for a location
(district and/or obj_ids): absorption_rate, months_of_supply, sell_through_pct,
unit/area_velocity, liquidity_index per room-type, overstock_index,
demand_concentration (HHI), price_sensitivity (reuses
analytics_queries._elasticity_coef). Frozen MarketMetrics dataclass + as_dict,
sample-size confidence (§15 spirit).

Graceful on thin data (the #1 coverage risk): no data → metric None (never
0/crash), confidence='low'. Filters by district/obj_ids to sidestep the sparse
domrf↔objective mapping. Read-only SELECTs, 55 unit/mock tests. Consumed by
forecast (#952) + relevance (#949 PR B). No migration, no endpoint.
Light1YT merged commit 45d61ecff0 into main 2026-06-02 19:26:26 +00:00
Light1YT deleted branch feat/949-competitor-relevance 2026-06-02 19:26:26 +00:00
Sign in to join this conversation.
No reviewers
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#997
No description provided.