diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IRESSInfo.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IRESSInfo.cs
index 0321fa05fe5554f7869a9bab9d5e3b9defd56561..ebeab12bd5cc04fa193a7d71451c858029f910c0 100644
--- a/VectoCore/VectoCore/Models/Simulation/DataBus/IRESSInfo.cs
+++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IRESSInfo.cs
@@ -8,6 +8,7 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus
 
 		double StateOfCharge { get; }
 
+		// only a rough estimate! do not use for reports etc.
 		WattSecond StoredEnergy { get; }
 
 		//Ampere MaxCurrent { get; }
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs
index dd4b37c7318fdb1f034dcda9f6ec4dc0fa229201..4a683a084afde389db258b050b986bd5fc67a21a 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs
@@ -28,7 +28,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba
 			}
 		}
 
-		public WattSecond UseableStoredEnergy
+		public WattSecond TotalStoredEnergy {
+			get {
+				return Batteries.Select(x => x.Item1).Distinct().OrderBy(x => x).Aggregate(0.SI<WattSecond>(),
+					(current, s) => current + Batteries.Where(x => x.Item1 == s).Min(x => x.Item2.TotalStoredEnergy));
+			}
+		}
+
+        public WattSecond UseableStoredEnergy
 		{
 			get
 			{
@@ -40,6 +47,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba
 
 	public class BatteryData
 	{
+		private WattSecond _totaltoredEnergy;
 		private WattSecond _useableStoredEnergy;
 
 		[ValidateObject]
@@ -60,23 +68,25 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba
 		public int BatteryId { get; internal set; }
 		public bool ChargeSustainingBattery { get; internal set; }
 
-		public WattSecond UseableStoredEnergy => _useableStoredEnergy ?? (_useableStoredEnergy = CalculateUsableEnergy());
+		public WattSecond TotalStoredEnergy => _totaltoredEnergy ?? (_totaltoredEnergy = CalculateBatteryEnergy(0, 1));
+
+        public WattSecond UseableStoredEnergy => _useableStoredEnergy ?? (_useableStoredEnergy = CalculateBatteryEnergy(MinSOC, MaxSOC));
 		public IElectricStorageDeclarationInputData InputData { get; internal set; }
 
-		protected WattSecond CalculateUsableEnergy()
+		protected WattSecond CalculateBatteryEnergy(double minSoc, double maxSoc)
 		{
 			var retVal = 0.SI<WattSecond>();
 			foreach (var (low, high) in SOCMap.Entries.Pairwise()) {
-				if (low.SOC.IsSmaller(MinSOC) && high.SOC.IsSmaller(MinSOC)) {
+				if (low.SOC.IsSmaller(minSoc) && high.SOC.IsSmaller(minSoc)) {
 					continue;
 				}
 
-				if (low.SOC.IsGreater(MaxSOC) && high.SOC.IsGreater(MaxSOC)) {
+				if (low.SOC.IsGreater(maxSoc) && high.SOC.IsGreater(maxSoc)) {
 					continue;
 				}
 
-				var min = VectoMath.Max(MinSOC, low.SOC);
-				var max = VectoMath.Min(MaxSOC, high.SOC);
+				var min = VectoMath.Max(minSoc, low.SOC);
+				var max = VectoMath.Min(maxSoc, high.SOC);
 				var voltage = SOCMap.Lookup((min + max) / 2.0);
 				retVal += (max - min) * Capacity * voltage;
 			}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
index f499da1116e1714df3246b7b3368d676c5b78736..aaba53c72ec7286b8b036812b98186559d26d3fc 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
@@ -228,23 +228,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		{
 			var vehicle = GetVehicle(inputData);
 			var reess = vehicle.Components.ElectricStorage;
-			//var batteries = reess.ElectricStorageElements
-			//	.Where(es => es.REESSPack.StorageType == REESSType.Battery)
-			//	.Select(es => es.REESSPack as IBatteryPackDeclarationInputData).ToArray();
-
+			
 			var batTotalCap = 0.SI<WattSecond>();
 			var batUsableCap = 0.SI<WattSecond>();
 			if (reess.ElectricStorageElements.Any(x => x.REESSPack.StorageType == REESSType.Battery)) {
 				var eletricStorageAdapter = new ElectricStorageAdapter();
 				var batData = eletricStorageAdapter.CreateBatteryData(reess, vehicle.VehicleType, vehicle.OvcHev);
-				batUsableCap = GetEnergyStoredInBatterySystem(batData);
-
-				foreach (var entry in batData.Batteries) {
-					entry.Item2.MinSOC = 0;
-					entry.Item2.MaxSOC = 1;
-				}
-
-				batTotalCap = GetEnergyStoredInBatterySystem(batData);
+				batUsableCap = batData.UseableStoredEnergy;
+				batTotalCap = batData.TotalStoredEnergy;
 			}
 
 			var capacitors = reess.ElectricStorageElements.Where(es => es.REESSPack.StorageType == REESSType.SuperCap)
@@ -253,35 +244,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			var totalStorageCapacity =
 				batTotalCap +
 				(capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<WattSecond>());
-			var totalUsableCapacity = batUsableCap +
+			var usableCapacity = batUsableCap +
 									(capacitors.Length > 0
 										? capacitors.Sum(cap => GetTotalUsableCapacityInSimulation(cap))
 										: 0.SI<WattSecond>());
 
 			return new List<XElement>() {
-				new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("kWh", 0)),
-				new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("kWh", 0))
+				new XElement(_cif + "TotalStorageCapacity", totalStorageCapacity.ValueAsUnit("kWh", 0)),
+				new XElement(_cif + "UsableStorageCapacity", usableCapacity.ValueAsUnit("kWh", 0))
 			};
 		}
 
-		private static WattSecond GetEnergyStoredInBatterySystem(BatterySystemData batData)
-		{
-			var tmpBat = new BatterySystem(null, batData);
-			// set every single battery to its max SoC - initializing the battery system does
-			// not work as individual batteries may have different SoC limits
-			foreach (var battery in tmpBat.Batteries.SelectMany(batteryString => batteryString.Value.Batteries)) {
-				battery.Initialize(battery.MaxSoC);
-			}
-			var energyFull = tmpBat.StoredEnergy;
-			// set every single battery to its min SoC - initializing the battery system does
-			// not work as individual batteries may have different SoC limits
-			foreach (var battery in tmpBat.Batteries.SelectMany(batteryString => batteryString.Value.Batteries)) {
-				battery.Initialize(battery.MinSoC);
-			}
-			var energyEmpty = tmpBat.StoredEnergy;
-			return energyFull - energyEmpty;
-		}
-
 		private WattSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap)
 		{
 			return GetStorageCapacity(cap) * 0.8;
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs
index c47495ed0f0f54db4b83a8c00e6deda20e81de7d..5fd0d34a9a2b8a19447c9bc428203ebe6f959bdc 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs
@@ -37,11 +37,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 				foreach (var entry in batData.Batteries.OrderBy(x => x.Item1)) {
 					var batteryPackInput = entry.Item2.InputData;
 					var battery = batteryPackInput.REESSPack as IBatteryPackDeclarationInputData;
-					var batUsableCap = GetEnergyStoredInBattery(entry);
+					var batUsableCap = entry.Item2.UseableStoredEnergy;
 					entry.Item2.MaxSOC = 1;
 					entry.Item2.MinSOC = 0;
-					var batTotalCap = GetEnergyStoredInBattery(entry);
-
+					var batTotalCap = entry.Item2.TotalStoredEnergy;
+					
 					result.Add(new XElement(_mrf + XMLNames.ElectricEnergyStorage_Battery,
 							new XAttribute("stringId", entry.Item1),
 							new XElement(_mrf + XMLNames.Component_Model, battery.Model),
@@ -73,16 +73,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			return result;
 		}
 
-		private static WattSecond GetEnergyStoredInBattery(Tuple<int, BatteryData> entry)
-		{
-			var tmpBattery = new Battery(null, entry.Item2);
-			tmpBattery.Initialize(tmpBattery.MaxSoC);
-			var energyFull = tmpBattery.StoredEnergy;
-			tmpBattery.Initialize(tmpBattery.MinSoC);
-			var energyEmpty = tmpBattery.StoredEnergy;
-			return energyFull - energyEmpty;
-		}
-
 		#endregion
 	}
 }