diff --git a/performance_assessment/performance_assessment_conf.xml b/performance_assessment/performance_assessment_conf.xml
index 7152fd0fdc34a01e74e1700c4220840a40ac8355..dd7efdbd371b4e7257b1311f4cc5319e38803af8 100644
--- a/performance_assessment/performance_assessment_conf.xml
+++ b/performance_assessment/performance_assessment_conf.xml
@@ -86,12 +86,6 @@
 					<upper_boundary>50</upper_boundary>
 				</head_wind>
             </field_performance>
-			<rate_of_climb_for_service_ceiling description="Rate of climb considered for the definition of the service ceiling (2.54m/s = 500 ft/min(default), 0.508m/s = 100ft/min)">
-				<value>0.508</value>
-				<unit>m/s</unit>
-				<lower_boundary>0</lower_boundary>
-				<upper_boundary>10</upper_boundary>
-			</rate_of_climb_for_service_ceiling>
         </constants_for_performance_checks>
         <modes description="other settings that influence different modes!">
             <use_study_mission_for_analysis description="Switch to use study mission for analysis; Switch: true(use missionStudy.xml) / false (use missionDesign.xml)">
diff --git a/performance_assessment/src/taw/defaultMethods/aircraft.h b/performance_assessment/src/taw/defaultMethods/aircraft.h
index aed0d6e40939bd84e0c6970b25a4950ed2747b2a..6ec8362e9eda50e3d4b1f2b0461b806a4c5c918f 100644
--- a/performance_assessment/src/taw/defaultMethods/aircraft.h
+++ b/performance_assessment/src/taw/defaultMethods/aircraft.h
@@ -58,7 +58,7 @@ class aircraft {
     // double banana;
     double MTOM;/**< Maximum Take-off Mass (kg)*/
     double MLM; /**< Maximum Landing Mass (kg)*/
-    double OME;/**< Operating Mass Empty(kg) */
+    double OME;/**< Operating Mass Empty (kg) */
     double MFM;/**< Maximum Fuel mass (kg) */
     double maxPayload; /** Maximum payload (kg) */
 
diff --git a/performance_assessment/src/taw/defaultMethods/ceilingPerformance/abstractCeilingPerformance.h b/performance_assessment/src/taw/defaultMethods/ceilingPerformance/abstractCeilingPerformance.h
index a3cddbddb2cee11a49c90916c3f48c8eba5c2742..e80ad8266c80012df836e97baf0869c3637c034c 100644
--- a/performance_assessment/src/taw/defaultMethods/ceilingPerformance/abstractCeilingPerformance.h
+++ b/performance_assessment/src/taw/defaultMethods/ceilingPerformance/abstractCeilingPerformance.h
@@ -51,6 +51,8 @@ class abstractCeilingPerformance
     };
     std::vector<dataCeiling> theCeiling; /**< List of the ceiling data */
 
+    double ROC_AEO_req; /** Required rate of climb for all engines operational (m/s)*/
+    double ROC_OEI_req; /** Required rate of climb for one engine inoperative (m/s)*/
 };
 
 #endif  // PERFORMANCE_ASSESSMENT_SRC_TAW_DEFAULTMETHODS_CEILINGPERFORMANCE_ABSTRACTCEILINGPERFORMANCE_H_
diff --git a/performance_assessment/src/taw/defaultMethods/ceilingPerformance/low_fidelity/ceilingPerformance.cpp b/performance_assessment/src/taw/defaultMethods/ceilingPerformance/low_fidelity/ceilingPerformance.cpp
index e4d645946647cd1d293a8cb69392988632579417..e976703a0c1484bb97ba81dd7c762dad33a565c9 100644
--- a/performance_assessment/src/taw/defaultMethods/ceilingPerformance/low_fidelity/ceilingPerformance.cpp
+++ b/performance_assessment/src/taw/defaultMethods/ceilingPerformance/low_fidelity/ceilingPerformance.cpp
@@ -53,23 +53,24 @@ void ceilingPerformance::doCeilingCalculation() {
             lastAltMax = theCeiling.back().maxCeiling;
             lastAltMaxOEI = theCeiling.back().maxCeilingOEI;
         }
-        double ROC = theAcftPt->mySettingsPt->rate_of_climb_for_service_ceiling;
-        // double ROC = convertUnit(FOOT, METER, 500.)/ 60.;
-        // if (theAcftPt->thrust_generator_type == "prop") {
-        //     ROC = convertUnit(FOOT, METER, 100.)/ 60.;
-        // } else if (theAcftPt->thrust_generator_type == "fan") {
-        //     ROC = convertUnit(FOOT, METER, 500.)/ 60.;
-        // } else {
-        //     myRuntimeInfo->warn << "No service ceiling rate of climb found for given thrust generator type: " << theAcftPt->thrust_generator_type <<
-        //         " found! Using 500 ft/m. Please check this!" << std::endl;
-        //     ROC = convertUnit(FOOT, METER, 500.)/ 60.;
-        // }
+        // Determine required ROCs
+        ROC_AEO_req = convertUnit(FOOT, METER, 100.)/ 60.;
+        ROC_OEI_req = convertUnit(FOOT, METER, 50.)/ 60.;
+        if (theAcftPt->thrust_generator_type == "prop") {
+            ROC_AEO_req = ROC_OEI_req = convertUnit(FOOT, METER, 50.)/ 60.;
+        } else if (theAcftPt->thrust_generator_type == "fan") {
+            ROC_AEO_req = convertUnit(FOOT, METER, 100.)/ 60.;
+            ROC_OEI_req = convertUnit(FOOT, METER, 50.)/ 60.;
+        } else {
+            myRuntimeInfo->warn << "No service ceiling rate of climb found for given thrust generator type: " << theAcftPt->thrust_generator_type <<
+                "! Options are 'prop' or 'fan'. Using 100 ft/m. Please check this!" << std::endl;
+        }
         theCeiling.push_back(dataCeiling());
         theCeiling.back().Mass = grossMass;
         theCeiling.back().Mach = theAcftPt->MInitialCruise;
-        theCeiling.back().serviceCeiling = iterateForCeiling(grossMass, ROC, theCeiling.back().Mach, lastAltService, false);
+        theCeiling.back().serviceCeiling = iterateForCeiling(grossMass, ROC_AEO_req, theCeiling.back().Mach, lastAltService, false);
         theCeiling.back().maxCeiling = iterateForCeiling(grossMass, 0.0, theCeiling.back().Mach, lastAltMax, false);
-        theCeiling.back().maxCeilingOEI = iterateForCeiling(0.925 * grossMass, ROC, theCeiling.back().Mach, lastAltMaxOEI, true);
+        theCeiling.back().maxCeilingOEI = iterateForCeiling(0.925 * grossMass, ROC_OEI_req, theCeiling.back().Mach, lastAltMaxOEI, true);
     }
     theAcftPt->myChecks.initCruiseAlt   = checkForInitialCruiseAlt();
     theAcftPt->myChecks.initCruiseM     = checkForInitialCruiseMach();
diff --git a/performance_assessment/src/taw/defaultMethods/performance_assessment_output.cpp b/performance_assessment/src/taw/defaultMethods/performance_assessment_output.cpp
index 6b3c377ab2b9a193c89bca3d40209e01cef5af6c..90ceec48240b9acaa3fc0b955f81b321ffbf977e 100644
--- a/performance_assessment/src/taw/defaultMethods/performance_assessment_output.cpp
+++ b/performance_assessment/src/taw/defaultMethods/performance_assessment_output.cpp
@@ -840,8 +840,9 @@ void performance_assessment_output::generate_plot_ceiling_performance() {
     ax->plot(x, max_oei_ceiling_y);
     ax->grid(matplot::on);
     ax->ylim({0, max_ylim});
-    ax->legend({"Service ceiling, Rate of climb " + num2Str(std::format("{:.0f}", floor(mySettingsPt->rate_of_climb_for_service_ceiling * 196.8504))) + " ft/min",
-        "Max. ceiling, Rate of climb 0 ft/min", "OEI ceiling, Rate of climb 500 ft/min"});
+    ax->legend({"Service ceiling, Rate of climb " + num2Str(std::format("{:.0f}", floor(convertUnit(METER, FOOT, abstractCeilingPerformancePt->ROC_AEO_req)* 60.))) + " ft/min",
+        "Max. ceiling, Rate of climb 0 ft/min", "OEI ceiling, Rate of climb " +
+        num2Str(std::format("{:.0f}", floor(convertUnit(METER, FOOT, abstractCeilingPerformancePt->ROC_OEI_req)* 60.))) + " ft/min"});
     ax->legend()->location(matplot::legend::general_alignment::bottomright);
     ax->xlabel("Gross mass [kg]");
     ax->ylabel("Altitude [m]");
diff --git a/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.cpp b/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.cpp
index 85194900404d1a2f7cb8db116382c5df3167c59e..3b2c4c6f9269c7e60b8c01370603cd7c43750330 100644
--- a/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.cpp
+++ b/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.cpp
@@ -33,8 +33,6 @@ performance_assessment_settings::performance_assessment_settings(const std::shar
         .read(rtIO->moduleConfig).value();
     myField.headWind = EndnodeReadOnly<double>("/module_configuration_file/program_settings/constants_for_performance_checks/field_performance/head_wind")
         .read(rtIO->moduleConfig).value();
-    rate_of_climb_for_service_ceiling = EndnodeReadOnly<double>("/module_configuration_file/program_settings/constants_for_performance_checks/rate_of_climb_for_service_ceiling")
-        .read(rtIO->moduleConfig).value();
 
     if (false) {  // Vn-Diagram is temporarily disabled
         /* Constants for the Representation of the Vn Diagram */
diff --git a/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.h b/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.h
index ca85e84f3ef01fc2610989e005bd61e3e339ab47..bad1f0c94352fec2bd853afac60d4643d514066f 100644
--- a/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.h
+++ b/performance_assessment/src/taw/defaultMethods/performance_assessment_settings.h
@@ -62,7 +62,6 @@ class performance_assessment_settings {
     bool designForMTOM; /**< Switch for a new determination of the MTOM */
     bool useStudyMissionForAnalysis; /**< Switch if missionStudy.xml should be used instead of missionDesign.xml */
     bool optimizeMission; /** Switch if the mission profile will be optimized */
-    double rate_of_climb_for_service_ceiling; /** Rate of climb that defines the service ceiling */
 
     /** \class enginePerfData Includes the engine performance rating
     *