diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs
index d1bcd8274fbbc00de7e09fbc81bc4d0470dbb2b6..066284b7cbab2e797014b09435a568b26661aad7 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs
@@ -136,6 +136,28 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			return pneumaticUI;
 		}
 
+		public void SetSSMBusParameters(SSMInputs ssmInputs, Mission mission)
+		{
+			var busParams = mission.BusParameter;
+
+			var hvacBusLength = busParams.HVACConfiguration == BusHVACSystemConfiguration.Configuration2
+				? 2 * Constants.BusParameters.DriverCompartmentLength
+				: busParams.VehicleLength;
+
+			var hvacBusHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(busParams.FloorType,
+				busParams.DoubleDecker, busParams.BodyHeight);
+
+			ssmInputs.NumberOfPassengers = mission.RefLoad.Value();
+			ssmInputs.BusFloorType = busParams.FloorType;
+
+			ssmInputs.BusWindowSurface = DeclarationData.BusAuxiliaries.WindowHeight(busParams.DoubleDecker) * hvacBusLength +
+						DeclarationData.BusAuxiliaries.FrontAndRearWindowArea(busParams.DoubleDecker);
+			ssmInputs.BusSurfaceArea = 2 * (hvacBusLength * busParams.VehicleWidth + hvacBusLength *
+											busParams.BodyHeight + busParams.VehicleWidth * busParams.BodyHeight);
+			ssmInputs.BusVolume = hvacBusLength * busParams.VehicleWidth * hvacBusHeight;
+		}
+
+
 
 		public override AirdragData CreateAirdragData(IAirdragDeclarationInputData airdragInputData, Mission mission,
 			Segment segment)
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationDataAdapterCompletedBus.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationDataAdapterCompletedBus.cs
index e585529ffe63e9335f2e249bb14235568f429b4f..9bd2db4ac20122a46f06f052349d55517328fea0 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationDataAdapterCompletedBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationDataAdapterCompletedBus.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
@@ -12,6 +13,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.BusAuxiliaries;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
 using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics;
 
@@ -136,22 +138,29 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 
 		}
 
-
-
-		public PneumaticUserInputsConfig SetPneumaticUserInputsConfig(PneumaticUserInputsConfig pneumaticUserInputsConfig,
-			IVehicleDeclarationInputData completedVehicle)
+		public void SetSSMBusParameters(SSMInputs ssmInputs, IVehicleDeclarationInputData completedVehicle, Mission mission,
+			KeyValuePair<LoadingType, Kilogram> loading)
 		{
+			var busAuxiliaries = completedVehicle.Components.BusAuxiliaries;
+			var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckBus();
+			var floorType = GetFloorType(completedVehicle.VehicleCode);
 
-			pneumaticUserInputsConfig.KneelingHeight = VectoMath.Max(0.SI<Meter>(), 
-				completedVehicle.EntranceHeight - Constants.BusParameters.EntranceHeight);
-			pneumaticUserInputsConfig.Doors =
-				completedVehicle.Components.BusAuxiliaries.PneumaticConsumers.DoorDriveTechnology;
-
-			return pneumaticUserInputsConfig;
-		}
-
+			var hvacBusLength = busAuxiliaries.HVACAux.SystemConfiguration == BusHVACSystemConfiguration.Configuration2
+				? 2 * Constants.BusParameters.DriverCompartmentLength
+				: completedVehicle.Length;
 
+			var hvacBusHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(GetFloorType(completedVehicle.VehicleCode),
+				isDoubleDecker, completedVehicle.Height);
 
+			ssmInputs.NumberOfPassengers = GetLoading(completedVehicle, mission, loading).Value();
+			ssmInputs.BusFloorType = floorType;
+			
+			ssmInputs.BusWindowSurface = DeclarationData.BusAuxiliaries.WindowHeight(isDoubleDecker) * hvacBusLength +
+										DeclarationData.BusAuxiliaries.FrontAndRearWindowArea(isDoubleDecker);
+			ssmInputs.BusSurfaceArea = 2 * (hvacBusLength * completedVehicle.Width + hvacBusLength *
+											completedVehicle.Height + completedVehicle.Width * completedVehicle.Height);
+			ssmInputs.BusVolume = hvacBusLength * completedVehicle.Width * hvacBusHeight;
+		}
 
 		public IEnumerable<VectoRunData.AuxData> CreateAuxiliaryData(
 			IAuxiliariesDeclarationInputData auxiliaryInputData, IBusAuxiliariesDeclarationData mergedBusAux,
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
index f76e24248758d08f7b204809270aac5ccac44c6d..a5ad452c3df3182f284bd1c3ae0f2f1a994a8140 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
@@ -13,6 +13,7 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.BusAuxiliaries;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
 using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics;
 using TUGraz.VectoCore.Models.Declaration;
@@ -287,10 +288,20 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 					primaryBusAuxiliaries, completedVehicle, _compressorMap),
 
 				PneumaticAuxillariesConfig = _consumersDeclarationData
+
+
+				
 			};
-			
+
+			var ssmInputs = new SSMInputs(null);
+			DataAdapterCompleted.SetSSMBusParameters(ssmInputs, completedVehicle, mission, loading);
+
+
+			auxiliaryConfig.SSMInputs = ssmInputs;
+
 			simulationRunData.BusAuxiliaries = auxiliaryConfig;
 
+
 			simulationRunData.Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString());
 
 			
@@ -370,6 +381,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				PneumaticAuxillariesConfig = _consumersDeclarationData
 			};
 
+			var ssmInputs = new SSMInputs(null);
+			DataAdapterPrimary.SetSSMBusParameters(ssmInputs, mission);
+
+
+			auxiliaryConfig.SSMInputs = ssmInputs;
+
 			simulationRunData.BusAuxiliaries = auxiliaryConfig;
 
 
diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
index 7df8416913725cf300ce915951d51d23d1d61599..ce83f04ce25d6094a5668aea3791e616cdf2e17d 100644
--- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
@@ -105,10 +105,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 
 			SetRelatedVehicleParts(runs);
 
-			var index = 0;
 			for (int i = 0; i < relatedRuns.Count; i++)
 			{
-				AssertVehicleData(relatedRuns[i], ref index);
+				AssertVehicleData(relatedRuns[i],i);
 				AssertAirdragData(relatedRuns[i]);
 				AssertEngineData(relatedRuns[i]);
 				AssertGearbox(relatedRuns[i]);
@@ -120,13 +119,14 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 				AssertElectricalUserInputConfig(relatedRuns[i]);
 				AssertPneumaticUserInputsConfig(relatedRuns[i]);
 				AssertPneumaticConsumerDemand(relatedRuns[i]);
+				AssertSSMBusParameters(relatedRuns[i], i);
 			}
 
 		}
 
 		#region Vehicle Data Asserts
 
-		private void AssertVehicleData(RelatedRun relatedRun, ref int index)
+		private void AssertVehicleData(RelatedRun relatedRun, int currentIndex)
 		{
 			var genericVehicleData = relatedRun.VectoRunDataGenericBody.VehicleData;
 			var specificVehicleData = relatedRun.VectoRunDataSpezificBody.VehicleData;
@@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			Assert.AreEqual(0, genericVehicleData.BodyAndTrailerMass.Value());
 			Assert.AreEqual(genericVehicleData.BodyAndTrailerMass, specificVehicleData.BodyAndTrailerMass);
 
-			AssertLoading(genericVehicleData.Loading, specificVehicleData.Loading, ref index);
+			AssertLoading(genericVehicleData.Loading, specificVehicleData.Loading, currentIndex);
 
 			Assert.AreEqual(0.4992, genericVehicleData.DynamicTyreRadius.Value(), 1e-0);
 			Assert.AreEqual(genericVehicleData.DynamicTyreRadius, specificVehicleData.DynamicTyreRadius);
@@ -150,28 +150,27 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			AssertAxles(genericVehicleData.AxleData, specificVehicleData.AxleData);
 		}
 
-		private void AssertLoading(Kilogram genericLoading, Kilogram specificLoading, ref int index)
+		private void AssertLoading(Kilogram genericLoading, Kilogram specificLoading, int index)
 		{
 			switch (index)
 			{
 				case 0:
-					Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-0);
-					Assert.AreEqual(2309.4738, specificLoading.Value(), 1e-0);//lowLoading
+					Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-4);
+					Assert.AreEqual(2309.4738, specificLoading.Value(), 1e-4);
 					break;
 				case 1:
-					Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-0);
+					Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-4);
 					Assert.AreEqual(2130, specificLoading.Value(), 1e-0);
 					break;
 				case 2:
-					Assert.AreEqual(3367.53, genericLoading.Value(), 1e-0);
-					Assert.AreEqual(1539.6492, specificLoading.Value(), 1e-0);
+					Assert.AreEqual(3367.53, genericLoading.Value(), 1e-2);
+					Assert.AreEqual(1539.6492, specificLoading.Value(), 1e-4);
 					break;
 				case 3:
-					Assert.AreEqual(3367.53, genericLoading.Value(), 1e-0);
+					Assert.AreEqual(3367.53, genericLoading.Value(), 1e-2);
 					Assert.AreEqual(2130.0, specificLoading.Value(), 1e-0);
 					break;
 			}
-			index++;
 		}
 
 		private void AssertADASData(VehicleData.ADASData genericAdasData, VehicleData.ADASData specificAdasData)
@@ -624,6 +623,31 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 		#endregion
 
 
+		#region SSMBusParameters Asserts
+
+		private void AssertSSMBusParameters(RelatedRun relatedRun, int currentIndex)
+		{
+			var genericBusParam = relatedRun.VectoRunDataGenericBody.BusAuxiliaries.SSMInputs.BusParameters;
+			var specificBusParam = relatedRun.VectoRunDataSpezificBody.BusAuxiliaries.SSMInputs.BusParameters;
+			
+			AssertLoading(genericBusParam.NumberOfPassengers.SI<Kilogram>(), 
+				specificBusParam.NumberOfPassengers.SI<Kilogram>(), currentIndex);
+			
+			Assert.AreEqual(FloorType.HighFloor, genericBusParam.BusFloorType);
+			Assert.AreEqual(FloorType.HighFloor, specificBusParam.BusFloorType);
+
+			Assert.AreEqual(34.2500, genericBusParam.BusWindowSurface.Value());
+			Assert.AreEqual(37.5750, specificBusParam.BusWindowSurface.Value());
+
+			Assert.AreEqual(150.1200, genericBusParam.BusSurfaceArea.Value());
+			Assert.AreEqual(146.6130, specificBusParam.BusSurfaceArea.Value());
+
+			Assert.AreEqual(48.1950, genericBusParam.BusVolume.Value());
+			Assert.AreEqual(54.2997, specificBusParam.BusVolume.Value());
+		}
+
+		#endregion
+		
 		private CrosswindCorrectionCdxALookup GetCrosswindCorrection(string crossWindCorrectionParams,
 			SquareMeter aerodynamicDragArea, Meter vehicleHeight)
 		{