diff --git a/atdb/taskdatabase/services/calculated_qualities.py b/atdb/taskdatabase/services/calculated_qualities.py
index fe83c0be14fc504c489a98bc748d045a5b0cddf7..732ef6543aa741c1beafb2fae77f55f0d1c82778 100644
--- a/atdb/taskdatabase/services/calculated_qualities.py
+++ b/atdb/taskdatabase/services/calculated_qualities.py
@@ -76,8 +76,18 @@ def calculate_qualities(task, tasks_for_this_sasid, quality_thresholds):
             summary_flavour = get_summary_flavour(task)
 
             if summary_flavour == SummaryFlavour.IMAGING_COMPRESSION.value:
+                # shortcut, if quality is already calculated by the workflow then no need to calculate
+                try:
+                    quality = summary['details']['quality']
+                    if quality in ['poor', 'moderate', 'good']:
+                        return quality
+                except:
+                    # no quality key found, continue with rfi_percent
+                    pass
+
                 rfi_percent = float(summary['details']['rfi_percent'])
 
+
             if summary_flavour == SummaryFlavour.DEFAULT.value:
                 # there is 1 key, but it is a filename which not known
                 for key in summary:
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index e17823fc58660d3dad639e180b31317019f47080..b4d295e83a73086e9db8eb0eda5e1ac143a7d00a 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -31,7 +31,7 @@
             {% include 'taskdatabase/pagination.html' %}
         </div>
     </div>
-    <p class="footer"> Version 20 Aug 2024
+    <p class="footer"> Version 26 Aug 2024
 </div>
 
 {% include 'taskdatabase/refresh.html' %}
diff --git a/atdb/taskdatabase/tests/test_calculated_qualities.py b/atdb/taskdatabase/tests/test_calculated_qualities.py
index a3dcab9fff615441245c77821d13c00b58248821..72984f05fcf5ff6324c82e72732d9c25b4dd500d 100644
--- a/atdb/taskdatabase/tests/test_calculated_qualities.py
+++ b/atdb/taskdatabase/tests/test_calculated_qualities.py
@@ -281,3 +281,34 @@ class TestCalculatedQualities(TestCase):
 
         # Assert
         self.assertEqual(remarks, annotation)
+
+    def test_provided_quality_ok(self):
+        # Arrange
+        workflow = Workflow(workflow_uri="workflow_imaging_compression")
+        workflow.save()
+
+        task = Task(sas_id=77777, new_status='stored', outputs=outputs.imaging_compression_with_provided_quality_ok, workflow=workflow)
+
+        # Act
+        task.save()
+        quality = task.calculated_qualities['per_task']
+
+        # Assert
+        # good is based on quality field
+        self.assertEqual(quality, "moderate")
+
+    def test_provided_quality_not_ok_use_rfi_percent(self):
+        # Arrange
+        workflow = Workflow(workflow_uri="workflow_imaging_compression")
+        workflow.save()
+
+        task = Task(sas_id=77777, new_status='stored', outputs=outputs.imaging_compression_with_provided_quality_not_ok,
+                    workflow=workflow)
+
+        # Act
+        task.save()
+        quality = task.calculated_qualities['per_task']
+
+        # Assert
+        # good is based on rfi_percent
+        self.assertEqual(quality, "good")
\ No newline at end of file
diff --git a/atdb/taskdatabase/tests/test_calculated_qualities_outputs.py b/atdb/taskdatabase/tests/test_calculated_qualities_outputs.py
index 596b28059903aba8a233869fc253eadc53c3b940..42dd531e24dca91c47f70756595fc608ec721001 100644
--- a/atdb/taskdatabase/tests/test_calculated_qualities_outputs.py
+++ b/atdb/taskdatabase/tests/test_calculated_qualities_outputs.py
@@ -406,4 +406,104 @@ link_target_summary_without_rfi = {
         "location": "file:///project/ldv/Share/run/2023/6/16/1352_35011/3c48_LINC_target_summary.json",
         "nameroot": "3c48_LINC_target_summary"
     },
+}
+
+imaging_compression_with_provided_quality_ok = {
+    "quality": {
+        "summary": {
+            "details": {
+                "DStDev": {
+                    "CS001": 15372035.9671943,
+                    "UK608": 22423233.01862699
+                },
+                "target": [
+                    "3C295"
+                ],
+                "antennas": [
+                    "CS001HBA0",
+                    "IE613HBA"
+                ],
+                "pointing": {
+                    "Sun": 98.62325727494583,
+                    "CasA": 63.8887478639975,
+                    "CygA": 57.33860706164162,
+                    "HerA": 57.53230892059052,
+                    "Moon": 82.10124202600636,
+                    "TauA": 93.60818880478796,
+                    "VirA": 44.64319497995252,
+                    "Jupiter": 65.56149628509407,
+                    "elevation_fraction": 1
+                },
+                "rfi_percent": 1.7186448587105623,
+                "quality": "moderate",
+                "antenna_configuration": "FULL",
+                "antennas_not_available": [
+                    "LV614"
+                ]
+            },
+            "applied_fixes": [],
+            "rfi_perc_total": "good",
+            "elevation_score": "good",
+            "sun_interference": "good",
+            "unfixable_issues": [],
+            "moon_interference": "good",
+            "jupiter_interference": "good",
+            "degree_incompleteness_array": [],
+            "array_missing_important_pairs_is": "good",
+            "array_missing_important_pairs_dutch": "good",
+            "aggregated_array_data_losses_percentage": "poor",
+            "array_high_data_loss_on_is_important_pair": "good",
+            "array_high_data_loss_on_dutch_important_pair": "good"
+        }
+    },
+}
+
+imaging_compression_with_provided_quality_not_ok = {
+    "quality": {
+        "summary": {
+            "details": {
+                "DStDev": {
+                    "CS001": 15372035.9671943,
+                    "UK608": 22423233.01862699
+                },
+                "target": [
+                    "3C295"
+                ],
+                "antennas": [
+                    "CS001HBA0",
+                    "IE613HBA"
+                ],
+                "pointing": {
+                    "Sun": 98.62325727494583,
+                    "CasA": 63.8887478639975,
+                    "CygA": 57.33860706164162,
+                    "HerA": 57.53230892059052,
+                    "Moon": 82.10124202600636,
+                    "TauA": 93.60818880478796,
+                    "VirA": 44.64319497995252,
+                    "Jupiter": 65.56149628509407,
+                    "elevation_fraction": 1
+                },
+                "rfi_percent": 1.7186448587105623,
+                "quality": "no_a_quality",
+                "antenna_configuration": "FULL",
+                "antennas_not_available": [
+                    "LV614"
+                ]
+            },
+            "applied_fixes": [],
+            "rfi_perc_total": "good",
+            "elevation_score": "good",
+            "sun_interference": "good",
+            "unfixable_issues": [],
+            "moon_interference": "good",
+            "jupiter_interference": "good",
+            "degree_incompleteness_array": [],
+            "array_missing_important_pairs_is": "good",
+            "array_missing_important_pairs_dutch": "good",
+            "aggregated_array_data_losses_percentage": "poor",
+            "array_high_data_loss_on_is_important_pair": "good",
+            "array_high_data_loss_on_dutch_important_pair": "good"
+        }
+    },
 }
\ No newline at end of file