diff --git a/parse_test_results.py b/parse_test_results.py
index 409f36333f65807587f6e611c13288961f6fadd1..30c1393e6cd4000506447599f5360e1f65f54148 100644
--- a/parse_test_results.py
+++ b/parse_test_results.py
@@ -19,16 +19,15 @@ class TestOutputParser:
     """
     def __init__(self, input_file, output_file):
         self.test_entries = []
-        self.load_file(input_file)
         self.api = ""
         self.output_file = output_file
         self.robot_file_contents = ""
+        self.load_file(input_file)
 
     def load_file(self, fname):
         """
         Load xml file
         """
-
         with open(fname, "r", encoding="utf8") as robot_file:
             self.robot_file_contents = robot_file.read()
 
@@ -40,6 +39,7 @@ class TestOutputParser:
         """
         Run parser, extracting all info to create the test entries
         """
+
         soup = BeautifulSoup(self.robot_file_contents, "lxml")
 
         # Suite information
@@ -60,6 +60,11 @@ class TestOutputParser:
         excel_writer = ExcelWriter(self.output_file)
         for entry in self.test_entries:
             excel_writer.write_test_entry(entry)
+        
+        # Write chart
+        excel_writer.write_pie_chart()
+
+        # And finally, save the work book
         excel_writer.save()
 
     def create_test_entry(self, xml_obj):
diff --git a/write_excel.py b/write_excel.py
index aea5429ba9f0177df8c8fbeb46418fb838b46999..be7ca930486da407b0610d389bfb7df9540a1195 100644
--- a/write_excel.py
+++ b/write_excel.py
@@ -6,6 +6,7 @@ from openpyxl import Workbook, load_workbook
 from openpyxl.utils import get_column_letter
 from openpyxl.styles import Font
 from openpyxl.styles.fills import PatternFill
+from openpyxl.chart import PieChart, Reference
 
 class ExcelWriter:
     """
@@ -15,9 +16,9 @@ class ExcelWriter:
     PASS_COL = "00FF00"
     FAIL_COL = "FF0000"
     def __init__(self, output_file):
+        self.output_file = output_file
         self.work_book = self.get_workbook()
         self.work_sheet = self.work_book.active
-        self.output_file = output_file
 
     def get_entry_with_id(self, test_id):
         """
@@ -42,13 +43,13 @@ class ExcelWriter:
         for cell in self.work_sheet["A"]:
             if cell.value is None:
                 return cell.row
-        return 1
+        return cell.row + 1
 
     def write_test_entry(self, test_entry):
         """
         Write a test entry to the work_sheet
         """
-        existing_entry_row = self.get_entry_with_id(test_entry.id)
+        existing_entry_row = self.get_entry_with_id(test_entry.test_id)
         last_row = self.get_last_row()
         # Use the above two values to pick a row
         entry_row = existing_entry_row if existing_entry_row != -1 else last_row
@@ -78,6 +79,54 @@ class ExcelWriter:
             work_book = Workbook()
             init_workbook(work_book)
             return work_book
+    
+    def get_chart_work_sheet(self):
+        """
+        Returns work sheet where charts will be drawn to.
+        Creates if does not exist
+        """
+        try:
+            chart_work_sheet = self.work_book["charts"]
+            return chart_work_sheet
+        except KeyError:
+            return self.work_book.create_sheet("charts")
+    
+    def write_pie_chart_data(self):
+        """
+        Writes pie chart data (the charts sheet) required to construct the pie chart later
+        """
+        chart_work_sheet = self.get_chart_work_sheet()
+
+        # Get data from main work sheet
+        last_row = self.get_last_row()
+        data = Reference(self.work_sheet, min_col=3, max_col=3, min_row=2, max_row=last_row)
+
+        # Construct pie chart
+        pie = PieChart()
+        pie.add_data(data, titles_from_data=True)
+        #pie.set_categories(labels)
+        pie.title = "PASS/FAIL Distribution"
+
+        chart_work_sheet.add_chart(pie, "A1")
+    
+    def write_pie_chart(self):
+        """
+        Writes a pie chart showing PASS/FAIL stats.
+        Writes the chart to a separate work sheet.
+        """
+        chart_work_sheet = self.get_chart_work_sheet()
+
+        # Get data from main work sheet
+        last_row = self.get_last_row()
+        data = Reference(self.work_sheet, min_col=3, max_col=3, min_row=2, max_row=last_row)
+
+        # Construct pie chart
+        pie = PieChart()
+        pie.add_data(data, titles_from_data=True)
+        #pie.set_categories(labels)
+        pie.title = "PASS/FAIL Distribution"
+
+        chart_work_sheet.add_chart(pie, "A1")
 
     def save(self):
         """