diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py
index 2e18d955888dc23b19e3a59e2a7b33b40cee1106..bc72ae860a97ff8f84b805af71ba625599a04cdd 100644
--- a/app/but/cursus_but.py
+++ b/app/but/cursus_but.py
@@ -142,7 +142,7 @@ class EtudCursusBUT:
                 self.validation_par_competence_et_annee[niveau.competence.id] = {}
             previous_validation = self.validation_par_competence_et_annee.get(
                 niveau.competence.id
-            )
+            ).get(validation_rcue.annee())
             # prend la "meilleure" validation
             if (not previous_validation) or (
                 sco_codes.BUT_CODES_ORDERED[validation_rcue.code]
diff --git a/app/models/but_validations.py b/app/models/but_validations.py
index 0f3e239e7dba7a668577336c22aa084c6968d4c9..ccef89cd4d5d63eb9aad4d5ea8d7d5e62a93283b 100644
--- a/app/models/but_validations.py
+++ b/app/models/but_validations.py
@@ -71,6 +71,11 @@ class ApcValidationRCUE(db.Model):
                 <em>enregistrée le {self.date.strftime("%d/%m/%Y")}
                 à {self.date.strftime("%Hh%M")}</em>"""
 
+    def annee(self) -> str:
+        """l'année BUT concernée: "BUT1", "BUT2" ou "BUT3" """
+        niveau = self.niveau()
+        return niveau.annee if niveau else None
+
     def niveau(self) -> ApcNiveau:
         """Le niveau de compétence associé à cet RCUE."""
         # Par convention, il est donné par la seconde UE