diff --git a/app/Http/Controllers/Api/EvaluationsController.php b/app/Http/Controllers/Api/EvaluationsController.php
index 7a3b08068526c855e406c01049e30fafe1df947e..8c39730997ebcf0c9f2dae1271b44723191bc18b 100644
--- a/app/Http/Controllers/Api/EvaluationsController.php
+++ b/app/Http/Controllers/Api/EvaluationsController.php
@@ -20,10 +20,16 @@
 use App\Models\MeasureLevel;
 use App\Models\User;
 use App\Repository\EvaluationRepository;
+use App\Repository\GraphDataRepository;
 use Illuminate\Support\Facades\Auth;
 
 class EvaluationsController extends Controller
 {
+    public function __construct(GraphDataRepository $repository)
+    {
+        $this->repository = $repository;
+    }
+
     public function all()
     {
         $user = Auth::user();
@@ -126,7 +132,6 @@ public function save(EvaluationRepository $repository, EvaluationRequest $reques
                 $previous_measures_array = MeasureLevel::where('evaluation_id', $evaluation['id'])->pluck('id')->toArray();
                 foreach ($data['measure_levels'] as $put_measure_level) {
                     $measure = Measure::find($put_measure_level['measure_id']);
-                    $fundamentalMeasure = $measure->fundamental;
 
                     if (isset($put_measure_level['id'])) {
                         $measure_level = MeasureLevel::find($put_measure_level['id']);
@@ -137,11 +142,7 @@ public function save(EvaluationRepository $repository, EvaluationRequest $reques
                     $measure_level->measure_id = $put_measure_level['measure_id'];
                     $measure_level->evaluation_id = $evaluation['id'];
                     $measure_level->actual_level = $put_measure_level['actual_level'] ?? null;
-                    if ($fundamentalMeasure && 2 === (int) $evaluation->current_step) {
-                        $measure_level->expected_level = $put_measure_level['actual_level'] < 3 ? $put_measure_level['actual_level'] + 1 : null;
-                    } else {
-                        $measure_level->expected_level = $put_measure_level['expected_level'] ?? null;
-                    }
+                    $measure_level->expected_level = $put_measure_level['expected_level'] ?? null;
                     $measure_level->manager = $put_measure_level['manager'] ?? null;
                     $measure_level->end_date = $put_measure_level['end_date'] ?? null;
                     $measure_level->save();
@@ -193,6 +194,17 @@ public function save(EvaluationRepository $repository, EvaluationRequest $reques
 
             $evaluation->save();
 
+            // Ajout du niveau supérieur pour les mesures preconisées
+            $preconizedMeasure = array_slice($this->repository->getBestMeasuresForEvaluation($evaluation),0,4);
+            foreach ($evaluation->measureLevels as $measureLevel) {
+                $measureLevelpreconized = MeasureLevel::whereId($measureLevel->id)
+                    ->first();
+                if ($measureLevelpreconized && in_array($measureLevelpreconized['measure_id'], $preconizedMeasure, true)) {
+                    $measureLevelpreconized->expected_level = $measureLevelpreconized['actual_level'] < 3 ? $measureLevelpreconized['actual_level'] + 1 : null;
+                }
+                $measureLevelpreconized->save();
+            }
+
             // si mofification d'un step, reinitialisation des steps suivants
             if (isset($data['draft']) && $data['draft']) {
                 if (1 === $evaluation->current_step) {