diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_11_0_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_11_0_0.java
index a4488196ba71c7c2d1c25e11e8335c101957886f..a93eafac80fbd96ce1fe9785d8fc4c3a4213d090 100644
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_11_0_0.java
+++ b/src/main/java/org/olat/upgrade/OLATUpgrade_11_0_0.java
@@ -126,6 +126,7 @@ public class OLATUpgrade_11_0_0 extends OLATUpgrade {
 	
 	private static final int BATCH_SIZE = 50;
 	private static final String ASSESSMENT_DATAS = "ASSESSMENT PROPERTY TABLE";
+	private static final String EFFICIENCY_STATEMENT_DATAS = "EFFICIENCY STATEMENT TABLE";
 	private static final String VERSION = "OLAT_11.0.0";
 
 	private final Map<Long,Boolean> qtiEssayMap = new HashMap<>();
@@ -170,6 +171,7 @@ public class OLATUpgrade_11_0_0 extends OLATUpgrade {
 		}
 		
 		boolean allOk = true;
+		allOk &= upgradeEfficiencyStatementTable(upgradeManager, uhd);
 		allOk &= upgradeAssessmentPropertyTable(upgradeManager, uhd);
 
 		uhd.setInstallationComplete(allOk);
@@ -181,6 +183,31 @@ public class OLATUpgrade_11_0_0 extends OLATUpgrade {
 		}
 		return allOk;
 	}
+
+	private boolean upgradeEfficiencyStatementTable(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
+		boolean allOk = true;
+		if (!uhd.getBooleanDataValue(EFFICIENCY_STATEMENT_DATAS)) {
+			int counter = 0;
+			final Roles roles = new Roles(true, true, true, true, false, true, false);
+			final SearchRepositoryEntryParameters params = new SearchRepositoryEntryParameters();
+			params.setRoles(roles);
+			params.setResourceTypes(Collections.singletonList("CourseModule"));
+			
+			List<RepositoryEntry> courses;
+			do {
+				courses = repositoryManager.genericANDQueryWithRolesRestriction(params, counter, 50, true);
+				for(RepositoryEntry course:courses) {
+					convertUserEfficiencyStatemen(course);
+				}
+				counter += courses.size();
+				log.audit("Efficiency statement data migration processed: " + courses.size() + ", total processed (" + counter + ")");
+				dbInstance.commitAndCloseSession();
+			} while(courses.size() == BATCH_SIZE);
+			uhd.setBooleanDataValue(EFFICIENCY_STATEMENT_DATAS, allOk);
+			upgradeManager.setUpgradesHistory(uhd, VERSION);
+		}
+		return allOk;
+	}
 	
 	private boolean upgradeAssessmentPropertyTable(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
 		boolean allOk = true;
@@ -195,7 +222,6 @@ public class OLATUpgrade_11_0_0 extends OLATUpgrade {
 			do {
 				courses = repositoryManager.genericANDQueryWithRolesRestriction(params, counter, 50, true);
 				for(RepositoryEntry course:courses) {
-					convertUserEfficiencyStatemen(course);
 					allOk &= processCourseAssessmentData(course); 
 				}
 				counter += courses.size();