Add product_scoring.py: 10 deterministic advisory product scores ∈[0,1] (market_fit/demand/supply_risk/future_competition/price_feasibility/infra_fit/ mortgage_sensitivity/differentiation/commercial/confidence), each derived from already-built forecasting + Site Finder services, graceful-None on thin data, §16-style RU reason per score. supply_risk/future_competition/mortgage_sensitivity inverted (high-bad→low). Weighted overall renormalized over available scores (§9.5 dispatch); commercial/infra degrade to None (not 0). Advisory cap inherited. Pure scorers unit-tested without DB; orchestrator via @patch of all backers. 101 tests. |
||
|---|---|---|
| .. | ||
| api | ||
| integration | ||
| scrapers | ||
| services | ||
| smoke | ||
| sql | ||
| workers | ||
| __init__.py | ||
| test_admin_weight_profiles.py | ||
| test_concepts_stub.py | ||
| test_gate_verdict.py | ||
| test_health.py | ||
| test_layout_signature.py | ||
| test_layout_tz_pdf.py | ||
| test_nspd_client.py | ||
| test_nspd_sync.py | ||
| test_ping.py | ||
| test_poi_score.py | ||
| test_quarter_dump_lookup.py | ||
| test_rbac.py | ||
| test_sentry_init.py | ||
| test_velocity.py | ||
| test_weight_profiles.py | ||