diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
index 9a45e004a8d751e9af0bb04cd45a38f6551c8823..288b74dadc588dd1c7dc858ecf8d179a201cd52d 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
@@ -712,7 +712,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			return validAirdragEntries;
 		}
 
-		private bool IsInputDataCompleteExempted(VectoSimulationJobType jobType, bool fullCheck)
+        private bool IsInputDataCompleteExempted(VectoSimulationJobType jobType, bool fullCheck)
 		{
 			if (fullCheck)
 			{
@@ -754,7 +754,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			if (fullCheck) {
 				//use Binary AND to execute all Statements and gather information about missing parameters.
 				return InputComplete(Model, nameof(Model))
-					& InputComplete(LegislativeClass, nameof(LegislativeClass))
+                    & InputComplete(LegislativeClass, nameof(LegislativeClass))
 					& InputComplete(CurbMassChassis, nameof(CurbMassChassis))
 					& InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating))
 					& MethodComplete(IsAirdragEntriesValid(), nameof(IsAirdragEntriesValid))
@@ -777,7 +777,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			}
 			
 		
-			return  InputComplete(Model, nameof(Model)) 
+			return  InputComplete(Model, nameof(Model))
 					&& InputComplete(LegislativeClass, nameof(LegislativeClass)) 
 					&& InputComplete(CurbMassChassis, nameof(CurbMassChassis)) 
 					&& InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating))
@@ -1173,7 +1173,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			if (fullCheck) {
 				//use Binary AND to execute all Statements and gather information about missing parameters.
 				return InputComplete(_consolidateElectricConsumerData, nameof(_consolidateElectricConsumerData))
-					& _consolidateElectricConsumerData.IsInputDataCompleteFullCheck(jobType)
+					& ((_consolidateElectricConsumerData != null)
+                        && _consolidateElectricConsumerData.IsInputDataCompleteFullCheck(jobType))
 					& InputComplete(_consolidatedHVACBusAuxiliariesData, nameof(_consolidatedHVACBusAuxiliariesData))
 					& ((_consolidatedHVACBusAuxiliariesData != null)
 						&& _consolidatedHVACBusAuxiliariesData.IsInputDataCompleteFullCheck(jobType));
@@ -1201,7 +1202,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 		protected override IList<string> GetInvalidEntriesTemplate(VectoSimulationJobType jobType)
 		{
-			return _invalidEntries.Concat(_consolidateElectricConsumerData.GetInvalidEntries(jobType))
+			return _invalidEntries.Concat(_consolidateElectricConsumerData?.GetInvalidEntries(jobType) 
+					?? new List<string>() { XMLNames.BusAux_ElectricSystem })
 				.Concat(_consolidatedHVACBusAuxiliariesData?.GetInvalidEntries(jobType) ?? new List<string>()).ToList();
 		}
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
index d49ef125a574ef273acff72261510d0bb773ada2..eedd666fe0f3125b5d2f8512ffa3334aba76d33a 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
@@ -144,6 +144,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 
 		public bool SerializeVectoRunData { get; set; }
 
+		public List<string> MissingInputEntries { get; protected set; } = new List<string>();
 
 		/// <summary>
 		/// Only for testing purposes
@@ -161,6 +162,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			bool firstRun = true;
 			var warning1Hz = false;
 			if (!_simulate) {
+				if (MissingInputEntries.Count > 0) {
+					throw new VectoException(MissingInputEntries.Select(x => $"<{x}> is bad or missing.").Join("\n"));
+				}
 				yield break;
 			}
 			foreach (var data in RunDataFactory.NextRun()) {
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
index d5593adef4db1dba489f21977ee3943c1dc07f89..e60f0bf68732c6c1f8e77996a6cbcfe7ef217360 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
@@ -1,4 +1,5 @@
-using TUGraz.VectoCommon.InputData;
+using System.Linq;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData;
 using TUGraz.VectoCore.InputData.FileIO.XML;
@@ -101,10 +102,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			if (dataProvider is IMultistageVIFInputData multistageVifInputData &&
 				multistageVifInputData.VehicleInputData == null) {
 				var inputComplete = multistageVifInputData.MultistageJobInputData.JobInputData.InputComplete;
-				var declType = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage
+                var declType = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage
 					?.Vehicle.VehicleDeclarationType;
 				var final = declType == VehicleDeclarationType.final;
-				var exempted = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage?
+
+				if (final) {
+                    MissingInputEntries = multistageVifInputData.MultistageJobInputData.JobInputData.InvalidEntries
+						.Distinct().Where(x => !x.StartsWith("_")).ToList();
+                }
+
+                var exempted = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage?
 					.Vehicle.ExemptedVehicle == true;
 
 				if (!((final || exempted) && inputComplete)) {