diff --git a/VECTO/GUI/HybridStrategyParamsForm.Designer.vb b/VECTO/GUI/HybridStrategyParamsForm.Designer.vb
index 615b99111207cff0ca352514507c5c0391db7ac0..f10472531a2b3e5b90d3d2eb94de381302ac3ac4 100644
--- a/VECTO/GUI/HybridStrategyParamsForm.Designer.vb
+++ b/VECTO/GUI/HybridStrategyParamsForm.Designer.vb
@@ -87,6 +87,10 @@ Partial Class HybridStrategyParamsForm
         Me.EquivalenceFactorChg = New System.Windows.Forms.Label()
         Me.lblEquivFactorChargeUnit = New System.Windows.Forms.Label()
         Me.tbEquivalenceFactorCharge = New System.Windows.Forms.TextBox()
+        Me.Panel3 = New System.Windows.Forms.Panel()
+        Me.lblICEStartPenaltyFactor = New System.Windows.Forms.Label()
+        Me.lblICEStartPenaltyFactorUnit = New System.Windows.Forms.Label()
+        Me.tbICEStartPenaltyFactor = New System.Windows.Forms.TextBox()
         Me.ToolStrip1.SuspendLayout
         Me.StatusStrip1.SuspendLayout
         CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit
@@ -99,6 +103,7 @@ Partial Class HybridStrategyParamsForm
         Me.pnAuxBufferChgTime.SuspendLayout
         Me.Panel1.SuspendLayout
         Me.Panel2.SuspendLayout
+        Me.Panel3.SuspendLayout
         Me.SuspendLayout
         '
         'tbEquivalenceFactorDischarge
@@ -536,6 +541,41 @@ Partial Class HybridStrategyParamsForm
         Me.tbEquivalenceFactorCharge.Size = New System.Drawing.Size(57, 20)
         Me.tbEquivalenceFactorCharge.TabIndex = 3
         '
+        'Panel3
+        '
+        Me.Panel3.Controls.Add(Me.lblICEStartPenaltyFactor)
+        Me.Panel3.Controls.Add(Me.lblICEStartPenaltyFactorUnit)
+        Me.Panel3.Controls.Add(Me.tbICEStartPenaltyFactor)
+        Me.Panel3.Location = New System.Drawing.Point(12, 314)
+        Me.Panel3.Name = "Panel3"
+        Me.Panel3.Size = New System.Drawing.Size(288, 28)
+        Me.Panel3.TabIndex = 30
+        '
+        'lblICEStartPenaltyFactor
+        '
+        Me.lblICEStartPenaltyFactor.AutoSize = true
+        Me.lblICEStartPenaltyFactor.Location = New System.Drawing.Point(3, 7)
+        Me.lblICEStartPenaltyFactor.Name = "lblICEStartPenaltyFactor"
+        Me.lblICEStartPenaltyFactor.Size = New System.Drawing.Size(114, 13)
+        Me.lblICEStartPenaltyFactor.TabIndex = 0
+        Me.lblICEStartPenaltyFactor.Text = "ICE start penalty factor"
+        '
+        'lblICEStartPenaltyFactorUnit
+        '
+        Me.lblICEStartPenaltyFactorUnit.AutoSize = true
+        Me.lblICEStartPenaltyFactorUnit.Location = New System.Drawing.Point(244, 7)
+        Me.lblICEStartPenaltyFactorUnit.Name = "lblICEStartPenaltyFactorUnit"
+        Me.lblICEStartPenaltyFactorUnit.Size = New System.Drawing.Size(16, 13)
+        Me.lblICEStartPenaltyFactorUnit.TabIndex = 24
+        Me.lblICEStartPenaltyFactorUnit.Text = "[-]"
+        '
+        'tbICEStartPenaltyFactor
+        '
+        Me.tbICEStartPenaltyFactor.Location = New System.Drawing.Point(181, 4)
+        Me.tbICEStartPenaltyFactor.Name = "tbICEStartPenaltyFactor"
+        Me.tbICEStartPenaltyFactor.Size = New System.Drawing.Size(57, 20)
+        Me.tbICEStartPenaltyFactor.TabIndex = 3
+        '
         'HybridStrategyParamsForm
         '
         Me.AcceptButton = Me.ButOK
@@ -543,6 +583,7 @@ Partial Class HybridStrategyParamsForm
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
         Me.CancelButton = Me.ButCancel
         Me.ClientSize = New System.Drawing.Size(449, 403)
+        Me.Controls.Add(Me.Panel3)
         Me.Controls.Add(Me.Panel2)
         Me.Controls.Add(Me.Panel1)
         Me.Controls.Add(Me.pnAuxBufferChgTime)
@@ -586,6 +627,8 @@ Partial Class HybridStrategyParamsForm
         Me.Panel1.PerformLayout
         Me.Panel2.ResumeLayout(false)
         Me.Panel2.PerformLayout
+        Me.Panel3.ResumeLayout(false)
+        Me.Panel3.PerformLayout
         Me.ResumeLayout(false)
         Me.PerformLayout
 
@@ -640,4 +683,8 @@ End Sub
     Friend WithEvents EquivalenceFactorChg As Label
     Friend WithEvents lblEquivFactorChargeUnit As Label
     Friend WithEvents tbEquivalenceFactorCharge As TextBox
+    Friend WithEvents Panel3 As Panel
+    Friend WithEvents lblICEStartPenaltyFactor As Label
+    Friend WithEvents lblICEStartPenaltyFactorUnit As Label
+    Friend WithEvents tbICEStartPenaltyFactor As TextBox
 End Class
diff --git a/VECTO/GUI/HybridStrategyParamsForm.vb b/VECTO/GUI/HybridStrategyParamsForm.vb
index a399335630632c0e6d344492e78d4fccfd93f57b..75aef57a63895981df0a49c6a3c4c379c4b86b51 100644
--- a/VECTO/GUI/HybridStrategyParamsForm.vb
+++ b/VECTO/GUI/HybridStrategyParamsForm.vb
@@ -57,7 +57,7 @@ Public Class HybridStrategyParamsForm
         _changed = False
 
 
-        NewEngine()
+        NewHybStrategyParams()
     End Sub
 
     'Set generic values for Declaration mode.
@@ -73,7 +73,7 @@ Public Class HybridStrategyParamsForm
 #Region "Toolbar"
 
     Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-        NewEngine()
+        NewHybStrategyParams()
     End Sub
 
     Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
@@ -130,7 +130,7 @@ Public Class HybridStrategyParamsForm
 #End Region
 
     'Create new empty Engine file.
-    Private Sub NewEngine()
+    Private Sub NewHybStrategyParams()
 
         If ChangeCheckCancel() Then Exit Sub
 
@@ -177,7 +177,7 @@ Public Class HybridStrategyParamsForm
 
         tbEquivalenceFactorDischarge.Text = strategyParams.EquivalenceFactorDischarge.ToGUIFormat()
 
-        tbEquivalenceFactorDischarge.Text = strategyParams.EquivalenceFactorDischarge.ToGUIFormat()
+        tbEquivalenceFactorCharge.Text = strategyParams.EquivalenceFactorCharge.ToGUIFormat()
         tbMinSoC.Text = (strategyParams.MinSoC * 100).ToGUIFormat()
         tbMaxSoC.Text = (strategyParams.MaxSoC * 100).ToGUIFormat()
         tbTargetSoC.Text = (strategyParams.TargetSoC * 100).ToGUIFormat()
@@ -186,6 +186,7 @@ Public Class HybridStrategyParamsForm
         tbauxBufferTime.Text = strategyParams.AuxBufferTime.ToGUIFormat()
         tbMinICEOnTime.Text = strategyParams.MinimumICEOnTime.ToGUIFormat()
 
+        tbICEStartPenaltyFactor.Text = strategyParams.ICEStartPenaltyFactor.ToGUIFormat()
         DeclInit()
 
         REESSFileBrowser.UpdateHistory(file)
@@ -226,6 +227,7 @@ Public Class HybridStrategyParamsForm
         strategyParams.MinimumIceOnTime = tbMinICEOnTime.Text.ToDouble(0)
         strategyParams.AuxiliaryBufferTime = tbauxBufferTime.Text.ToDouble(0)
         strategyParams.AuxiliaryBufferChgTime = tbAuxBufferChargeTime.Text.ToDouble(0)
+        strategyParams.ICEStartPenaltyFactor = tbICEStartPenaltyFactor.Text.ToDouble()
 
         If Not strategyParams.SaveFile Then
             MsgBox("Cannot save to " & file, MsgBoxStyle.Critical)
diff --git a/VECTO/Input Files/HybridStrategyParams.vb b/VECTO/Input Files/HybridStrategyParams.vb
index bf320c38c60b792ca044a064f21e8ec570029de6..5597be7dd9e054effac46b1af7f36e2653e295c7 100644
--- a/VECTO/Input Files/HybridStrategyParams.vb	
+++ b/VECTO/Input Files/HybridStrategyParams.vb	
@@ -103,6 +103,8 @@ Public Class HybridStrategyParams
         End Get
     End Property
 
+    Public Property ICEStartPenaltyFactor As Double Implements IHybridStrategyParameters.ICEStartPenaltyFactor
+
     Public Property AuxiliaryBufferTime As Double
 
     Public Property AuxiliaryBufferChgTime As Double
diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
index be521c9aba34a87915dd7fb6983b7d5b5579aaa0..b18ff62bdc99236f0c86e15ada2575297f1e6494 100644
--- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
@@ -84,6 +84,7 @@ namespace TUGraz.VectoCommon.InputData
 		Second MinimumICEOnTime { get; }
 		Second AuxBufferTime { get; }
 		Second AuxBufferChargeTime { get; }
+		double ICEStartPenaltyFactor { get; }
 	}
 
 	public interface IVehicleEngineeringInputData : IVehicleDeclarationInputData
diff --git a/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs b/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs
index 282d27b1b838005e551ab550c2471f6d78c17a2f..7a541ed6beb4b2a4539518a07646d739b507675c 100644
--- a/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs
+++ b/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs
@@ -41,7 +41,14 @@ namespace TUGraz.VectoCommon.Models {
 
 		public IResponse Response { get; set; }
 
-		public double Score { get { return (FuelCosts + EquivalenceFactor * (BatCosts + ICEStartPenalty1) * SoCPenalty + ICEStartPenalty2) / GearshiftPenalty; } }
+		public double Score
+		{
+			get
+			{
+				return (FuelCosts + EquivalenceFactor * (BatCosts + ICEStartPenalty1) * SoCPenalty + ICEStartPenalty2 +
+						RampUpPenalty) / GearshiftPenalty;
+			}
+		}
 
 		public double FuelCosts { get; set; }
 
@@ -62,6 +69,7 @@ namespace TUGraz.VectoCommon.Models {
 		public bool ICEOff { get; set; }
 
 		public HybridConfigurationIgnoreReason IgnoreReason { get; set; }
+		public double RampUpPenalty { get; set; }
 
 		public bool IsEqual(HybridResultEntry other)
 		{
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs
index bc392525d0efffc165dcf2f87273f749eb0b922e..ea147286236ca457517a178bb264a56528a6b867 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs
@@ -63,5 +63,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		{
 			get { return Body.GetEx<double>("AuxBufferChgTime").SI<Second>(); }
 		}
+
+		public double ICEStartPenaltyFactor
+		{
+			get
+			{
+				return Body["ICEStartPenaltyFactor"] == null ? 0 : Body.GetEx<double>("ICEStartPenaltyFactor");
+			}
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index b4f42034c942194aa5d3c2559fa1056b9b5f7316..38d871ccfd955d67a42f0bbadddf026bb0312b98 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -792,7 +792,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				MinICEOnTime = hybridStrategyParameters.MinimumICEOnTime,
 				AuxReserveTime = hybridStrategyParameters.AuxBufferTime,
 				AuxReserveChargeTime = hybridStrategyParameters.AuxBufferChargeTime,
-				MaxPropulsionTorque = torqueLimit
+				MaxPropulsionTorque = torqueLimit,
+				ICEStartPenaltyFactor = hybridStrategyParameters.ICEStartPenaltyFactor
 			};
 			return retVal;
 		}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs
index 0a7145c95860fa2c1b196d956f7ee4e92f577283..d2fa5c7cb8c3a7024bff00c57ac92052a11a62b8 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs
@@ -1,7 +1,8 @@
-using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Utils;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Data {
-	public class HybridStrategyParameters
+	public class HybridStrategyParameters 
 	{
 		public double EquivalenceFactorDischarge { get; set; }
 
@@ -20,6 +21,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data {
 		public Second MinICEOnTime { get; set; }
 		
 		public VehicleMaxPropulsionTorque MaxPropulsionTorque { get; set; }
+		public double ICEStartPenaltyFactor { get; set; }
 
 		//public Watt MaxDrivetrainPower { get; set; }
 	}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
index 2692cde0715f15dfb4248a938f4a034544f1f109..970498a5f8512cbecef0087568f44bc871fd7627 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
@@ -143,7 +143,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl {
 						ModelData.Inertia, ModelData.EngineStartTime) * ModelData.EngineStartTime;
 					var avgRampUpSpeed = (ModelData.IdleSpeed + PreviousState.EngineSpeed) / 2.0;
 					var engineDragEnergy =
-						VectoMath.Abs(ModelData.FullLoadCurves[0].DragLoadStationaryPower(avgRampUpSpeed)) *
+						VectoMath.Abs(ModelData.FullLoadCurves[0].DragLoadStationaryTorque(avgRampUpSpeed)) *
 						avgRampUpSpeed * 0.5.SI<Second>();
 
 					container[ModalResultField.P_ice_start] =
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
index 58258f8672e37303c1d7f6379b847603eeb6851c..64051eee38b024649f917ddb7cdcdef3cdddbe5c 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
@@ -1775,6 +1775,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 				tmp.ICEStartPenalty1 = 0;
 				tmp.ICEStartPenalty2 = 0;
 			}
+
+			if (!DataBus.EngineCtl.CombustionEngineOn && !tmp.ICEOff) {
+				var engineRampUpEnergy = Formulas.InertiaPower(DataBus.EngineInfo.EngineSpeed, ModelData.EngineData.IdleSpeed,
+					ModelData.EngineData.Inertia, ModelData.EngineData.EngineStartTime) * ModelData.EngineData.EngineStartTime;
+				var avgRampUpSpeed = (ModelData.EngineData.IdleSpeed + DataBus.EngineInfo.EngineSpeed) / 2.0;
+				var engineDragEnergy =
+					VectoMath.Abs(ModelData.EngineData.FullLoadCurves[0].DragLoadStationaryTorque(avgRampUpSpeed)) *
+					avgRampUpSpeed * 0.5.SI<Second>();
+				tmp.RampUpPenalty = (engineRampUpEnergy + engineDragEnergy).Value() * StrategyParameters.ICEStartPenaltyFactor;
+			} else {
+				tmp.RampUpPenalty = 0;
+			}
 			if (!double.IsNaN(tmp.FuelCosts) && tmp.IgnoreReason == 0) {
 				tmp.IgnoreReason = HybridConfigurationIgnoreReason.Evaluated;
 			}
@@ -1851,25 +1863,25 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 
 			container[ModalResultField.MaxPropulsionTorqe] = CurrentState.MaxGbxTq ?? 0.SI<NewtonMeter>();
 
-			//if (CurrentState.Evaluations != null) {
-			//    container.SetDataValue(
-			//        "HybridStrategyEvaluation",
-			//        string.Join(
-			//            " | ", CurrentState.Evaluations.Select(
-			//                x => {
-			//                    var foo = string.Join(" ", x.Setting.MechanicalAssistPower.Select(e => $"{e.Key.GetName()} - {e.Value}"));
-			//                    var ice = "====";
-			//                    if (x.Response != null) {
-			//                        ice =
-			//                            $"{x.Response.Engine.TorqueOutDemand}, {x.Response.Engine.TotalTorqueDemand}, {x.Response.Engine.DynamicFullLoadTorque}";
-			//                    }
-			//                    return
-			//                        $"{x.U:F2}: {x.Score:F2}; G{x.Gear}; ({x.FuelCosts:F2} + {x.EquivalenceFactor:F2} * ({x.BatCosts:F2} + {x.ICEStartPenalty1:F2}) * {x.SoCPenalty:F2} + {x.ICEStartPenalty2:F2}) / {x.GearshiftPenalty:F2} = {x.Score:F2} ({foo} ICE: {ice}); {x.IgnoreReason.HumanReadable()}";
-			//                })
-			//            )
-			//        );
-			//}
-		}
+            if (CurrentState.Evaluations != null) {
+                container.SetDataValue(
+                    "HybridStrategyEvaluation",
+                    string.Join(
+                        " | ", CurrentState.Evaluations.Select(
+                            x => {
+                                var foo = string.Join(" ", x.Setting.MechanicalAssistPower.Select(e => $"{e.Key.GetName()} - {e.Value}"));
+                                var ice = "====";
+                                if (x.Response != null) {
+                                    ice =
+                                        $"{x.Response.Engine.TorqueOutDemand}, {x.Response.Engine.TotalTorqueDemand}, {x.Response.Engine.DynamicFullLoadTorque}";
+                                }
+                                return
+                                    $"{x.U:F2}: {x.Score:F2}; G{x.Gear}; ({x.FuelCosts:F2} + {x.EquivalenceFactor:F2} * ({x.BatCosts:F2} + {x.ICEStartPenalty1:F2}) * {x.SoCPenalty:F2} + {x.ICEStartPenalty2:F2} + {x.RampUpPenalty:F2}) / {x.GearshiftPenalty:F2} = {x.Score:F2} ({foo} ICE: {ice}); {x.IgnoreReason.HumanReadable()}";
+                            })
+                        )
+                    );
+            }
+        }
 
 		
 	}
diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
index 84b91668984f772f4a135a17bab4574f6700a509..c78d1ffcbb21049ae2e98c1225dd7306a213eba9 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
@@ -1118,7 +1118,8 @@ public class JSONFileWriter : IOutputFileWriter
 			{"TargetSoC", hp.TargetSoC * 100},
 			{"AuxBufferTime", hp.AuxBufferTime.Value()},
 			{"AuxBufferChgTime", hp.AuxBufferChargeTime.Value()},
-			{"MinICEOnTime", hp.MinimumICEOnTime.Value() }
+			{"MinICEOnTime", hp.MinimumICEOnTime.Value() },
+			{"ICEStartPenaltyFactor", hp.ICEStartPenaltyFactor}
 		};
 		WriteFile(header, body, filePath);
 	}
diff --git a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
index ab6946b918267a54c0dce1074df27d8c34da7429..07427ca2d56d3e94db074fa950b1a50f9ed6cb61 100644
--- a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
@@ -1273,6 +1273,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 				AuxReserveTime = 5.SI<Second>(),
 				AuxReserveChargeTime = 2.SI<Second>(),
 				MinICEOnTime = 3.SI<Second>(), 
+				ICEStartPenaltyFactor = 0,
 				//MaxDrivetrainPower = maxDriveTrainPower ?? 1e12.SI<Watt>(),
 			};
 		}