diff --git a/ldvspec/lofardata/templates/lofardata/workspecification/dataproducts.html b/ldvspec/lofardata/templates/lofardata/workspecification/dataproducts.html
index 845f2e5bfb1d1369cb2a0d246701a0232bb4df9c..8f6db708c27abb0d3ca80f85a21bf621ad5a2b50 100644
--- a/ldvspec/lofardata/templates/lofardata/workspecification/dataproducts.html
+++ b/ldvspec/lofardata/templates/lofardata/workspecification/dataproducts.html
@@ -3,6 +3,7 @@
 {% load crispy_forms_tags %}
 {% load define_action %}
 {% load widget_tweaks %}
+{% load format_to_percentage %}
 
 {% block myBlock %}
     <div class="overlay">
@@ -25,15 +26,21 @@
                         </div>
                         <div class="table__content">
                             {% for key, value in dataproduct_info.items %}
-                                <div class="table__row table__row--dark table__row--padding">
-                                    <div class="table__cell table__cell--title">{{ key }}</div>
-                                    <div class="table__cell">
-                                        {% for item in value %}
-                                            {{ item }}
-                                            {% if not forloop.last %}&{% endif %}
-                                        {% endfor %}
+                                {% if value|length > 0 %}
+                                    <div class="table__row table__row--dark table__row--padding">
+                                        <div class="table__cell table__cell--title">{{ key }}</div>
+                                        <div class="table__cell">
+                                            {% for item in value %}
+                                                {% if key == 'dysco_compression' %}
+                                                    {% format_to_percentage item %}
+                                                {% else %}
+                                                    {{ item }}
+                                                {% endif %}
+                                                {% if not forloop.last %}&{% endif %}
+                                            {% endfor %}
+                                        </div>
                                     </div>
-                                </div>
+                                {% endif %}
                             {% endfor %}
                         </div>
                     </div>
diff --git a/ldvspec/lofardata/templatetags/format_to_percentage.py b/ldvspec/lofardata/templatetags/format_to_percentage.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e0fe3c103913962ca8ada2d1b63ae6095d5679e
--- /dev/null
+++ b/ldvspec/lofardata/templatetags/format_to_percentage.py
@@ -0,0 +1,8 @@
+from django import template
+
+register = template.Library()
+
+
+@register.simple_tag
+def format_to_percentage(val):
+    return '{:.0%}'.format(val)
diff --git a/ldvspec/lofardata/tests/test_dataproductinfo.py b/ldvspec/lofardata/tests/test_dataproductinfo.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f2d39a8f5a6bded103cc3daf5db8ca2b52c36fb
--- /dev/null
+++ b/ldvspec/lofardata/tests/test_dataproductinfo.py
@@ -0,0 +1,113 @@
+import unittest
+
+from lofardata.models import DataProduct
+from lofardata.views import retrieve_general_dataproduct_information
+
+test_object_value_one = dict(obs_id='12345', oid_source='SAS', dataproduct_source='lofar',
+                             dataproduct_type='observation',
+                             project='LT10_10',
+                             location='lta-head.lofar.psnc.pl',
+                             activity='secret stuff',
+                             surl='srm://lta-head.lofar.psnc.pl:4884/subfolder/some_nice.tar',
+                             filesize=40,
+                             antenna_set='HBA Dual Inner',
+                             instrument_filter='110-190 MHz',
+                             dysco_compression=True)
+
+test_object_value_two = dict(obs_id='123789', oid_source='SAS', dataproduct_source='lofar',
+                             dataproduct_type='observation',
+                             project='LT10_10',
+                             location='lta-head.lofar.psnc.pl',
+                             activity='secret stuff',
+                             surl='srm://lta-head.lofar.psnc.pl:4884/subfolder/some_very_nice.tar',
+                             filesize=40,
+                             antenna_set='HBA Dual Inner',
+                             instrument_filter='110-190 MHz',
+                             dysco_compression=True)
+
+test_object_value_three = dict(obs_id='123789', oid_source='SAS', dataproduct_source='lofar',
+                               dataproduct_type='observation',
+                               project='LT10_10_Classified',
+                               location='lta-head.lofar.psnc.pl',
+                               activity='secret stuff',
+                               surl='srm://lta-head.lofar.psnc.pl:4884/subfolder/some_not_nice.tar',
+                               filesize=40,
+                               antenna_set='HBA Dual Inner',
+                               instrument_filter='110-190 MHz',
+                               dysco_compression=False)
+
+test_object_value_four = dict(obs_id='1337', oid_source='SAS', dataproduct_source='lofar',
+                               dataproduct_type='observation',
+                               project='LT10_10_Classified',
+                               location='lta-head.lofar.psnc.pl',
+                               activity='secret stuff',
+                               surl='srm://lta-head.lofar.psnc.pl:4884/subfolder/some_not_very_nice.tar',
+                               filesize=40,
+                               antenna_set='HBA Dual Inner',
+                               instrument_filter='110-190 MHz',
+                               dysco_compression=False)
+
+test_object_value_five = dict(obs_id='3773', oid_source='SAS', dataproduct_source='lofar',
+                               dataproduct_type='observation',
+                               project='LT10_10_Classified',
+                               location='lta-head.lofar.psnc.pl',
+                               activity='secret stuff',
+                               surl='srm://lta-head.lofar.psnc.pl:4884/subfolder/some_not_very_super_nice.tar',
+                               filesize=40,
+                               antenna_set=None,
+                               instrument_filter='110-190 MHz',
+                               dysco_compression=False)
+
+test_object_value_six = dict(obs_id='0987', oid_source='SAS', dataproduct_source='lofar',
+                               dataproduct_type='observation',
+                               project='LT10_10_Classified',
+                               location='lta-head.lofar.psnc.pl',
+                               activity='secret stuff',
+                               surl='srm://lta-head.lofar.psnc.pl:4884/subfolder/some_very_super_nice.tar',
+                               filesize=40,
+                               antenna_set='',
+                               instrument_filter='',
+                               dysco_compression=False)
+
+class RetrieveDataProductInformation(unittest.TestCase):
+
+    def setUp(self):
+        DataProduct.objects.create(**test_object_value_one)
+        DataProduct.objects.create(**test_object_value_two)
+        DataProduct.objects.create(**test_object_value_three)
+        DataProduct.objects.create(**test_object_value_four)
+        DataProduct.objects.create(**test_object_value_five)
+        DataProduct.objects.create(**test_object_value_six)
+
+    def test_single_database_entry(self):
+        actual = retrieve_general_dataproduct_information('12345')
+        self.assertEqual(actual['dataproduct_source'], ['lofar'])
+        self.assertEqual(actual['dataproduct_type'], ['observation'])
+        self.assertEqual(actual['project'], ['LT10_10'])
+        self.assertEqual(actual['activity'], ['secret stuff'])
+        self.assertEqual(actual['antenna_set'], ['HBA Dual Inner'])
+        self.assertEqual(actual['instrument_filter'], ['110-190 MHz'])
+
+    def test_combined_database_entries(self):
+        actual = retrieve_general_dataproduct_information('123789')
+        self.assertEqual(actual['project'], ['LT10_10', 'LT10_10_Classified'])
+
+    def test_single_with_none_value(self):
+        actual = retrieve_general_dataproduct_information('3773')
+        self.assertEqual(actual['antenna_set'], [])
+
+    def test_single_with_default_values(self):
+        actual = retrieve_general_dataproduct_information('0987')
+        self.assertEqual(actual['antenna_set'], [])
+
+    def test_dysco_compression_true_and_false(self):
+        actual = retrieve_general_dataproduct_information('123789')
+        self.assertEqual(actual['dysco_compression'], [0.5])
+
+    def test_dysco_compression_true(self):
+        actual = retrieve_general_dataproduct_information('12345')
+        self.assertEqual(actual['dysco_compression'], [1])
+
+    def test_dysco_compression_false(self):
+        actual = retrieve_general_dataproduct_information('1337')
+        self.assertEqual(actual['dysco_compression'], [0])
diff --git a/ldvspec/lofardata/views.py b/ldvspec/lofardata/views.py
index 16c2ae34fb461a9e4ab97de42dbd7e4759b46ecf..abe6854b49f2c54086d0ea9c6beadb1092a9d23b 100644
--- a/ldvspec/lofardata/views.py
+++ b/ldvspec/lofardata/views.py
@@ -147,14 +147,21 @@ def preprocess_filters_specification_view(specification):
 
 def retrieve_general_dataproduct_information(sas_id):
     # Per SAS ID, the retrieved data products should have these unique values
-    data_products = DataProduct.objects.filter(obs_id=sas_id).values("dataproduct_source",
-                                                                     "dataproduct_type",
-                                                                     "project",
-                                                                     "location",
-                                                                     "activity",
-                                                                     "additional_meta").distinct()
+    data_products = DataProduct.objects.filter(obs_id=sas_id).values('dataproduct_source',
+                                                                     'dataproduct_type',
+                                                                     'project',
+                                                                     'location',
+                                                                     'activity',
+                                                                     'antenna_set',
+                                                                     'instrument_filter',
+                                                                     'dysco_compression').distinct()
     combined_data_products_on_key = combine_dataproducts_on_key(data_products, {})
 
+    dysco_compressions = combined_data_products_on_key['dysco_compression']
+    true_count = len([dysco_compression for dysco_compression in dysco_compressions if dysco_compression])
+    dysco_compression_true_percentage = true_count / len(combined_data_products_on_key['dysco_compression'])
+    # put in a list for template convenience
+    combined_data_products_on_key['dysco_compression'] = [dysco_compression_true_percentage]
     return combined_data_products_on_key
 
 
@@ -166,12 +173,12 @@ def combine_dataproducts_on_key(data_products, combined_data_products):
 
 def fill_unique_nested_dict(data_product, combined_data_products_on_key):
     for key, value in data_product.items():
-        if isinstance(value, dict):
-            combined_data_products_on_key = fill_unique_nested_dict(value, combined_data_products_on_key)
-        elif combined_data_products_on_key.get(key) and value not in combined_data_products_on_key.get(key):
+        if combined_data_products_on_key.get(key) and \
+                value not in combined_data_products_on_key.get(key) and \
+                value is not None and value is not '':
             combined_data_products_on_key[key].append(value)
         else:
-            combined_data_products_on_key[key] = [value]
+            combined_data_products_on_key[key] = [value] if value is not None and value is not '' else []
     return combined_data_products_on_key