From 0014870c3b937df2968c536a3d822a007e23e6da Mon Sep 17 00:00:00 2001 From: Gwadaking Date: Fri, 3 Apr 2026 21:49:09 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20pond=C3=A9rer=20le=20score=20horizon=20p?= =?UTF-8?q?ar=20la=20confiance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sans pondération, H+6 pouvait afficher 67 quand "now" était 34 car les deux formules n'ont pas la même échelle. Multiplier par confidence (0.85 à H+6, 0.45 à H+48) rend les scores cohérents entre horizons : un risque ne peut pas paraître croître si c'est juste l'incertitude qui augmente. Co-Authored-By: Claude Sonnet 4.6 --- backend/src/Controller/SpotScoreController.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/src/Controller/SpotScoreController.php b/backend/src/Controller/SpotScoreController.php index 110c0c3..1b7f045 100644 --- a/backend/src/Controller/SpotScoreController.php +++ b/backend/src/Controller/SpotScoreController.php @@ -115,13 +115,16 @@ class SpotScoreController extends AbstractController $horizons = []; foreach ($rows as $row) { - $distKm = (float) $row['distance_km']; - $score = max(0, (int) round((1 - min($distKm / 50, 1)) * 100)); + $distKm = (float) $row['distance_km']; + $confidence = (float) $row['confidence']; + // Score pondéré par la confiance : un horizon lointain moins certain + // ne peut pas afficher un risque supérieur à un horizon proche plus fiable + $score = max(0, (int) round((1 - min($distKm / 50, 1)) * 100 * $confidence)); $horizons['h' . $row['horizon']] = [ 'score' => $score, 'level' => $this->scoreToLevel($score), 'distanceKm' => $distKm, - 'confidence' => (float) $row['confidence'], + 'confidence' => $confidence, 'validAt' => $row['valid_at'], ]; }