diff --git a/scipost_django/submissions/forms.py b/scipost_django/submissions/forms.py
index bbdb2d25daf09a56150e73ad61d590f844455e1f..59f187868ef596bcdf63fc9b8a35271e45e7c121 100644
--- a/scipost_django/submissions/forms.py
+++ b/scipost_django/submissions/forms.py
@@ -138,7 +138,7 @@ class SubmissionSearchForm(forms.Form):
             )
         if self.reports_needed:
             submissions = submissions.actively_refereeing(
-            ).open_for_reporting().order_by('submission_date')
+            ).open_for_reporting().reports_needed().order_by('submission_date')
         return submissions
 
 
diff --git a/scipost_django/submissions/managers/submission.py b/scipost_django/submissions/managers/submission.py
index 009dd716dee0f87791954ef462d8dccb248d67bd..7a9bfeb926f1323fe26dcf3921fb171630c9e55d 100644
--- a/scipost_django/submissions/managers/submission.py
+++ b/scipost_django/submissions/managers/submission.py
@@ -204,9 +204,20 @@ class SubmissionQuerySet(models.QuerySet):
         return self._newest_version_only(self.filter(status=constants.STATUS_WITHDRAWN))
 
     def open_for_reporting(self):
-        """Return Submission that allow for reporting."""
+        """Return Submissions open for reporting."""
         return self.filter(open_for_reporting=True)
 
+    def reports_needed(self):
+        """
+        Return Submissions for which the nr of Reports is less than required by target Journal.
+        """
+        qs = self.prefetch_related(
+            'reports', 'submitted_to'
+        ).annotate(nr_reports=models.Count('reports'))
+        ids_list = [s.id for s in qs.all() if (
+            s.nr_reports < s.submitted_to.minimal_nr_of_reports)]
+        return self.filter(id__in=ids_list)
+
     def open_for_commenting(self):
         """Return Submission that allow for commenting."""
         return self.filter(open_for_commenting=True)