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. |
||
|---|---|---|
| .. | ||
| cadastre | ||
| forecasting | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| test_cadastre_bulk.py | ||
| test_ekburg_permits.py | ||
| test_nspd_denorm.py | ||
| test_objective_backfill.py | ||
| test_quarter_dump_lookup.py | ||
| test_recommend_mix_velocity.py | ||