diff --git a/atdb/atdb/static/taskdatabase/ldvlogo_small.png b/atdb/atdb/static/taskdatabase/ldvlogo_small.png
new file mode 100644
index 0000000000000000000000000000000000000000..14989c31e2a47e13fb4d083ad33fd105c35d3c9f
Binary files /dev/null and b/atdb/atdb/static/taskdatabase/ldvlogo_small.png differ
diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index c5315f5fd0472b40f31c377c029d24b5b6822d74..0444c4f8b6e625a2e135840e50ba3e67e5745d56 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -49,6 +49,18 @@ def convert_quality_to_shortlist_for_template(task):
 
     return list
 
+def convert_summary_to_list_for_template(task):
+    list = []
+
+    try:
+        summary = task.quality_json['summary']
+
+
+    except Exception as err:
+        pass
+
+    return list
+
 
 class Task(models.Model):
 
@@ -118,6 +130,29 @@ class Task(models.Model):
             except:
                 return False
 
+    @property
+    def has_plots(self):
+
+        try:
+            quality = self.outputs['quality']
+            plots = quality['plots']
+            if len(plots) > 0:
+                return True
+            else:
+                return False
+
+        except:
+            return False
+
+    @property
+    def has_summary(self):
+        try:
+            summary = self.outputs['quality']['summary']
+            return True
+        except:
+            return False
+
+
     @property
     def quality_json(self):
 
@@ -169,6 +204,14 @@ class Task(models.Model):
         except:
             return None
 
+    @property
+    def summary_as_list(self):
+        try:
+            q = convert_summary_to_list_for_template(self)
+            return q
+        except:
+            return None
+
 class LogEntry(models.Model):
     cpu_cycles = models.IntegerField(null=True,blank=True)
     wall_clock_time = models.IntegerField(null=True,blank=True)
diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py
index 7a1a6e8c1e11c993f32c28812678181c3c0be134..db7a4dfb0969cfbbcd9a3b6d3f5e99fba677362a 100644
--- a/atdb/taskdatabase/services/algorithms.py
+++ b/atdb/taskdatabase/services/algorithms.py
@@ -3,7 +3,7 @@
     Author: Nico Vermaas - Astron
     Description:  Business logic for ATDB. These functions are called from the views (views.py).
 """
-
+import json
 from datetime import datetime, timedelta
 from django.db.models import Q, Sum
 import logging
@@ -680,7 +680,6 @@ def unique_values_for_aggregation_key(queryset, aggregation_key):
 
 def construct_inspectionplots(task):
     results = ""
-    quality_structure = task.quality_json
 
     # translate the path to a url
     try:
@@ -703,3 +702,60 @@ def construct_inspectionplots(task):
         results += '<tr><td><a href="' + url + '" target="_blank">'+ basename + '</a></td></tr>'
 
     return results
+
+
+def construct_summary(task):
+    results = ""
+
+    # find the plots in the quality json structure
+    summary = task.quality_json["summary"]
+    #loaded = json.loads(summary)
+    for key in summary:
+        record = summary[key]
+        line = ''
+
+        line += '<tr style="background-color:#7EB1C4"><td colspan="3"><b>' + key + '</b></td></tr>'
+
+        line += '<th>input size</th>' \
+                '<th>output size</th>' \
+                '<th>size_ratio</th>'
+        line += '<tr>'
+        line += '<td>' + record['input_size_str'] + '</td>'
+        line += '<td>' + str(record['output_size']) + ' (' + record['output_size_str'] + ')</td>'
+        line += '<td>' + str(round(record['size_ratio'],3)) + '</td>'
+        line += '</tr>'
+
+        input_content = record['input_content']
+        line += '<th>Input Content</th>'
+        line += '<tr><td colspan="3">'
+        for filename in input_content:
+            line += filename + '\n'
+        line += '</td></tr>'
+
+        output_content = record['output_content']
+        line += '<th>Output Content</th>'
+        line += '<tr><td colspan="3">'
+        for filename in output_content:
+            line += filename + '\n'
+        line += '</td></tr>'
+
+        to_add = record['to_add']
+        if to_add:
+            line += '<th>to_add</th>'
+            line += '<tr><td colspan="3">'
+            for filename in to_add:
+                line += filename + '\n'
+            line += '</td></tr>'
+
+        to_delete = record['to_delete']
+        if to_delete:
+            line += '<th>to_delete</th>'
+            line += '<tr><td colspan="3">'
+            for filename in to_delete:
+                line += filename + '\n'
+            line += '</td></tr>'
+
+
+        results += line
+
+    return results
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index dd2c61a9adaef227223016e34154b5f6562579f0..9e997f5a369e9c59dc50c7ab4d7dcea21a0d0804 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -34,7 +34,7 @@
         {% include 'taskdatabase/pagination.html' %}
        </div>
     </div>
-    <p class="footer"> Version 2 December 2022 - 13:00
+    <p class="footer"> Version 8 December 2022 - 7:00
 
 </div>
 
diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/summary.html b/atdb/taskdatabase/templates/taskdatabase/validation/summary.html
new file mode 100644
index 0000000000000000000000000000000000000000..83f69f62930e1db3d010344f0605067d35c7d741
--- /dev/null
+++ b/atdb/taskdatabase/templates/taskdatabase/validation/summary.html
@@ -0,0 +1,21 @@
+{% load static %}
+{% block myBlock %}
+<div class="container-fluid details-container">
+
+
+  <div class="card">
+       <div class="card-body">
+           <h4><img src="{% static 'taskdatabase/ldvlogo_small.png' %}" height="30" alt="summary">
+               Summary File (sas_id {{ task.sas_id }}) </h4>
+           <table class="table table-striped">
+             {{ my_summary | safe }}
+           </table>
+
+       </div>
+  </div>
+</div>
+{% endblock %}
+
+
+{% include "taskdatabase/modal/modal_script.html" %}
+{% include "taskdatabase/modal/modal.html" %}
\ No newline at end of file
diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html
index 4392498eff9731a85653b70499e5342945946c87..196bbd6f54ac5a3e068466757f375c4f380083cc 100644
--- a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html
+++ b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html
@@ -14,19 +14,36 @@
                     {% for value in task.quality_as_list %}
                         <td>{{value}}</td>
                      {% endfor %}
-                    <td>
 
-                      <a class="open-modal btn btn-primary btn-sm"
+                    {% if task.has_plots %}
+                    <td>
+                        <a class="open-modal btn btn-primary btn-sm"
                          href="{% url 'inspection-plots' task.id my_tasks.number %}"
                          data-popup-url="{% url 'inspection-plots' task.id my_tasks.number %}">
                           <img src="{% static 'taskdatabase/surfsara.jpg' %}" height="20" alt="inspection plots">
-                      </a>&nbsp;
+                        </a>&nbsp;
+                    </td>
+                    {% else %}
+                        <td>-</td>
+                    {% endif %}
+
+                    {% if task.has_summary %}
+                    <td>
+                        <a class="open-modal btn btn-primary btn-sm"
+                         href="{% url 'summary' task.id my_tasks.number %}"
+                         data-popup-url="{% url 'summary' task.id my_tasks.number %}">
+                          <img src="{% static 'taskdatabase/ldvlogo_small.png' %}" height="20" alt="summary"> SUM
+                        </a>&nbsp;
                     </td>
+                    {% else %}
+                        <td>-</td>
+                    {% endif %}
 
                 {% else %}
-                        <td>-</td><td>-</td><td>-</td><td>-</td>
+                        <td>-</td><td>-</td><td>-</td><td>-</td><td>-</td>
                 {% endif %}
 
+
                 <td>
                     {% if user.is_authenticated %}
                         {% if task.get_quality_remarks_sasid %}
diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html
index 63b90750f0d092801dc7f98f8a4ea3d4cf56f828..7eba892199d051f15e51caa196417972e2f589aa 100644
--- a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html
+++ b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html
@@ -18,6 +18,7 @@
     <th>Sensitivity</th>
     <th>Conditions</th>
     <th>Plots</th>
+    <th>Summary</th>
     <th>Annotate</th>
     <th>Quality</th>
     <th>Validate (choose a Q)</th>
diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py
index b486b50fabd1876755a20dfafad23a30b3d42e9e..09dba0c2ee01e58fd829fd24912c674ab72cd49e 100644
--- a/atdb/taskdatabase/urls.py
+++ b/atdb/taskdatabase/urls.py
@@ -29,6 +29,7 @@ urlpatterns = [
     path('annotate_quality_sasid/<int:id>', views.AnnotateQualitySasId, name='annotate-quality-sasid'),
     path('annotate_quality_sasid/<int:id>/<page>', views.AnnotateQualitySasId, name='annotate-quality-sasid'),
     path('show_inspectionplots/<int:id>/<page>', views.ShowInspectionPlots, name='inspection-plots'),
+    path('show_summary/<int:id>/<page>', views.ShowSummary, name='summary'),
 
     path('show-inputs/<int:id>/', views.ShowInputs, name='show-inputs'),
     path('show-outputs/<int:id>/', views.ShowOutputs, name='show-outputs'),
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index 389fbf687a85218c013cd6656e123904ebb0723a..908370b93153580473e76690094e0c1816478e99 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -604,6 +604,15 @@ def ShowInspectionPlots(request, id=0, page=0):
 
     return render(request, "taskdatabase/validation/inspection_plots.html", {'task': task, 'my_plots': plots_html})
 
+def ShowSummary(request, id=0, page=0):
+    # a GET means that the form should be presented to be filled in
+    task = Task.objects.get(id=id)
+
+    # convert the path to a url
+    summary_html = algorithms.construct_summary(task)
+
+    return render(request, "taskdatabase/validation/summary.html", {'task': task, 'my_summary': summary_html})
+
 
 def ShowInputs(request, id):
     task = Task.objects.get(id=id)