diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 9bf4b71ea28cb644c0d0d56b44f590e6173ebf39..2be73e6a8148618c6ecd1aa26b154b709e5c8370 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -1437,7 +1437,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			var D13_realWorldFactorUsageStartSoC = vehicleOperation.RealWorldUsageFactors.StartSoCBeforeMission;
 			var D14_realWorldFactorChargeDuringMission = vehicleOperation.RealWorldUsageFactors.StationaryChargingDuringMission;
 
-			var (etaChgBatDepot, etaChgBatInMission, etaChtBatWeighted) = CalculateChargingEfficiency(cdResult, vehicleOperation, batteryData);
+			var (etaChgBatDepot, etaChgBatInMission, etaChtBatWeighted) = CalculateChargingEfficiencyOVCHEV(cdResult.MaxChargingPower, vehicleOperation, batteryData);
 
 			var D17_maxStatChargingPower = cdResult.MaxChargingPower;
 
@@ -1503,13 +1503,13 @@ namespace TUGraz.VectoCore.Models.Declaration
 			return retVal;
 		}
 
-		private static (double, double, double) CalculateChargingEfficiency(IResultEntry cdResult,
+		public static (double, double, double) CalculateChargingEfficiencyOVCHEV(Watt maxChargingPwrVeh,
 			VehicleOperationLookup.VehicleOperationData vehicleOperation, BatterySystemData batteryData)
 		{
 			var depotChargingPower =
 				VectoMath.Max(MinDepotChgPwr, batteryData.UseableStoredEnergy / DepotChargingDuration);
 			var inMissionChargingPower = VectoMath.Min(vehicleOperation.StationaryChargingMaxPwrInfrastructure,
-				cdResult.MaxChargingPower);
+				maxChargingPwrVeh);
 
 			var tmpBattery = new BatterySystem(null, batteryData);
 			var centerSoC = (tmpBattery.MinSoC + tmpBattery.MaxSoC) / 2.0;
@@ -1535,7 +1535,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 														totalChargedEnergy);
 		}
 
-		private static double CalculateChargingEfficiency(VectoRunData runData)
+		public static double CalculateChargingEfficiencyPEV(VectoRunData runData)
 		{
 			var batteryData = runData.BatteryData;
 			var tmpBattery = new BatterySystem(null, batteryData);
@@ -1627,9 +1627,9 @@ namespace TUGraz.VectoCore.Models.Declaration
 				throw new VectoException("Battery Data is required for PEV range calculation");
 			}
 
-			var D9_chargingEfficiencyBattery = CalculateChargingEfficiency(runData);
+			var D9_chargingEfficiencyBattery = CalculateChargingEfficiencyPEV(runData);
 			var D15_useableBatteryCapacityForR_CDA = batteryData.UseableStoredEnergy;
-			var D13_electricEnergyConsumption = data.CorrectedModalData.ElectricEnergyConsumption;
+			var D13_electricEnergyConsumption = data.CorrectedModalData.ElectricEnergyConsumption_SoC;
 
 			var D16_actualChargeDepletingRange = D15_useableBatteryCapacityForR_CDA / D13_electricEnergyConsumption * data.Distance;
 			var D17_equivalentAllElectricRange = D16_actualChargeDepletingRange;
diff --git a/VectoCore/VectoCore/OutputData/BatteryElectricPostprocessingCorrection.cs b/VectoCore/VectoCore/OutputData/BatteryElectricPostprocessingCorrection.cs
index ff408d8e3b1aacf40c23dac98377ceab056b316b..5fac213fb3cc63a2d84a62c26eeb114c21e5b9c3 100644
--- a/VectoCore/VectoCore/OutputData/BatteryElectricPostprocessingCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/BatteryElectricPostprocessingCorrection.cs
@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 
 namespace TUGraz.VectoCore.OutputData
@@ -11,9 +12,11 @@ namespace TUGraz.VectoCore.OutputData
 
 		public ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
 		{
-			
+			var chgEfficiency = DeclarationData.CalculateChargingEfficiencyPEV(runData);
+
 			return new PEVCorrectedModalData(modData) {
-				ElectricEnergyConsumption = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int),
+				ElectricEnergyConsumption_SoC = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int),
+				ElectricEnergyConsumption_Final = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) / chgEfficiency,
 			};
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index e4ad65195294c848daab8668856b31327bffcbc5..f60b2be6bbe2315b4f1f645a73b3e9724a34cd8f 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -181,8 +181,12 @@ namespace TUGraz.VectoCore.OutputData
 		Dictionary<FuelType, IFuelConsumptionCorrection> FuelCorrection { get; }
 		Kilogram CO2Total { get; }
 		Joule FuelEnergyConsumptionTotal { get; }
-		WattSecond ElectricEnergyConsumption { get; set; }
-		WattSecondPerMeter ElectricEnergyConsumptionPerMeter { get; }
+		WattSecond ElectricEnergyConsumption_SoC { get; set; }
+		WattSecondPerMeter ElectricEnergyConsumption_SoC_PerMeter { get; }
+
+		WattSecond ElectricEnergyConsumption_Final { get; set; }
+		WattSecondPerMeter ElectricEnergyConsumption_Final_PerMeter { get; }
+
 	}
 
 	public interface IFuelConsumptionCorrection
diff --git a/VectoCore/VectoCore/OutputData/ModalDataPostprocessingCorrection.cs b/VectoCore/VectoCore/OutputData/ModalDataPostprocessingCorrection.cs
index 55409fd07eb5ae0b5e93505ee429a416591278c9..156de15148224afcd04f433420083916f296e756 100644
--- a/VectoCore/VectoCore/OutputData/ModalDataPostprocessingCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/ModalDataPostprocessingCorrection.cs
@@ -347,11 +347,18 @@ namespace TUGraz.VectoCore.OutputData
 		{
 			_modData = modData;
 		}
-		public abstract WattSecond ElectricEnergyConsumption { get; set; }
+		public abstract WattSecond ElectricEnergyConsumption_SoC { get; set; }
 
-		public WattSecondPerMeter ElectricEnergyConsumptionPerMeter => ElectricEnergyConsumption == null || _modData.Distance.IsEqual(0)
+		public abstract WattSecond ElectricEnergyConsumption_Final { get; set; }
+
+		public WattSecondPerMeter ElectricEnergyConsumption_SoC_PerMeter => ElectricEnergyConsumption_SoC == null || _modData.Distance.IsEqual(0)
 			? null
-			: ElectricEnergyConsumption / _modData.Distance;
+			: ElectricEnergyConsumption_SoC / _modData.Distance;
+
+		public WattSecondPerMeter ElectricEnergyConsumption_Final_PerMeter =>
+			ElectricEnergyConsumption_Final == null || _modData.Distance.IsEqual(0)
+				? null
+				: ElectricEnergyConsumption_Final / _modData.Distance;
 	}
 
 	public class CorrectedModalData : AbstractCorrectedModalData, ICorrectedModalData
@@ -417,9 +424,8 @@ namespace TUGraz.VectoCore.OutputData
 			}
 		}
 
-		public override WattSecond ElectricEnergyConsumption { get; set; }
-
-
+		public override WattSecond ElectricEnergyConsumption_SoC { get; set; }
+		public override WattSecond ElectricEnergyConsumption_Final { get; set; }
 
 		public Second ICEOffTimeStandstill { get; set; }
 		public WattSecond EnergyAuxICEOffStandstill { get; set; }
@@ -582,7 +588,8 @@ namespace TUGraz.VectoCore.OutputData
 		public Dictionary<FuelType, IFuelConsumptionCorrection> FuelCorrection => new Dictionary<FuelType, IFuelConsumptionCorrection>();
 		public Kilogram CO2Total => 0.SI<Kilogram>();
 		public Joule FuelEnergyConsumptionTotal => 0.SI<Joule>();
-		public override WattSecond ElectricEnergyConsumption { get; set; } = 0.SI<WattSecond>();
+		public override WattSecond ElectricEnergyConsumption_SoC { get; set; } = 0.SI<WattSecond>();
+		public override WattSecond ElectricEnergyConsumption_Final { get; set; } = 0.SI<WattSecond>();
 
 		#endregion
 	}
diff --git a/VectoCore/VectoCore/OutputData/ParallelHybridModalDataPostprocessingCorrection.cs b/VectoCore/VectoCore/OutputData/ParallelHybridModalDataPostprocessingCorrection.cs
index 30e1def1114f5a9a22b6b1f811c5bc04550814a4..c8a16414dcdc34b26e7b9f773eaffc37f09413cd 100644
--- a/VectoCore/VectoCore/OutputData/ParallelHybridModalDataPostprocessingCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/ParallelHybridModalDataPostprocessingCorrection.cs
@@ -1,4 +1,5 @@
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 
 namespace TUGraz.VectoCore.OutputData
@@ -10,10 +11,18 @@ namespace TUGraz.VectoCore.OutputData
 		public override ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
 		{
 			var r = base.ApplyCorrection(modData, runData);
+			
+			var vehicleOperation = DeclarationData.VehicleOperation.LookupVehicleOperation(runData.VehicleData.VehicleClass, runData.Mission.MissionType);
+			var etaChtBatWeighted = 1.0;
 
+			if (runData.OVCMode == VectoRunData.OvcHevMode.ChargeDepleting) {
+				(_, _, etaChtBatWeighted) =
+					DeclarationData.CalculateChargingEfficiencyOVCHEV(runData.MaxChargingPower, vehicleOperation,
+						runData.BatteryData);
+			}
 
-
-			r.ElectricEnergyConsumption = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int);
+			r.ElectricEnergyConsumption_SoC = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int);
+			r.ElectricEnergyConsumption_Final = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) / etaChtBatWeighted;
 			return r;
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/SerialHybridModalDataPostprocessingCorrection.cs b/VectoCore/VectoCore/OutputData/SerialHybridModalDataPostprocessingCorrection.cs
index 535ad47a1095680a7db5fe6d469f4d676f9c7d57..6428ed5582af1e23427a70def06b8bd3055dad22 100644
--- a/VectoCore/VectoCore/OutputData/SerialHybridModalDataPostprocessingCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/SerialHybridModalDataPostprocessingCorrection.cs
@@ -2,6 +2,7 @@
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 
 namespace TUGraz.VectoCore.OutputData
@@ -14,9 +15,14 @@ namespace TUGraz.VectoCore.OutputData
 		{
 			var r = base.ApplyCorrection(modData, runData);
 
+			var chgEfficiency = 1.0;
 
-
-			r.ElectricEnergyConsumption = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int);
+			if (runData.OVCMode == VectoRunData.OvcHevMode.ChargeDepleting) {
+				chgEfficiency = DeclarationData.CalculateChargingEfficiencyPEV(runData);
+			}
+			r.ElectricEnergyConsumption_SoC = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int);
+			r.ElectricEnergyConsumption_Final = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) / chgEfficiency;
+			
 			return r;
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/SumDataFields.cs b/VectoCore/VectoCore/OutputData/SumDataFields.cs
index 5e9c1809d1ec45bebcb77ee44314e3dde374963e..376ba885d807559d41ec774a9a2a00fb93cfb396 100644
--- a/VectoCore/VectoCore/OutputData/SumDataFields.cs
+++ b/VectoCore/VectoCore/OutputData/SumDataFields.cs
@@ -125,6 +125,8 @@ namespace TUGraz.VectoCore.OutputData
 		public const string FCFINAL_LiterPer100M3KM = "FC-Final{0} [l/100m³km]";
 		public const string FCFINAL_LiterPer100PassengerKM = "FC-Final{0} [l/100Pkm]";
 
+		public const string EC_el_SOC = "EC_el_SoC [kWh";
+
 		public const string EC_el_final = "EC_el_final [kWh]";
 		public const string EC_el_final_KM = "EC_el_final [kWh/km]";
 		public const string EC_el_final_TKM = "EC_el_final [kWh/tkm]";
@@ -645,25 +647,26 @@ namespace TUGraz.VectoCore.OutputData
 					null : (m.CorrectedModalData.KilogramCO2PerMeter / r.VehicleData.PassengerCount.Value).ConvertToGrammPerKiloMeter(), ModalResultField.dist) },
 
 			// electric consumption
+			{ EC_el_SOC, SumFunc( (r, m) => 
+				m.CorrectedModalData.ElectricEnergyConsumption_SoC?.ConvertToKiloWattHour()) },
 			{ EC_el_final, SumFunc( (r , m ) 
-				=> (m.CorrectedModalData.ElectricEnergyConsumption?.ConvertToKiloWattHour()))},
+				=> (m.CorrectedModalData.ElectricEnergyConsumption_Final?.ConvertToKiloWattHour()))},
 			{ EC_el_final_KM, SumFunc((r, m) 
-				=> (m.CorrectedModalData.ElectricEnergyConsumptionPerMeter)?.ConvertToKiloWattHourPerKiloMeter())},
+				=> (m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter)?.ConvertToKiloWattHourPerKiloMeter())},
 			{ EC_el_final_TKM, SumFunc((r, m) 
 				=> r.VehicleData?.Loading == null || 
 					r.VehicleData.Loading.IsEqual(0) || 
-					m.CorrectedModalData.ElectricEnergyConsumption == null ||
-					m.CorrectedModalData.ElectricEnergyConsumptionPerMeter == null
-					? null : (m.CorrectedModalData.ElectricEnergyConsumptionPerMeter / r.VehicleData.Loading).ConvertToKiloWattHourPerTonKiloMeter())},
+					m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter == null
+					? null : (m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter / r.VehicleData.Loading).ConvertToKiloWattHourPerTonKiloMeter())},
 			{ EC_el_final_M3KM, SumFunc((r, m) 
 				=> r.VehicleData.CargoVolume == null ||
 					r.VehicleData.CargoVolume.IsEqual(0)  ||
-					m.CorrectedModalData.ElectricEnergyConsumption == null ||
-					m.CorrectedModalData.ElectricEnergyConsumptionPerMeter == null
-					? null : (m.CorrectedModalData.ElectricEnergyConsumptionPerMeter / r.VehicleData.CargoVolume).ConvertToKiloWattHourPerCubicMeterKiloMeter())},
+					m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter == null
+					? null : (m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter / r.VehicleData.CargoVolume).ConvertToKiloWattHourPerCubicMeterKiloMeter())},
 			{ ElectricEnergyConsumption_PKM, SumFunc((r, m)
-				=> r.VehicleData?.PassengerCount == null || m.CorrectedModalData.ElectricEnergyConsumption == null || m.CorrectedModalData.ElectricEnergyConsumptionPerMeter == null ?
-					null : (m.CorrectedModalData.ElectricEnergyConsumptionPerMeter / r.VehicleData.PassengerCount.Value).ConvertToKiloWattHourPerPassengerKiloMeter())},
+				=> r.VehicleData?.PassengerCount == null || 
+					m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter == null 
+					? null : (m.CorrectedModalData.ElectricEnergyConsumption_Final_PerMeter / r.VehicleData.PassengerCount.Value).ConvertToKiloWattHourPerPassengerKiloMeter())},
 			//			{, SumFunc((r, m) =>)},
 
 		};
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index eeacb42e5ee7d6fa0d617b0f48183a07756510eb..a1b81d704e32d4bc319a36df402bc3c12dc068d5 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -352,6 +352,7 @@ namespace TUGraz.VectoCore.OutputData
 		};
 
 		public static readonly Tuple<string, Type>[] ElectricEnergyConsumption = {
+			Tuple.Create(SumDataFields.EC_el_SOC, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.EC_el_final, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.EC_el_final_KM, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.EC_el_final_TKM, typeof(ConvertedSI)),
@@ -663,6 +664,7 @@ namespace TUGraz.VectoCore.OutputData
 			});
 
 			cols.AddRange(new [] {
+				SumDataFields.EC_el_SOC,
 				SumDataFields.EC_el_final,
 				SumDataFields.EC_el_final_KM,
 				SumDataFields.EC_el_final_TKM,
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index 25ca624844800164a39fbc558b8dbe0ef0389288..4efce2efc9f0e0345c56acce6957f6229c0896c8 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -220,7 +220,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 				CorrectedFinalFuelConsumption = data.CorrectedModalData.FuelCorrection;
 				CO2Total = data.CorrectedModalData.CO2Total;
 				EnergyConsumptionTotal = data.CorrectedModalData.FuelEnergyConsumptionTotal;
-				ElectricEnergyConsumption = data.CorrectedModalData.ElectricEnergyConsumption;
+				ElectricEnergyConsumption = data.CorrectedModalData.ElectricEnergyConsumption_SoC;
 
 				if (runData.JobType.IsOneOf(VectoSimulationJobType.BatteryElectricVehicle,
 						VectoSimulationJobType.IEPC_E)) {
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs
index 6c45472c5aa7e865b71d5a22f3dd0d4e948b19a3..966395b6b3641a24c8f072b4d8bc4d65f1f9a41b 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs
@@ -376,6 +376,7 @@ public class LorrySimulation
 			SumDataFields.CO2_M3KM,
 		};
 		var EC_el = new List<string> {
+			SumDataFields.EC_el_SOC,
 			SumDataFields.EC_el_final,
 			SumDataFields.EC_el_final_KM,
 			SumDataFields.EC_el_final_TKM,
@@ -922,7 +923,7 @@ public class LorrySimulation
 			writeReports ? null : new NullDeclarationReport()); //, writeReports ? null : new NullDeclarationReport());
 		DisableIterativeRuns(runsFactory);
 		runsFactory.WriteModalResults = true;
-		var sumWriter = new MockSumWriter();
+		var sumWriter = new SummaryDataContainer(fileWriter); //new MockSumWriter();
 
 		var jobContainer = new JobContainer(sumWriter);
 		runsFactory.SumData = sumWriter;
diff --git a/VectoCore/VectoCoreTest/Reports/TestXMLResultsWriting.cs b/VectoCore/VectoCoreTest/Reports/TestXMLResultsWriting.cs
index 715ef63d83fd88c9a1c82189b45e89c040c96bdf..25723628bbd5543c136542285a80ed54a4a05a0f 100644
--- a/VectoCore/VectoCoreTest/Reports/TestXMLResultsWriting.cs
+++ b/VectoCore/VectoCoreTest/Reports/TestXMLResultsWriting.cs
@@ -620,7 +620,7 @@ public class TestXMLResultsWriting
 		mc.Setup(x => x.FuelEnergyConsumptionTotal).Returns(1e9.SI<Joule>());
 
 		var elOvcFactor = ovcMode == VectoRunData.OvcHevMode.ChargeSustaining ? 0 : 1.0;
-		mc.Setup(x => x.ElectricEnergyConsumption).Returns(200.SI(Unit.SI.Mega.Joule).Cast<WattSecond>() * elOvcFactor);
+		mc.Setup(x => x.ElectricEnergyConsumption_SoC).Returns(200.SI(Unit.SI.Mega.Joule).Cast<WattSecond>() * elOvcFactor);
 
 		return modData.Object;
 	}