diff --git a/create_mission_xml/src/standard_mission/standard_mission/standard_mission.cpp b/create_mission_xml/src/standard_mission/standard_mission/standard_mission.cpp
index 1680bf98a8551f5164ef8221ec17b87a6e7330ae..cae96ba29aad28a85dd6f7c1896549e0f7d82798 100644
--- a/create_mission_xml/src/standard_mission/standard_mission/standard_mission.cpp
+++ b/create_mission_xml/src/standard_mission/standard_mission/standard_mission.cpp
@@ -54,8 +54,8 @@ void standard_mission::initialize() {
     requirements_mission->cruise_step_segments.clear(); // Clear cruise steps for requirement mission
     requirements_mission->cruise_step_segments.push_back(design_mission->cruise_step_segments.front());
     requirements_mission->cruise_step_segments.front().relative_segment_length = 1.; // Set the relative segment length for requirement mission
-    requirements_mission->cruise_step_segments.front().altitude =
-    requirements_mission->initial_cruise_altitude; // Set flight level for requirement mission
+    requirements_mission->cruise_step_segments.front().altitude = // Set flight level for requirement mission
+        convertUnit(HECTO, FOOT, NOPREFIX, METER, requirements_mission->initial_cruise_altitude);
 }
 
 void standard_mission::run() {
diff --git a/mission_analysis/src/standard_mission/fuel_handling/fuel_handling.cpp b/mission_analysis/src/standard_mission/fuel_handling/fuel_handling.cpp
index 4aa835a65955d325d01496c64b5b654716ce7068..067ee64e3be7ff77ff770b3cce6e9203fd726ce2 100644
--- a/mission_analysis/src/standard_mission/fuel_handling/fuel_handling.cpp
+++ b/mission_analysis/src/standard_mission/fuel_handling/fuel_handling.cpp
@@ -205,27 +205,29 @@ void standard_mission::set_final_reserve_fuel(double *aircraft_mass) {
 }
 
 void standard_mission::set_alternate_fuel(double* aircraft_mass) {
-    int energy_carrier_id = // TODO(Gerrit): Check if it makes senese: Assuming cruise energy carrier used for alternate fuel reserves (derived from cruise conditions)
+    int energy_carrier_id = // TODO(Gerrit): Check if it makes sense: Assuming cruise energy carrier used for alternate fuel reserves (derived from cruise conditions)
         EndnodeReadOnly<int>("energy_carrier_ID").read(rtIO->acxml.at("requirements_and_specifications/design_specification/propulsion/energy_provider/cruise")).value();
-    /* Alternate fuel: Calculation of the flight altitude from alternate */
-    double alternate_FL = this->mission_file->alternate_distance * 0.8 / (1. / tan(convertUnit(DEGREE, RADIAN, 5.)) + 1. / tan(convertUnit(DEGREE, RADIAN, 3.)));
-    if (alternate_FL > convertUnit(FOOT, METER, 30000.)) {
-        alternate_FL = convertUnit(FOOT, METER, 30000.);
-    }
-    double climb_mach(convertUnit(CALIBRATEDAIRSPEED, MACH, convertUnit(FOOT, METER, 10000.), this->atm, this->climb_speed_below_FL100));
-    /* Alternate climbing: Estimation with the values at 10.000 ft */
-    this->engine.calculate_N1_with_penalties(energy_carrier_id, convertUnit(FOOT, METER, 10000.), climb_mach, this->atm, 1., "climb", 0., 0.);
+    /* Alternate fuel: Calculation of the flight altitude from alternate. Climb gradient (2.5°) and decent (1.5°) estimated based on typical ROC and TAS */
+    // TODO(Gerrit): Get angles e.g. from certifications or other values previously used
+    double alternate_FL = this->mission_file->alternate_distance * 0.8 / (1. / tan(convertUnit(DEGREE, RADIAN, 2.5)) + 1. / tan(convertUnit(DEGREE, RADIAN, 1.5)));
+    /* Maximum alternate at FL200 based on Schmitt and Gollnick, Air Transport System */
+    if (alternate_FL > convertUnit(HECTO, FOOT, NOPREFIX, METER, 200.)) {
+        alternate_FL = convertUnit(HECTO, FOOT, NOPREFIX, METER, 200.);
+    }
+    double climb_mach(convertUnit(CALIBRATEDAIRSPEED, MACH, alternate_FL, this->atm, this->climb_speed_below_FL100));
+    /* Alternate climbing */
+    this->engine.calculate_N1_with_penalties(energy_carrier_id, alternate_FL, climb_mach, this->atm, 1., "climb", 0., 0.);
     /* Calculate aerodynamics */
-    double L_over_D(this->aero.getCruiseLoverD(climb_mach, convertUnit(FOOT, METER, 10000.), 0., *aircraft_mass, "clean", this->atm));
+    double L_over_D(this->aero.getCruiseLoverD(climb_mach, alternate_FL, 0., *aircraft_mass, "clean", this->atm));
     if (sophistication_level != UNSOPHISTICATED) {
         double current_cg(get_current_cg());
         L_over_D = this->interpolateViaCoG(current_cg, L_over_D,
-            getAlternativeAero(current_cg)->getCruiseLoverD(climb_mach, convertUnit(FOOT, METER, 10000.), 0., *aircraft_mass, "clean", this->atm));
+            getAlternativeAero(current_cg)->getCruiseLoverD(climb_mach, alternate_FL, 0., *aircraft_mass, "clean", this->atm));
     }
     /* Calculate the specific fuel consumption */
     double SFC = this->engine.get_aircraft_fuelflow(energy_carrier_id) / this->engine.get_thrust_aircraft(energy_carrier_id);
     /* Alternate climbing: Estimate the climbing duration with 5 deg climb angle */
-    double climb_time_altn = alternate_FL / (tan(convertUnit(DEGREE, RADIAN, 5.)) * convertUnit(MACH, CALIBRATEDAIRSPEED, convertUnit(FOOT, METER, 10000.), this->atm, climb_mach));
+    double climb_time_altn = alternate_FL / (tan(convertUnit(DEGREE, RADIAN, 5.)) * convertUnit(MACH, CALIBRATEDAIRSPEED, alternate_FL, this->atm, climb_mach));
     /* Calculate the alternate climbing fuel mass */
     double m_climb_altn = *aircraft_mass * expm1(climb_time_altn * SFC * G_FORCE / L_over_D);
     /* Calculate the alternate fuel mass */
@@ -297,8 +299,7 @@ double standard_mission::calculate_holding_fuel(const double& aircraft_mass, con
         EndnodeReadOnly<int>("energy_carrier_ID").read(rtIO->acxml.at("requirements_and_specifications/design_specification/propulsion/energy_provider/descent")).value();
     atmosphere holding_atm; //Airbus defines to calculate holding pattern at ISA-Conditions
     double holding_mach(EndnodeReadOnly<double>("/program_settings/general/fuel_planning/holding/holding_mach_number").read(this->rtIO->moduleConfig).value());
-    double holding_altitude(convertUnit(FOOT, METER,
-        EndnodeReadOnly<double>("/program_settings/general/fuel_planning/holding/holding_altitude").read(this->rtIO->moduleConfig).value()));
+    double holding_altitude(EndnodeReadOnly<double>("/program_settings/general/fuel_planning/holding/holding_altitude").read(this->rtIO->moduleConfig).value());
     if (EndnodeReadOnly<bool>("program_settings/general/fuel_planning/holding/use_economical_speed").read(this->rtIO->moduleConfig).value()) {
         this->calculate_econ_cruise_speed(&holding_mach, holding_altitude, 0., aircraft_mass, this->aero.cruiseConfiguration, "cruise");
     }
diff --git a/mission_analysis/src/standard_mission/geometry_handling/geometry_handling.cpp b/mission_analysis/src/standard_mission/geometry_handling/geometry_handling.cpp
index 9bcfc4662d3d47052081d8a373a49f63151a0eed..823c6fab5df05eeddd593de7b9e6ab34e7572276 100644
--- a/mission_analysis/src/standard_mission/geometry_handling/geometry_handling.cpp
+++ b/mission_analysis/src/standard_mission/geometry_handling/geometry_handling.cpp
@@ -184,7 +184,7 @@ void standard_mission::initialize_geometry() {
     }
 
      /* read CoG x-position of wing from aircraft exchange file and check given boundary condition [m] */
-    this->cg_wing = 17.1682343; //TODO(Gerrit) hier: fuselage_vector.at(0).l, true);
+    // this->cg_wing = 17.1682343; //TODO(Gerrit) hier: fuselage_vector.at(0).l, true);
 
     /* Tank Error catch */
     // if (this->number_center_tanks == 0 && this->number_trim_tanks == 0 && this->number_wing_tanks == 0) {
diff --git a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
index 9274edd4673d5f4ea72112759b05bd99d90ec2ce..f769bff600018441a6bb828030b37db7e7396e01 100644
--- a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
+++ b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
@@ -33,7 +33,7 @@ standard_mission_output::standard_mission_output(standard_mission* mission_ptr)
     rtIO(mission_ptr->rtIO),
     report_(rtIO),
     /* Initialization of switch for requirements checked */
-    requirements_cecked(false),
+    requirements_checked(false),
     /* Initialization of SAR plot altitudes */
     start_altitude(0.),
     end_altitude(0.),
@@ -45,19 +45,26 @@ standard_mission_output::standard_mission_output(standard_mission* mission_ptr)
     /* localize variable camber */
     first_filled_position(0) {
     this->initialize();
-    /*Write mission output csv files */
-    this->generate_mission_profile_data();
-    if (rtIO->plotOn) {
-        this->generate_mission_plots();
-        if (SAR_plot_on) {
-            this->generate_SAR_plot_data();
-            this->generate_SAR_plots();
+    if (my_mission_ptr->requirement_switch) { // Requirements mission does not write a full report
+        if (rtIO->reportOn) {
+            this->generate_requirements_html_report();
+            report_.generateReports(rtIO->programname + "_" + my_mission_ptr->mission_type);
+        }
+    } else {
+        /*Write mission output csv files */
+        this->generate_mission_profile_data();
+        if (rtIO->plotOn) {
+            this->generate_mission_plots();
+            if (SAR_plot_on) {
+                this->generate_SAR_plot_data();
+                this->generate_SAR_plots();
+            }
+        }
+        if (rtIO->reportOn) {
+            this->generate_html_report();
+            this->generate_tex_report_body();
+            report_.generateReports(rtIO->programname + "_" + my_mission_ptr->mission_type);
         }
-    }
-    if (rtIO->reportOn) {
-        this->generate_html_report();
-        this->generate_tex_report_body();
-        report_.generateReports();//"_" + my_mission_ptr->mission_type); TODO(GErrit): Wieder rein, wenn bereit
     }
 }
 
@@ -79,7 +86,7 @@ void standard_mission_output::initialize() {
         myRuntimeInfo->out << "Create directory for mission data output in project folder: " << rtIO->getMissionDataDir() << std::endl;
         CreateDirectory(rtIO->getMissionDataDir().c_str(), NULL);
     }
-    this->base_name_output_files =  std::string(TOOL_NAME) + "_" + this->my_mission_ptr->mission_type;
+    this->base_name_output_files = rtIO->programname + "_" + this->my_mission_ptr->mission_type;
     /* Check if the calculated reserve fuel + extra fuel is negative after taxiing at destination airport. If so, warning message */
     double fuelAtDestinationGate = this->my_mission_ptr->get_fuel_sum(this->my_mission_ptr->loaded_fuel_mass) -
                                     this->my_mission_ptr->get_fuel_sum(this->my_mission_ptr->trip_fuel_mass) -
@@ -101,9 +108,9 @@ void standard_mission_output::initialize() {
         EndnodeReadOnly<bool>(subpath + "/maximum_altitude_one_engine_inoperative/checked").read(rtIO->acxml).value() &&
         EndnodeReadOnly<bool>(subpath + "/initial_cruise_mach_number/checked").read(rtIO->acxml).value() &&
         EndnodeReadOnly<bool>(subpath + "/design_time_to_climb/checked").read(rtIO->acxml).value()) {
-        this->requirements_cecked = true;
+        this->requirements_checked = true;
     } else {
-        this->requirements_cecked = false;
+        this->requirements_checked = false;
     }
 }
 
@@ -144,8 +151,11 @@ void standard_mission_output::generate_mission_profile_data() {
     for (node* propulsor : rtIO->acxml.at("component_design/propulsion/specific").getVector("propulsion")) {
         csvStream << "Engine N1 (" << propulsor->at("engine/model/value") << ", ID = " << propulsor->getIntAttrib("ID") << ") [-]; ";
     }
-    csvStream << "Shaft power offtake [W]; " << "Bleed [kg/s]; " << "CoG aircraft [m]; " << "CoG fuel [m]; "
-                << "Angle of attack [deg]; " << "Glidepath angle [deg]; " << "Incidence angle (stabilizer) [deg]";
+    csvStream << "Shaft power offtake [W]; " << "Bleed [kg/s]; ";
+    if (this->my_mission_ptr->sophistication_level != this->my_mission_ptr->UNSOPHISTICATED) { // Center of Gravity shift not needed if not calculated
+        csvStream << "CoG aircraft [m]; " << "CoG fuel [m]; ";
+    }
+    csvStream << "Angle of attack [deg]; " << "Glidepath angle [deg]; " << "Incidence angle (stabilizer) [deg]";
     for (uint8_t k(0); k < this->my_mission_ptr->mission_profile.at(first_filled_position).end_origin_polar[0].size(); ++k) {
         std::string flap_setting_name("segment ID " + num2Str(this->my_mission_ptr->mission_profile.at(first_filled_position).end_origin_polar[0].at(k)) + " flap setting");
         csvStream << ";(" << 32+k << ") " << flap_setting_name << " [deg]; ";
@@ -195,10 +205,12 @@ void standard_mission_output::generate_mission_profile_data() {
             csvStream << my_mission_ptr->mission_profile.at(i).end_n1.at(propulsor->getIntAttrib("ID")) << "; "; // Add N1 for each engine
         }
         csvStream << my_mission_ptr->mission_profile.at(i).end_shaft_power << "; "
-        << my_mission_ptr->mission_profile.at(i).end_bleed << "; "
-        << my_mission_ptr->mission_profile.at(i).end_aircraft_cg << "; "
-        << my_mission_ptr->mission_profile.at(i).end_fuel_cg << "; "
-        << my_mission_ptr->mission_profile.at(i).end_angle_of_attack << "; "
+        << my_mission_ptr->mission_profile.at(i).end_bleed << "; ";
+        if (this->my_mission_ptr->sophistication_level != this->my_mission_ptr->UNSOPHISTICATED) { // Center of Gravity shift not needed if not calculated
+            csvStream << my_mission_ptr->mission_profile.at(i).end_aircraft_cg << "; "
+                        << my_mission_ptr->mission_profile.at(i).end_fuel_cg << "; ";
+        }
+        csvStream << my_mission_ptr->mission_profile.at(i).end_angle_of_attack << "; "
         << convertUnit(RADIAN, DEGREE, my_mission_ptr->mission_profile.at(i).end_glidepath_angle) << "; "
         << my_mission_ptr->mission_profile.at(i).end_stabilizer_incidence;
         for (uint8_t k(0); k < my_mission_ptr->mission_profile.at(i).end_origin_polar[1].size(); ++k) {
@@ -222,7 +234,7 @@ void standard_mission_output::generate_mission_profile_data() {
             this->TAS_profile.data.push_back(convertUnit(METERPERSECOND, KNOTS, my_mission_ptr->mission_profile.at(i).end_TAS));
             this->bleed_air_profile.data.push_back(my_mission_ptr->mission_profile.at(i).end_bleed);
             this->shaft_power_profile.data.push_back(my_mission_ptr->mission_profile.at(i).end_TAS);
-            if (my_mission_ptr->aero_aft == nullptr && my_mission_ptr->aero_forward == nullptr) { // No alternative aerodynamics = no CoG shift!
+            if (my_mission_ptr->sophistication_level != my_mission_ptr->UNSOPHISTICATED) { // No CoG shift
                 this->CoG_pos_profile.data.push_back(my_mission_ptr->mission_profile.at(i).end_aircraft_cg);
                 this->i_stab_profile.data.push_back(my_mission_ptr->mission_profile.at(i).end_stabilizer_incidence);
             }
@@ -523,24 +535,24 @@ void standard_mission_output::generate_html_report() { // cppcheck-suppress unus
         << html::table_row("Range", "", "NM",  Rounding(convertUnit(METER, NAUTICALMILE, this->my_mission_ptr->mission_file->Range), 2))
         << html::table_row("Payload (PL)", "Passengers + Cargo", "kg",  this->my_mission_ptr->payload_mass.value())
         << html::table_row("Passengers", "", "-", my_mission_ptr->mission_file->PAX)
-        << html::table_row("Cargo mass", "", "kg", my_mission_ptr->mission_file->cargo_mass)
-        << html::table_row("Cruise Mach number", "", "-",  this->my_mission_ptr->mission_file->desired_cruise_speed)
-        << html::table_row("Cruise climb steps", "", "ft",  this->my_mission_ptr->step_height_cruise)
+        << html::table_row("Cargo mass", "", "kg", Rounding(my_mission_ptr->mission_file->cargo_mass, 0))
+        << html::table_row("Cruise Mach number", "", "-",  Rounding(this->my_mission_ptr->mission_file->desired_cruise_speed, 2))
+        << html::table_row("Cruise climb steps", "", "ft",  Rounding(this->my_mission_ptr->step_height_cruise, 0))
         << html::table_row("Climb Mach number", "above crossover altitude", "-",
                                 this->my_mission_ptr->mission_file->desired_cruise_speed + this->my_mission_ptr->delta_mach_above_crossover)
-        << html::table_row("Climb CAS above FL100", "", "KCAS",  this->my_mission_ptr->climb_speed_above_FL100)
-        << html::table_row("Climb CAS below FL100", "", "KCAS",  this->my_mission_ptr->climb_speed_below_FL100)
-        << html::table_row("Descent CAS above FL100", "", "KCAS",  this->my_mission_ptr->descent_speed_above_FL100)
-        << html::table_row("Descent CAS below FL100", "", "KCAS",  this->my_mission_ptr->descent_speed_below_FL100)
-        << html::table_row("Taxi-out time", "min", "",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_origin), 0))
-        << html::table_row("Taxi-in time", "min", "",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_destination), 0))
-        << html::table_row("Alternate distance", "NM", "",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_destination), 0))
+        << html::table_row("Climb CAS above FL100", "", "KCAS",  Rounding(this->my_mission_ptr->climb_speed_above_FL100, 0))
+        << html::table_row("Climb CAS below FL100", "", "KCAS",  Rounding(this->my_mission_ptr->climb_speed_below_FL100, 0))
+        << html::table_row("Descent CAS above FL100", "", "KCAS",  Rounding(this->my_mission_ptr->descent_speed_above_FL100, 0))
+        << html::table_row("Descent CAS below FL100", "", "KCAS",  Rounding(this->my_mission_ptr->descent_speed_below_FL100, 0))
+        << html::table_row("Taxi-out time", "", "min",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_origin), 0))
+        << html::table_row("Taxi-in time", "", "min",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_destination), 0))
+        << html::table_row("Alternate distance", "", "NM",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->alternate_distance), 0))
         << html::table_row("Fuel reserves method", fuelPlanning, "",  "")
         << html::table_end
         << html::h2("Mission simulation results")
         << html::table_begin({"Parameter", "Comment", "Unit", "Value"})
-        << html::table_row("Take-off mass", "TOM = OME + PL + MF - TXF<sub>out</sub>", "kg", this->my_mission_ptr->takeoff_mass.value())
-        << html::table_row("Operating mass empty", "OME", "kg", this->my_mission_ptr->OME)
+        << html::table_row("Take-off mass", "TOM = OME + PL + MF - TXF<sub>out</sub>", "kg", Rounding(this->my_mission_ptr->takeoff_mass.value(), 0))
+        << html::table_row("Operating mass empty", "OME", "kg", Rounding(this->my_mission_ptr->OME, 0))
         << html::table_row("Mission (loaded) fuel", "MF = TF + RF + EF + TXF<sub>out</sub>", "kg",
                             Rounding(this->my_mission_ptr->get_fuel_sum(this->my_mission_ptr->loaded_fuel_mass), 0))
         << html::table_row("Trip fuel", "TF", "kg", Rounding(my_mission_ptr->get_fuel_sum(this->my_mission_ptr->trip_fuel_mass), 0))
@@ -550,26 +562,25 @@ void standard_mission_output::generate_html_report() { // cppcheck-suppress unus
         << html::table_row("Extra fuel", "EF", "kg", Rounding(this->my_mission_ptr->extra_fuel_mass.second, 0))
         << html::table_row("Taxi-out fuel", "TXF<sub>out</sub>", "kg", Rounding(this->my_mission_ptr->taxi_fuel_mass_origin.second, 0))
         << html::table_row("Taxi-in fuel", "TXF<sub>in</sub>", "kg", Rounding(this->my_mission_ptr->taxi_fuel_mass_destination.second, 0))
-        << html::table_row("Landing mass", "MTOM - TF", "kg", this->my_mission_ptr->mission_profile.back().end_total_mass)
+        << html::table_row("Landing mass", "MTOM - TF", "kg", Rounding(this->my_mission_ptr->mission_profile.back().end_total_mass, 0))
         << html::table_row("Block time", "", "h", blockTime)
         << html::table_row("Flight time", "", "h", flightTime)
         << html::table_end;
-        if (requirements_cecked) {
+        if (requirements_checked) {
             report_.htmlReportStream() << html::h2("Calculated performance values for TLARs")
                 << html::table_begin({"Parameter", "Comment", "Unit", "Value"})
                 << html::table_row("Max. operating altitude", "climb with 100ft/min, ISA + " + num2Str(this->my_mission_ptr->delta_ISA) +
-                    " *", "ft", static_cast<int>(Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_operating_altitude), 0)))
+                    " *", "ft", Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_operating_altitude), 0))
                 << html::table_row("One-engine out (OEI) net ceiling", "after T/O @ MTOM, 100ft/min, ISA + "+ num2Str(this->my_mission_ptr->delta_ISA) +
-                    " *", "ft", static_cast<int>(Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_altitude_one_engine_inoperative), 0)))
+                    " *", "ft", Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_altitude_one_engine_inoperative), 0))
                 << html::table_row("Time-to-1500ft", "from break release to 1500 ft **", "min",
-                                    static_cast<int>(Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_1500ft), 0)))
+                                    Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_1500ft), 0))
                 << html::table_row("Time-to-climb", "from 1500 ft to ICA **", "min",
-                                    static_cast<int>(Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_1500ft_to_ICA), 0)))
+                                    Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_1500ft_to_ICA), 0))
                 << html::table_row("Time-to-ICA", "from break release to ICA **", "min",
-                                    static_cast<int>(Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_ICA), 0)))
-                << html::table_row("Range-to-ICA", "from break release to ICA **", "NM",
-                        static_cast<int>(Rounding(convertUnit(METER, NAUTICALMILE, this->my_mission_ptr->range_start_to_ICA), 0)))
-                << html::table_row("Fuel-to-ICA", "from break release to ICA **", "kg",  static_cast<int>(Rounding(this->my_mission_ptr->fuel_start_to_ICA, 1)))
+                                    Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_ICA), 0))
+                << html::table_row("Range-to-ICA", "from break release to ICA **", "NM", Rounding(convertUnit(METER, NAUTICALMILE, this->my_mission_ptr->range_start_to_ICA), 0))
+                << html::table_row("Fuel-to-ICA", "from break release to ICA **", "kg", Rounding(this->my_mission_ptr->fuel_start_to_ICA, 0))
                 << html::table_end
                 << "<p style=\"text-align: right; margin-right: 3rem;\">* Engine rating: Max. Continuous<br>** Engine rating: Climb</p>" << std::endl;
             /* Cruise steps */
@@ -676,7 +687,7 @@ void standard_mission_output::generate_tex_report_body() { // cppcheck-suppress
         << "         \\midrule[0.5pt]" << std::endl
         << "         \\multicolumn{4}{l}{\\textbf{Mission simulation results}}\\\\" << std::endl
         << "         \\midrule[0.5pt]" << std::endl
-        << "             Take-off mass & \\tiny{$TOM = OME + PL + MF - TXF_{out}$} & $\\kilogram$ & " << my_mission_ptr->takeoff_mass.value() << " \\\\ " << std::endl
+        << "             Take-off mass & \\tiny{$TOM = OME + PL + MF - TXF_{out}$} & $\\kilogram$ & " << Rounding(my_mission_ptr->takeoff_mass.value(), 0) << " \\\\ " << std::endl
         << "             Mission (loaded) fuel  &\\tiny{$MF = TF + RF + EF + TXF_{out}$}  & $\\kilogram$   & "
             << Rounding(this->my_mission_ptr->get_fuel_sum(this->my_mission_ptr->loaded_fuel_mass), 0) << " \\\\ " << std::endl
         << "             Trip fuel      & \\tiny{$TF$}        & $\\kilogram$   & "
@@ -742,7 +753,7 @@ void standard_mission_output::generate_tex_report_body() { // cppcheck-suppress
     report_.texReportStream() << "\\end{frame}" << std::endl
     << std::endl
     << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << std::endl;
-    if (this->requirements_cecked) {
+    if (this->requirements_checked) {
         report_.texReportStream() << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << std::endl
         << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << std::endl
         << "\\begin{frame}" << std::endl
@@ -774,9 +785,9 @@ void standard_mission_output::generate_tex_report_body() { // cppcheck-suppress
                << std::setprecision(1) << std::fixed << Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_1500ft), 2) << " \\\\ " << std::endl
         << " Time-to-ICA    & \\tiny{from break release to ICA}     & $\\min$           & "
                << std::setprecision(1) << std::fixed << Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_ICA), 2) << " \\\\ " << std::endl
-        << " Range-to-ICA   & \\tiny{from break release to ICA}     & $\\nauticalmiles$ & " << std::setprecision(1)
+        << " Range-to-ICA   & \\tiny{from break release to ICA}     & $\\nauticalmiles$ & " << std::setprecision(0)
             << std::fixed << Rounding(this->my_mission_ptr->range_start_to_ICA, 2) << " \\\\ " << std::endl
-        << " Fuel-to-ICA    & \\tiny{from break release to ICA}     & $\\kilogram$      & " << std::setprecision(1)
+        << " Fuel-to-ICA    & \\tiny{from break release to ICA}     & $\\kilogram$      & " << std::setprecision(0)
             << std::fixed << Rounding(this->my_mission_ptr->fuel_start_to_ICA, 2) << " \\\\ " << std::endl
         << "        \\bottomrule" << std::endl
         << "    \\end{tabularx}" << std::endl
@@ -786,6 +797,61 @@ void standard_mission_output::generate_tex_report_body() { // cppcheck-suppress
     }
 }
 
+void standard_mission_output::generate_requirements_html_report() {
+    report_.htmlReportStream() << html::div_start("class=\"box\"");
+    /* Fill HTML */
+        if (requirements_checked) { // If-catch whether requirements were really checked
+        /* Reference top of descent from design mission */
+        std::string subpath("analysis/mission/design_mission/cruise/cruise_steps");
+        double design_mission_top_of_descent_altitude =
+            rtIO->acxml.at(subpath +"/cruise_step@" + num2Str(rtIO->acxml.at(subpath).getVector("cruise_step").size() - 1) + "/altitude/value");
+        /* Read in requirements for altitudes, time to climb and Mach number */
+        subpath = "requirements_and_specifications/requirements/top_level_aircraft_requirements";
+        double max_operating_altitude_required = rtIO->acxml.at(subpath + "/flight_envelope/maximum_operating_altitude/value");
+        double max_altitude_one_engine_inoperative_required = rtIO->acxml.at(subpath + "/flight_envelope/maximum_altitude_one_engine_inoperative/value");
+        double time_to_climb_requirement = rtIO->acxml.at(subpath + "/design_mission/time_to_climb/value");
+        bool initial_mach_check(this->my_mission_ptr->initial_cruise_mach + ACCURACY_LOW >= // Added ACCURACY_LOW to catch floating point errors when the values are actually equal
+                                            this->my_mission_ptr->initial_cruise_mach_required);
+        bool max_altitude_check(this->my_mission_ptr->max_operating_altitude >= this->my_mission_ptr->max_operating_altitude_required &&
+                                                                this->my_mission_ptr->max_operating_altitude_required >= design_mission_top_of_descent_altitude);
+        bool max_altitude_oei_check(max_altitude_one_engine_inoperative_required <= this->my_mission_ptr->max_altitude_one_engine_inoperative);
+        bool climb_time_check(this->my_mission_ptr->initial_cruise_altitude_check && (time_to_climb_requirement >= this->my_mission_ptr->time_1500ft_to_ICA));
+        std::string success("<span style=\"color:green;\">&#10004;</span>");
+        std::string fail("<span style=\"color:red;\">&#10006;</span>");
+            report_.htmlReportStream() << html::h2("Calculated performance values for TLARs")
+                << html::table_begin({"Parameter", "Comment", "Unit", "Value", "Required value", "Check"})
+                << html::table_row("Initial cruise altitude (ICA)", "ISA + " + num2Str(this->my_mission_ptr->delta_ISA),
+                    "ft", Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->initial_cruise_altitude),
+                        -1), // precision -1 to catch floating point errors, since both values should be equal
+                    Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->initial_cruise_altitude_required), 0),
+                    (this->my_mission_ptr->initial_cruise_altitude_check ? success : fail))
+                << html::table_row("Initial cruise Mach number", "ISA + " + num2Str(this->my_mission_ptr->delta_ISA),
+                    "-", static_cast<double>(Rounding(this->my_mission_ptr->initial_cruise_mach, 2)),
+                    static_cast<double>(Rounding(this->my_mission_ptr->initial_cruise_mach_required, 2)), (initial_mach_check ? success : fail))
+                << html::table_row("Max. operating altitude", "climb with 100ft/min, ISA + " + num2Str(this->my_mission_ptr->delta_ISA) +
+                    " *", "ft", Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_operating_altitude), 0),
+                    Rounding(convertUnit(METER, FOOT, max_operating_altitude_required), 0), (max_altitude_check ? success : fail))
+                << html::table_row("One-engine out (OEI) net ceiling", "after T/O @ MTOM, 100ft/min, ISA + "+ num2Str(this->my_mission_ptr->delta_ISA) +
+                    " *", "ft", Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_altitude_one_engine_inoperative), 0),
+                    Rounding(convertUnit(METER, FOOT, max_altitude_one_engine_inoperative_required), 0), (max_altitude_oei_check ? success : fail))
+                << html::table_row("Time-to-1500ft", "from break release to 1500 ft **", "min",
+                                    Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_1500ft), 0), "Not specified", "-")
+                << html::table_row("Time-to-climb", "from 1500 ft to ICA **", "min",
+                                    Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_1500ft_to_ICA), 0),
+                                    Rounding(convertUnit(SECOND, MINUTE, time_to_climb_requirement), 0),
+                                    (climb_time_check ? success : (fail + (this->my_mission_ptr->initial_cruise_altitude_check ? "" : " (ICA not reached)"))))
+                << html::table_row("Time-to-ICA", "from break release to ICA **", "min",
+                                    Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_ICA), 0), "Not specified", "-")
+                << html::table_row("Range-to-ICA", "from break release to ICA **", "NM",
+                        Rounding(convertUnit(METER, NAUTICALMILE, this->my_mission_ptr->range_start_to_ICA), 0), "Not specified", "-")
+                << html::table_row("Fuel-to-ICA", "from break release to ICA **", "kg",
+                                    Rounding(this->my_mission_ptr->fuel_start_to_ICA, 0), "Not specified", "-")
+                << html::table_end
+                << "<p style=\"text-align: right; margin-right: 3rem;\">* Engine rating: Max. Continuous<br>** Engine rating: Climb</p>" << std::endl;
+        }
+    report_.htmlReportStream() << html::div_end;
+}
+
 std::string standard_mission_output::timeFormater(double time) {
     double double_hours = convertUnit(SECOND, HOUR, time);
     int int_hours = double_hours;
diff --git a/mission_analysis/src/standard_mission/output/standard_mission_output.h b/mission_analysis/src/standard_mission/output/standard_mission_output.h
index 050565b33d7f5fba4c80273067e936e5a185dda4..e6e972ae0f321c0242af5d6ca9394bd89ca9923b 100644
--- a/mission_analysis/src/standard_mission/output/standard_mission_output.h
+++ b/mission_analysis/src/standard_mission/output/standard_mission_output.h
@@ -47,7 +47,7 @@ class standard_mission_output {
     std::string csv_file_name; /**< Name of the csv file */
     std::string report_file; /**< Name of the report file */
     std::string base_name_output_files; /**< Base name of the output files */
-    bool requirements_cecked; /**< Switch for requirements checked */
+    bool requirements_checked; /**< Switch for requirements checked */
 
     /* SAR plot variables */
     double start_altitude; /**< Altitude at the start for the plot of the Specific Air Range [ft] */
@@ -86,6 +86,9 @@ class standard_mission_output {
     /** \brief Function for generating a HTML report
      */
     void generate_html_report();
+    /** \brief Function for generating a HTML report for the requirements mission
+     */
+    void generate_requirements_html_report();
     /** \brief Function for generating a Tex report
      */
     void generate_tex_report_body();
diff --git a/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp b/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp
index 6edda0d785e594c5f8de59209734b2726296feef..1c09711638b803ed64e72b8af3b8776ad2745b2f 100644
--- a/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp
+++ b/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp
@@ -100,31 +100,31 @@ standard_mission::standard_mission(const std::shared_ptr<RuntimeIO>& rtIO) :
         "requirements_and_specifications/requirements/top_level_aircraft_requirements/maximum_operating_altitude").read(rtIO->acxml).value()),
     max_ceiling_altitude(NAN),
     max_altitude_one_engine_inoperative(NAN),
-    climb_speed_below_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirments mission get the same
+    climb_speed_below_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirements  mission get the same
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/" + this->mission_type +
         "/climb_speed_schedule/climb_speed_below_FL100").read(rtIO->acxml).value()
         :
         EndnodeReadOnly<double>(
             "requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/climb_speed_schedule/climb_speed_below_FL100").read(rtIO->acxml).value()),
-    climb_speed_above_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirments mission get the same
+    climb_speed_above_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirements  mission get the same
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/" + mission_type +
             "/climb_speed_schedule/climb_speed_above_FL100").read(rtIO->acxml).value()
         :
         EndnodeReadOnly<double>(
             "requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/climb_speed_schedule/climb_speed_above_FL100").read(rtIO->acxml).value()),
-    delta_mach_above_crossover(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirments mission get the same
+    delta_mach_above_crossover(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirements  mission get the same
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/" + mission_type +
             "/climb_speed_schedule/delta_mach_climb_cruise").read(rtIO->acxml).value()
         :
         EndnodeReadOnly<double>(
             "requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/climb_speed_schedule/delta_mach_climb_cruise").read(rtIO->acxml).value()),
-    descent_speed_below_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirments mission get the same
+    descent_speed_below_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirements  mission get the same
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/" + mission_type +
             "/descent_speed_schedule/descent_speed_below_FL100").read(rtIO->acxml).value()
         :
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements" +
             std::string("/design_mission/descent_speed_schedule/descent_speed_below_FL100")).read(rtIO->acxml).value()),
-    descent_speed_above_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirments mission get the same
+    descent_speed_above_FL100(this->mission_type == "study_mission" ? // study mission has it's own node while design and requirements  mission get the same
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/" + mission_type +
             "/descent_speed_schedule/descent_speed_above_FL100").read(rtIO->acxml).value()
         :
@@ -162,7 +162,7 @@ standard_mission::standard_mission(const std::shared_ptr<RuntimeIO>& rtIO) :
     /* Mission data */
     auto_climb_switch(false),
     optimum_ROC(false),
-    delta_ISA(this->mission_type == "study_mission" ? // study mission has it's own delta_ISA while design and requirments mission get the same
+    delta_ISA(this->mission_type == "study_mission" ? // study mission has it's own delta_ISA while design and requirements  mission get the same
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/" + this->mission_type + "/delta_ISA").read(rtIO->acxml).value()
         :
         EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/delta_ISA").read(rtIO->acxml).value()),
@@ -302,7 +302,9 @@ void standard_mission::initialize() {
     mission_file->read_departure_steps(this->max_operating_speed, energy_provider);
     mission_file->read_flight_steps(&this->average_shaft_bleed, &this->average_cruise_bleed, &this->auto_climb_switch,
                                     &this->step_height_cruise, this->max_operating_mach, this->max_operating_speed, energy_provider);
-    mission_file->read_approach_steps(this->max_operating_speed, energy_provider);
+    if (!(this->requirement_switch)) { // Requirements mission only flys until ceiling; no approach needed!
+        mission_file->read_approach_steps(this->max_operating_speed, energy_provider);
+    }
 
     /* Initialize mission */
     bool last_segment_free_flight_switch(false);
@@ -824,8 +826,8 @@ void standard_mission::requirements_mission_update() {
     Endnode<double> time_1500ft_to_ICA_node("design_time_to_climb", "Time needed to climb from 1500ft to ICA (ISA + deltaISA)", this->time_1500ft_to_ICA, "s", 0, 7200);
     Endnode<double> time_start_to_1500ft_node("time_to_1500ft_ISA", "Time needed to climb from break release to 1500ft (ISA + deltaISA)", this->time_start_to_1500ft, "s", 0, 7200);
     Endnode<double> time_start_to_ICA_node("time_to_ICA_ISA", "Time needed to climb from break release to ICA (ISA + deltaISA)", this->time_start_to_ICA, "s", 0, 7200);
-    Endnode<double> range_start_to_ICA_node("range_to_ICA_ISA", "Range needed to climb from break release to ICA (ISA + deltaISA)", this->range_start_to_ICA, "m", 0, 45000);
-    Endnode<double> fuel_start_to_ICA_node("fuel_to_ICA_ISA", "Fuel mass needed to climb from break release to ICA (ISA + deltaISA)", this->fuel_start_to_ICA, "kg", 0, 5000);
+    Endnode<double> range_start_to_ICA_node("range_to_ICA_ISA", "Range needed to climb from break release to ICA (ISA + deltaISA)", this->range_start_to_ICA, "m", 0, 500000);
+    Endnode<double> fuel_start_to_ICA_node("fuel_to_ICA_ISA", "Fuel mass needed to climb from break release to ICA (ISA + deltaISA)", this->fuel_start_to_ICA, "kg", 0, 10000);
 
     /* Check if compliance is already set */
     // Set up compliance nodes
@@ -838,7 +840,7 @@ void standard_mission::requirements_mission_update() {
     };
     std::vector<bool> maintainable_vector {
         this->initial_cruise_altitude_check,
-        this->initial_cruise_altitude_check,
+        (this->initial_cruise_mach + ACCURACY_LOW >= this->initial_cruise_mach_required), // Added ACCURACY_LOW to catch floating point errors when the values are actually equal
         (this->max_operating_altitude >= this->max_operating_altitude_required && max_operating_altitude_required >= design_mission_top_of_descent_altitude),
         (max_altitude_one_engine_inoperative_required <= this->max_altitude_one_engine_inoperative),
         (time_to_climb_requirement >= convertUnit(SECOND, MINUTE, this->time_1500ft_to_ICA) && this->initial_cruise_altitude_check)
@@ -860,12 +862,14 @@ void standard_mission::requirements_mission_update() {
 
     /* Subpath: altitudes */
     subpath = "assessment/performance/altitude";
+    this->check_and_add_nodes(subpath, "Assessment of altitude related values");
     max_operating_altitude_node.update(rtIO->acxml.at(subpath));
     max_ceiling_altitude_node.update(rtIO->acxml.at(subpath));
     max_altitude_one_engine_inoperative_node.update(rtIO->acxml.at(subpath));
 
     /* Subpath: climb */
     subpath = "assessment/performance/climb";
+    this->check_and_add_nodes(subpath, "Assessment of the climb segment");
     time_1500ft_to_ICA_node.update(rtIO->acxml.at(subpath));
     time_start_to_1500ft_node.update(rtIO->acxml.at(subpath));
     time_start_to_ICA_node.update(rtIO->acxml.at(subpath));
@@ -873,4 +877,105 @@ void standard_mission::requirements_mission_update() {
     fuel_start_to_ICA_node.update(rtIO->acxml.at(subpath));
 }
 
+// void standard_mission::requirements_mission_report() {
+//     std::string flightTime(timeFormater(this->my_mission_ptr->mission_profile.back().end_time));
+//     std::string blockTime(timeFormater(this->my_mission_ptr->mission_profile.back().end_time +
+//                     this->my_mission_ptr->mission_file->taxi_time_origin + this->my_mission_ptr->mission_file->taxi_time_destination));
+//     report_.htmlReportStream() << html::div_start("class=\"box\"")
+//         << html::h2("Mission specifications")
+//         << html::table_begin({"Parameter", "Comment", "Unit", "Value"})
+//         << html::table_row("Range", "", "NM",  Rounding(convertUnit(METER, NAUTICALMILE, this->my_mission_ptr->mission_file->Range), 2))
+//         << html::table_row("Payload (PL)", "Passengers + Cargo", "kg",  this->my_mission_ptr->payload_mass.value())
+//         << html::table_row("Passengers", "", "-", my_mission_ptr->mission_file->PAX)
+//         << html::table_row("Cargo mass", "", "kg", my_mission_ptr->mission_file->cargo_mass)
+//         << html::table_row("Cruise Mach number", "", "-",  this->my_mission_ptr->mission_file->desired_cruise_speed)
+//         << html::table_row("Cruise climb steps", "", "ft",  this->my_mission_ptr->step_height_cruise)
+//         << html::table_row("Climb Mach number", "above crossover altitude", "-",
+//                                 this->my_mission_ptr->mission_file->desired_cruise_speed + this->my_mission_ptr->delta_mach_above_crossover)
+//         << html::table_row("Climb CAS above FL100", "", "KCAS",  this->my_mission_ptr->climb_speed_above_FL100)
+//         << html::table_row("Climb CAS below FL100", "", "KCAS",  this->my_mission_ptr->climb_speed_below_FL100)
+//         << html::table_row("Descent CAS above FL100", "", "KCAS",  this->my_mission_ptr->descent_speed_above_FL100)
+//         << html::table_row("Descent CAS below FL100", "", "KCAS",  this->my_mission_ptr->descent_speed_below_FL100)
+//         << html::table_row("Taxi-out time", "", "min",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_origin), 0))
+//         << html::table_row("Taxi-in time", "", "min",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_destination), 0))
+//         << html::table_row("Alternate distance", "", "NM",  Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->mission_file->taxi_time_destination), 0))
+//         << html::table_row("Fuel reserves method", fuelPlanning, "",  "")
+//         << html::table_end
+//         << html::h2("Mission simulation results")
+//         << html::table_begin({"Parameter", "Comment", "Unit", "Value"})
+//         << html::table_row("Take-off mass", "TOM = OME + PL + MF - TXF<sub>out</sub>", "kg", this->my_mission_ptr->takeoff_mass.value())
+//         << html::table_row("Operating mass empty", "OME", "kg", this->my_mission_ptr->OME)
+//         << html::table_row("Mission (loaded) fuel", "MF = TF + RF + EF + TXF<sub>out</sub>", "kg",
+//                             Rounding(this->my_mission_ptr->get_fuel_sum(this->my_mission_ptr->loaded_fuel_mass), 0))
+//         << html::table_row("Trip fuel", "TF", "kg", Rounding(my_mission_ptr->get_fuel_sum(this->my_mission_ptr->trip_fuel_mass), 0))
+//         << html::table_row("Reserve fuel", "RF", "kg", Rounding(this->my_mission_ptr->get_fuel_sum(this->my_mission_ptr->loaded_fuel_mass) -
+//                                                         my_mission_ptr->get_fuel_sum(this->my_mission_ptr->trip_fuel_mass) -
+//                                                         this->my_mission_ptr->taxi_fuel_mass_origin.second - this->my_mission_ptr->extra_fuel_mass.second, 0))
+//         << html::table_row("Extra fuel", "EF", "kg", Rounding(this->my_mission_ptr->extra_fuel_mass.second, 0))
+//         << html::table_row("Taxi-out fuel", "TXF<sub>out</sub>", "kg", Rounding(this->my_mission_ptr->taxi_fuel_mass_origin.second, 0))
+//         << html::table_row("Taxi-in fuel", "TXF<sub>in</sub>", "kg", Rounding(this->my_mission_ptr->taxi_fuel_mass_destination.second, 0))
+//         << html::table_row("Landing mass", "MTOM - TF", "kg", this->my_mission_ptr->mission_profile.back().end_total_mass)
+//         << html::table_row("Block time", "", "h", blockTime)
+//         << html::table_row("Flight time", "", "h", flightTime)
+//         << html::table_end;
+//         if (requirements_checked) {
+//             report_.htmlReportStream() << html::h2("Calculated performance values for TLARs")
+//                 << html::table_begin({"Parameter", "Comment", "Unit", "Value"})
+//                 << html::table_row("Max. operating altitude", "climb with 100ft/min, ISA + " + num2Str(this->my_mission_ptr->delta_ISA) +
+//                     " *", "ft", static_cast<int>(Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_operating_altitude), 0)))
+//                 << html::table_row("One-engine out (OEI) net ceiling", "after T/O @ MTOM, 100ft/min, ISA + "+ num2Str(this->my_mission_ptr->delta_ISA) +
+//                     " *", "ft", static_cast<int>(Rounding(convertUnit(METER, FOOT, this->my_mission_ptr->max_altitude_one_engine_inoperative), 0)))
+//                 << html::table_row("Time-to-1500ft", "from break release to 1500 ft **", "min",
+//                                     static_cast<int>(Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_1500ft), 0)))
+//                 << html::table_row("Time-to-climb", "from 1500 ft to ICA **", "min",
+//                                     static_cast<int>(Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_1500ft_to_ICA), 0)))
+//                 << html::table_row("Time-to-ICA", "from break release to ICA **", "min",
+//                                     static_cast<int>(Rounding(convertUnit(SECOND, MINUTE, this->my_mission_ptr->time_start_to_ICA), 0)))
+//                 << html::table_row("Range-to-ICA", "from break release to ICA **", "NM",
+//                         static_cast<int>(Rounding(convertUnit(METER, NAUTICALMILE, this->my_mission_ptr->range_start_to_ICA), 0)))
+//                 << html::table_row("Fuel-to-ICA", "from break release to ICA **", "kg",  static_cast<int>(Rounding(this->my_mission_ptr->fuel_start_to_ICA, 1)))
+//                 << html::table_end
+//                 << "<p style=\"text-align: right; margin-right: 3rem;\">* Engine rating: Max. Continuous<br>** Engine rating: Climb</p>" << std::endl;
+//             /* Cruise steps */
+//             if (!this->my_mission_ptr->cruise_profile.empty()) {
+//                 report_.htmlReportStream() << html::h2("Estimated optimum cruise profile")
+//                     << html::table_begin({"Cruise Step", "Flight Level [100 ft]", "Rel. Cruise Step Length [%]"});
+//                 for (uint16_t i(0); i < this->my_mission_ptr->cruise_profile.size(); i++) {
+//                     report_.htmlReportStream() << html::table_row(i + 1, Rounding(this->my_mission_ptr->cruise_profile.at(i).FL, 1),
+//                                                                     Rounding(this->my_mission_ptr->cruise_profile.at(i).rel_step_length, 2) * 100.);
+//                 }
+//                 report_.htmlReportStream() << html::table_end;
+//             }
+//         }
+//         report_.htmlReportStream() << html::div_end;
+//     /* Graphics */
+//     if (rtIO->plotOn) {
+//         report_.htmlReportStream() << html::div_start("class=\"box\"")
+//             << "<hr>" << std::endl
+//             << html::image("../plots/" + this->base_name_output_files + "_Alt-CL.svg", "alt=\"Broken Path\"")
+//             << "<hr>" << std::endl
+//             << html::image("../plots/" + this->base_name_output_files + "_speed.svg", "alt=\"Broken Path\"")
+//             << "<hr>" << std::endl
+//             << html::image("../plots/" + this->base_name_output_files + "_offtake.svg", "alt=\"Broken Path\"");
+//         if (std::string(rtIO->moduleConfig.at("program_settings/mode/mission_methods/center_of_gravity_method/value")) != "mode_0") {
+//             report_.htmlReportStream() << "<hr>" << std::endl
+//                 << html::image("../plots/" + this->base_name_output_files + "_trim_setting.svg", "alt=\"Broken Path\"");
+//         }
+//         if (my_mission_ptr->variable_camber_switch) {
+//             report_.htmlReportStream() << "<hr>" << std::endl
+//                 << html::image("../plots/" + this->base_name_output_files + "_flap_setting.svg", "alt=\"Broken Path\"");
+//         }
+//         if (SAR_plot_on) {
+//             report_.htmlReportStream() << "<hr>" << std::endl;
+//             for (uint16_t i(0); i < SAR_mach.size(); i++) {
+//                 if (i != 0) {
+//                     report_.htmlReportStream() << "<br>" << std::endl;
+//                 }
+//                 report_.htmlReportStream() << html::image("../plots/" + this->base_name_output_files + "_SAR_mach_" + num2Str(SAR_mach[i]) + ".svg", "alt=\"Broken Path\"");
+//             }
+//         }
+//         report_.htmlReportStream() << html::div_end;
+//     }
+// }
+
 } // namespace requirements_mission
diff --git a/mission_analysis/src/standard_mission/standard_mission/standard_mission.h b/mission_analysis/src/standard_mission/standard_mission/standard_mission.h
index 41eaad27584601a94ebba7e6ed550baf6ad26699..cc2f51c4fec06f3d54fbe34b2c9df3b7156cafd0 100644
--- a/mission_analysis/src/standard_mission/standard_mission/standard_mission.h
+++ b/mission_analysis/src/standard_mission/standard_mission/standard_mission.h
@@ -931,9 +931,10 @@ class standard_mission : public ::standard_mission {
         this->aero.switchOffReqSwitch();
         requirements_mission_update();
     }
-    void report() override {}
 
     /* Own methods to replace within/add to standard_mission methods */
+    /** \brief Function to only update requirements mission values
+     */
     void requirements_mission_update();
 };
 } // namespace requirements_mission