diff --git a/src/main/java/com/example/demo/repository/PhaseLevelRepository.java b/src/main/java/com/example/demo/repository/PhaseLevelRepository.java
index f8be71ec3505b86fdf536daa4d57ff5c37a9d17d..99ac0f35ee33a7263eacf14322d508ca2a433b4b 100644
--- a/src/main/java/com/example/demo/repository/PhaseLevelRepository.java
+++ b/src/main/java/com/example/demo/repository/PhaseLevelRepository.java
@@ -2,6 +2,11 @@ package com.example.demo.repository;
 
 import com.example.demo.domain.PhaseLevel;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 
 public interface PhaseLevelRepository extends JpaRepository<PhaseLevel, Long> {
+
+    @Query("SELECT COUNT(p.id) FROM PhaseLevel p WHERE p.trainingDefinitionId = :trainingDefinitionId")
+    int getNumberOfExistingPhases(@Param("trainingDefinitionId") Long trainingDefinitionId);
 }
diff --git a/src/main/java/com/example/demo/service/PhaseLevelService.java b/src/main/java/com/example/demo/service/PhaseLevelService.java
index e118b5607e6b9420073b1056ddf2dabac2a403a8..5b869dc11b90c302e6393354ae7342007a9aebde 100644
--- a/src/main/java/com/example/demo/service/PhaseLevelService.java
+++ b/src/main/java/com/example/demo/service/PhaseLevelService.java
@@ -12,7 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Collections;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Optional;
 
 @Service
@@ -33,16 +34,7 @@ public class PhaseLevelService {
         phaseLevel.setTrainingDefinitionId(trainingDefinitionId);
         phaseLevel.setOrder(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
 
-        DecisionMatrixRow matrixRow = new DecisionMatrixRow();
-        matrixRow.setAA(0.8);
-        matrixRow.setCiT(0.7);
-        matrixRow.setKU(0.6);
-        matrixRow.setSD(0.5);
-        matrixRow.setWF(0.4);
-        matrixRow.setOrder(0);
-        matrixRow.setPhaseLevel(phaseLevel);
-
-        phaseLevel.setDecisionMatrix(Collections.singletonList(matrixRow));
+        phaseLevel.setDecisionMatrix(prepareDefaultDecisionMatrix(trainingDefinitionId, phaseLevel));
 
         PhaseLevel persistedEntity = phaseLevelRepository.save(phaseLevel);
 
@@ -70,4 +62,21 @@ public class PhaseLevelService {
 
         return BeanMapper.INSTANCE.toDto(savedEntity);
     }
+
+    private List<DecisionMatrixRow> prepareDefaultDecisionMatrix(Long trainingDefinitionId, PhaseLevel phaseLevel) {
+        List<DecisionMatrixRow> result = new ArrayList<>();
+
+        int numberOfExistingPhases = phaseLevelRepository.getNumberOfExistingPhases(trainingDefinitionId);
+
+        // number of rows should be equal to number of existing phases + 1
+        for (int i = 0; i <= numberOfExistingPhases; i++) {
+            DecisionMatrixRow decisionMatrixRow = new DecisionMatrixRow();
+            decisionMatrixRow.setPhaseLevel(phaseLevel);
+            decisionMatrixRow.setOrder(i);
+
+            result.add(decisionMatrixRow);
+        }
+
+        return result;
+    }
 }