diff --git a/basice2e/e2eReport.py b/basice2e/e2eReport.py
index 8bfc88848dc04995a5f8c27d26b6cb2dd4542c8a..5d19a6264e8fc0f4df8e2ff67f726e7fe923b11a 100644
--- a/basice2e/e2eReport.py
+++ b/basice2e/e2eReport.py
@@ -6,6 +6,7 @@ import glob
 import os
 import logging as log
 import datetime
+import statistics
 
 resultsDir = "./results/clients"
 
@@ -76,7 +77,8 @@ def main():
                         # Capture message timestamp
                         received_timestamp_str = re.findall('INFO (.{19}\.{0,1}\d{0,6})', line)[0]
                         try:
-                            received_timestamp = datetime.datetime.strptime(received_timestamp_str, '%Y/%m/%d %H:%M:%S.%f')
+                            received_timestamp = datetime.datetime.strptime(received_timestamp_str,
+                                                                            '%Y/%m/%d %H:%M:%S.%f')
                         except ValueError:
                             received_timestamp = datetime.datetime.strptime(received_timestamp_str, '%Y/%m/%d %H:%M:%S')
                         log.debug("Located received timestamp: {}".format(received_timestamp))
@@ -91,11 +93,13 @@ def main():
 
     # Print results
     num_successful = 0
-    total_latency = datetime.timedelta()
+    total_latency = datetime.timedelta()  # Keep track of the total message latencies to calculate a mean
+    latencies = []  # Keep track of each message's latency in order to calculate a median
     for msgDigest, senderDict in messages_sent.items():
         if msgDigest in messages_received:
             num_successful += 1
             message_latency = messages_received[msgDigest]["received"] - messages_sent[msgDigest]["sent"]
+            latencies.append(message_latency)
             total_latency += message_latency
             log.info("Message {} sent by {} on round {} was received after {}".format(msgDigest,
                                                                                       senderDict["sender"],
@@ -111,9 +115,10 @@ def main():
         else:
             log.warning("Round {} was NOT confirmed successful, messages may have been dropped".format(round_id))
 
-    log.info("{}/{} messages received successfully after an average of {}!".format(num_successful,
-                                                                                   len(messages_sent),
-                                                                                   total_latency / num_successful))
+    log.info("{}/{} messages received successfully! Average: {}, Median: {}".format(num_successful,
+                                                                                    len(messages_sent),
+                                                                                    total_latency / num_successful,
+                                                                                    statistics.median(latencies)))
 
 
 if __name__ == "__main__":