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/atdb/static/taskdatabase/style.css b/atdb/atdb/static/taskdatabase/style.css
index 86e9ac908dc232210c22807bcabfd36f7bd2efe7..4cd9c346b6d3b2691e6860bd785f54a0e130ef09 100644
--- a/atdb/atdb/static/taskdatabase/style.css
+++ b/atdb/atdb/static/taskdatabase/style.css
@@ -113,11 +113,12 @@ p.title {
 }
 
 .modal-dialog .modal-lg {
-    max-width: 75% !important;
+    max-width: 80% !important;
 }
 
 .modal-content {
     overflow: scroll !important;
+    width:120%
 }
 
 .form-flex {
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..406bb17aa30c31bd2ee3ff12ba4164023fcb6fe1 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,92 @@ 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"]
+
+    total_size_input = 0
+    total_size_output = 0
+
+    for key in summary:
+        record = summary[key]
+
+        total_size_input += record['input_size']
+        total_size_output+= record['output_size']
+
+        line = ''
+        line += '<tr style="background-color:#7EB1C4"><td colspan="3"><b>' + key + '</b></td></tr>'
+
+        line += '<th></th><th>Name</th><th>Size</th>'
+        line += '<tr><td><b>Input</b></td>'
+        line += '<td>' + record['input_name'] + '</td>'
+        line += '<td>' + str(record['input_size']) + ' (' + record['input_size_str'] + ')</td>'
+        line += '</tr>'
+        line += '<tr><td><b>Output</b></td>'
+        line += '<td>' + record['output_name'] + '</td>'
+        line += '<td>' + str(record['output_size']) + ' (' + record['output_size_str'] + ')</td>'
+        line += '</tr>'
+        line += '<tr><td><b>Ratio</b></td>'
+        line += '<td>' + str(round(record['size_ratio'],3)) + '</td>'
+        line += '</tr>'
+
+        try:
+            input_content = record['input_content']
+            if input_content:
+                line += '<th>Input Content</th>'
+                line += '<tr><td colspan="3">'
+                for filename in input_content:
+                    line += filename + '\n'
+                line += '</td></tr>'
+        except:
+            pass
+
+        try:
+            output_content = record['output_content']
+            if output_content:
+                line += '<th>Output Content</th>'
+                line += '<tr><td colspan="3">'
+                for filename in output_content:
+                    line += filename + '\n'
+                line += '</td></tr>'
+        except:
+            pass
+
+        try:
+            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>'
+        except:
+            pass
+
+        try:
+            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>'
+        except:
+            pass
+
+        results += line
+
+    try:
+        results += '<th>Totals</th>'
+        results += '<tr><td colspan="1"><b>Input size</b></td><td>' + str(total_size_input) + '</td></tr>'
+        results += '<tr><td colspan="1"><b>Output size</b><td>' + str(total_size_output) + '</td></tr>'
+        results += '<tr><td colspan="1"><b>Ratio</b></td><td>' + str(total_size_output/total_size_output) + '</td></tr>'
+
+    except:
+        pass
+
+    return results
diff --git a/atdb/taskdatabase/static/taskdatabase/style.css b/atdb/taskdatabase/static/taskdatabase/style.css
index 86e9ac908dc232210c22807bcabfd36f7bd2efe7..4cd9c346b6d3b2691e6860bd785f54a0e130ef09 100644
--- a/atdb/taskdatabase/static/taskdatabase/style.css
+++ b/atdb/taskdatabase/static/taskdatabase/style.css
@@ -113,11 +113,12 @@ p.title {
 }
 
 .modal-dialog .modal-lg {
-    max-width: 75% !important;
+    max-width: 80% !important;
 }
 
 .modal-content {
     overflow: scroll !important;
+    width:120%
 }
 
 .form-flex {
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index dd2c61a9adaef227223016e34154b5f6562579f0..7fdf00000060d8c17b9dc38431d61d56078cac01 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 - 12:00
 
 </div>
 
diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks/quality_card.html b/atdb/taskdatabase/templates/taskdatabase/tasks/quality_card.html
index 2dcbc140b91d5fb18acd43c86e5025ad025670f1..853f162e5e2d002d8aea986ccb562c83e7f6dc7e 100644
--- a/atdb/taskdatabase/templates/taskdatabase/tasks/quality_card.html
+++ b/atdb/taskdatabase/templates/taskdatabase/tasks/quality_card.html
@@ -4,5 +4,9 @@
          <table class="table table-striped">
              {{ quality | safe }}
          </table>
+         <h4>Summary File</h4>
+         <table class="table table-striped">
+             {{ summary | safe }}
+         </table>
      </div>
 </div>
\ No newline at end of file
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..965491c1437c95d91786800e0230ede9c2e59a36 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -522,8 +522,10 @@ def ShowTaskQuality(request, id=0, page=0):
     request.session['page'] = page
 
     quality_html = algorithms.convert_quality_to_html(task)
+    summary_html = algorithms.construct_summary(task)
 
-    return render(request, "taskdatabase/tasks/task_quality.html", {'task': task, 'quality': quality_html})
+    return render(request, "taskdatabase/tasks/task_quality.html",
+                  {'task': task, 'quality': quality_html, 'summary' : summary_html})
 
 
 def AnnotateQualityTaskId(request, id=0, page=0):
@@ -604,6 +606,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)