DemandSupplyForecast.as_dict() не эмитил 'confounded'/'is_confounded_window', report_assembler._confounded() всегда возвращал False и §15 confounded_window factor в compute_report_confidence был мёртв: 48-мес окна, пересекающие 2024-07-01 шок никогда не тянули report confidence к 'low' и шок не назывался в rationale. Patch: добавлено confounded: bool в DemandSupplyForecast (от §9.5 macro_coef OR §9.6 rate_sensitivity), exposed в as_dict(). _confounded() уже использовал .get() defensively — блокер был в producer'е. +3 теста: contract на real DemandSupplyForecast.as_dict(), end-to-end assemble_report → confounded_window factor surfaces at level=low, weakest-link тянет overall к 'low'. 61 report_assembler + 1034 forecasting тестов зелёные. Closes #1222 |
||
|---|---|---|
| .. | ||
| analysis_runs | ||
| cadastre | ||
| chat | ||
| etl | ||
| exporters | ||
| forecasting | ||
| generative | ||
| llm | ||
| photos | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| analytics_queries.py | ||
| analytics_refresh.py | ||
| forecast_request_cache.py | ||
| insights.py | ||
| job_settings.py | ||
| objective_etl.py | ||
| objective_sync_config.py | ||
| own_projects.py | ||
| weather_cache.py | ||