gendesign/backend/app/services/forecasting
Light1YT b4eb6a8ad5
All checks were successful
Deploy / changes (push) Successful in 6s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 2m16s
Deploy / build-worker (push) Successful in 2m31s
Deploy / deploy (push) Successful in 1m3s
fix(forecasting): honest USP gate (di>0) + unit-explicit coverage fraction
Found by read-only services audit.
- recommendation._usp_from_deficits: skip di<=0 so «стройте его» is never emitted
  for OVERSUPPLIED formats; all-surplus top-K → [] (no white-space niches).
  Aligns with product_scoring._count_positive_usp (di>0). Was: «Дефицит формата
  X — стройте его» for a surplus format, reaching PDF/Excel USP-ниши.
- report_assembler._domrf_coverage: drop ambiguous >1.0 percent-guess; normalize
  per-branch (analyze pct /100, supply_layers fraction as-is). Sub-1% coverage
  (0.8%) no longer read as 80% → no inflated confidence in the near-zero-coverage
  case §15 flags. tests for both + end-to-end no-inflation. 241+148 pass.
2026-06-04 13:25:25 +05:00
..
__init__.py feat(forecasting): §13 report assembler (#988, 955-A2) (#1021) 2026-06-03 08:51:23 +00:00
affordability.py fix(forecasting): #980 strongest deficit→deficit_index +1.0; #981 MAI uses CBR key rate 2026-06-04 11:10:26 +05:00
confidence_engine.py feat(forecasting): §15 confidence engine v2 (#990, 955-A4) (#1020) 2026-06-03 08:41:07 +00:00
demand_normalization.py feat(forecasting): §9.4 demand-normalization coefficient (#951f, advisory) (#1011) 2026-06-03 06:28:14 +00:00
demand_supply_forecast.py fix(forecasting): #980 strongest deficit→deficit_index +1.0; #981 MAI uses CBR key rate 2026-06-04 11:10:26 +05:00
macro_coefficient.py feat(forecasting): §9.5 macro coefficient (#951e, advisory) (#1010) 2026-06-03 06:20:04 +00:00
macro_series.py feat(forecasting): monthly macro series + regime classifier (#951b) (#1007) 2026-06-03 05:37:43 +00:00
normalize.py feat(forecasting): seasonal (month-of-year) demand normalization (#979) 2026-06-04 11:19:50 +05:00
product_scoring.py feat(forecasting): §14.2 product scoring card (#985, 954-B) (#1017) 2026-06-03 08:11:54 +00:00
rate_sensitivity.py feat(forecasting): seasonal (month-of-year) demand normalization (#979) 2026-06-04 11:19:50 +05:00
recommendation.py fix(forecasting): honest USP gate (di>0) + unit-explicit coverage fraction 2026-06-04 13:25:25 +05:00
regression.py fix(#978): train-only detrend in rate backtest + Almon distributed-lag regression 2026-06-04 11:39:32 +05:00
report.py feat(forecasting): §13 SiteFinderReport object (#987, 955-A1) (#1019) 2026-06-03 08:33:01 +00:00
report_assembler.py fix(forecasting): honest USP gate (di>0) + unit-explicit coverage fraction 2026-06-04 13:25:25 +05:00
sales_series.py feat(forecasting): monthly sales series builder for §9.6 (#951c) (#1008) 2026-06-03 05:52:33 +00:00
scenarios.py feat(forecasting): §11 macro-scenarios (#984, 954-A) (#1016) 2026-06-03 07:59:22 +00:00
special_indices.py feat(forecasting): §25 six special indices (#986, 954-C) (#1018) 2026-06-03 08:24:08 +00:00
what_to_build.py feat(forecasting): what-to-build ranker + MAI proxy (#981, 952-B) (#1013) 2026-06-03 07:07:17 +00:00