diff --git a/expetator/add_energy b/expetator/add_energy
new file mode 100644
index 0000000000000000000000000000000000000000..9a8a24c3d30f689969456d3e5cd72454a1e0d7a5
--- /dev/null
+++ b/expetator/add_energy
@@ -0,0 +1,59 @@
+#! /usr/bin/python3
+
+import sys
+import scipy.integrate as integrate
+from statistics import mean, median
+
+import expetator.bundle as bundle
+import expetator.monitoring_list as monitoring_list
+
+import matplotlib.pyplot as plt
+
+def add_energy(basename, bundle_data=None, zip_fid=None):
+    if bundle_data is None:
+        bundle_data, zip_fid = bundle.init_bundle(basename)
+
+    power = monitoring_list.read_bundle_list('power', bundle_data, zip_fid)
+    
+    energy = []
+    delta = []
+    mean_power = []
+    med_power = []
+    
+    for experiment in power:
+        expe_energy = 0
+        expe_delta = 0
+        expe_power = []
+        try:
+            for power_profile in experiment:
+                tmp_delta = max(power_profile['#timestamp']) - min(power_profile['#timestamp'])
+                expe_delta = max(expe_delta, tmp_delta)
+        
+                expe_energy += integrate.trapz(power_profile['power'], x=power_profile['#timestamp'])
+                
+                expe_power.extend(power_profile['power'])
+        except:
+            pass
+        if expe_power == []:
+            expe_energy = -1
+            expe_delta = -1
+            expe_power = [-1]
+
+        energy.append(expe_energy)
+        delta.append(expe_delta)
+        mean_power.append(mean(expe_power))
+        med_power.append(median(expe_power))
+        
+    bundle_data['energy'] = energy
+    bundle_data['time'] = delta
+    bundle_data['mean_power'] = mean_power
+    bundle_data['median_power'] = med_power
+
+    return(bundle_data)
+
+
+if __name__ == "__main__":
+    basename = sys.argv[1]
+    bundle_data = add_energy(basename)
+
+    bundle_data.to_csv(basename+".csv", sep=' ', index=False)