diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index ee7e49b7562fa42ad733b2d94a892fb7fd0118b3..64a485276aeaf33390892d6bf18155b1ada170f4 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -142,6 +142,22 @@ namespace TUGraz.VectoCore.OutputData
 				.Average();
 		}
 
+
+		public static MeterPerSquareSecond AverageAccelerationBelowTargetSpeed(this IModalDataContainer data)
+		{
+			var accPos = data.GetValues(
+				x => new {
+					a = x.Field<MeterPerSquareSecond>((int)ModalResultField.acc),
+					dt = x.Field<Second>((int)ModalResultField.simulationInterval),
+					dv = x.Field<MeterPerSecond>((int)ModalResultField.v_targ) -
+						x.Field<MeterPerSecond>((int)ModalResultField.v_act),
+						driverStatus = x.Field<int>((int)ModalResultField.drivingBehavior)
+				}).Where(x => x.driverStatus == 2 && x.dv > 0).ToArray();
+			var duration = accPos.Sum(x => x.dt);
+			var accSum = accPos.Sum(x => x.a * x.dt);
+			return accSum / duration;
+		}
+
 		public static MeterPerSquareSecond AccelerationsNegative(this IModalDataContainer data)
 		{
 			return data.GetValues<MeterPerSquareSecond>(ModalResultField.acc)
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index ee698c77b2fcc8aca37fc0003675e00addd8f921..65b933d762817c2184c991049a762aa47d438550 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -239,6 +239,8 @@ namespace TUGraz.VectoCore.OutputData
 		public const string AIRDRAG_CERTIFICATION_NUMBER = "AirDrag certification number";
 		public const string AIRDRAG_CERTIFICATION_METHOD = "AirDrag certification option";
 
+		public const string AVERAGE_POS_ACC = "a_avg_acc";
+
 		// ReSharper restore InconsistentNaming
 
 		internal readonly DataTable Table;
@@ -351,7 +353,8 @@ namespace TUGraz.VectoCore.OutputData
 					E_RET_LOSS, E_ANGLE_LOSS, E_AXL_LOSS, E_BRAKE, E_VEHICLE_INERTIA, E_WHEEL, E_AIR, E_ROLL, E_GRAD,
 					ACC, ACC_POS, ACC_NEG, ACC_TIMESHARE, DEC_TIMESHARE, CRUISE_TIMESHARE,
 					MAX_SPEED, MAX_ACCELERATION, MAX_DECELERATION, AVG_ENGINE_SPEED, MAX_ENGINE_SPEED, NUM_GEARSHIFTS,
-					STOP_TIMESHARE, ENGINE_FULL_LOAD_TIME_SHARE, COASTING_TIME_SHARE, BRAKING_TIME_SHARE
+					STOP_TIMESHARE, ENGINE_FULL_LOAD_TIME_SHARE, COASTING_TIME_SHARE, BRAKING_TIME_SHARE,
+					AVERAGE_POS_ACC
 				}.Select(x => new DataColumn(x, typeof(ConvertedSI))).ToArray());
 
 			Table.Columns.AddRange(
@@ -585,6 +588,7 @@ namespace TUGraz.VectoCore.OutputData
 			row[MAX_DECELERATION] = (ConvertedSI)modData.MaxDeceleration();
 			row[AVG_ENGINE_SPEED] = (ConvertedSI)modData.AvgEngineSpeed().AsRPM.SI<Scalar>();
 			row[MAX_ENGINE_SPEED] = (ConvertedSI)modData.MaxEngineSpeed().AsRPM.SI<Scalar>();
+			row[AVERAGE_POS_ACC] = (ConvertedSI)modData.AverageAccelerationBelowTargetSpeed();
 			if (accTimeShare != null && decTimeShare != null && cruiseTimeShare != null) {
 				var shareSum = accTimeShare + decTimeShare + cruiseTimeShare + stopTimeShare;
 				if (!shareSum.IsEqual(100)) {