diff --git a/src/main/java/kieker/analysis/dev/OperationsStatisticsDecoratorStage.java b/src/main/java/kieker/analysis/dev/OperationsStatisticsDecoratorStage.java
new file mode 100644
index 0000000000000000000000000000000000000000..8c69048b6582e14bd330335a9ad82976efd634d4
--- /dev/null
+++ b/src/main/java/kieker/analysis/dev/OperationsStatisticsDecoratorStage.java
@@ -0,0 +1,40 @@
+package kieker.analysis.dev;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import kieker.analysis.domain.systemdependency.Component;
+import kieker.analysis.domain.systemdependency.Container;
+import kieker.analysis.domain.systemdependency.Operation;
+import kieker.analysis.domain.systemdependency.SoftwareSystem;
+import kieker.analysis.traceanalysisutil.Statistics;
+import kieker.analysis.traceanalysisutil.StatisticsUtility;
+
+import teetime.stage.basic.AbstractTransformation;
+
+public class OperationsStatisticsDecoratorStage extends AbstractTransformation<SoftwareSystem, SoftwareSystem> {
+
+	@Override
+	protected void execute(final SoftwareSystem softwareSystem) {
+
+		for (Container container : softwareSystem.getContainers()) {
+			for (Component component : container.getComponents()) {
+				for (Operation operation : component.getOperations()) {
+
+					List<Long> durations = operation.getOperationCalls().stream().map(c -> c.getDuration()).collect(Collectors.toList());
+
+					final Statistics statistics = StatisticsUtility.calculateStatistics(durations);
+
+					operation.setTotalDuration(statistics.getTotalDuration());
+					operation.setMaxDuration(statistics.getMaxDuration());
+					operation.setMinDuration(statistics.getMinDuration());
+					operation.setMeanDuration(statistics.getMeanDuration());
+					operation.setMedianDuration(statistics.getMedianDuration());
+
+				}
+			}
+		}
+
+	}
+
+}