diff --git a/submissions/templates/submissions/monitor.html b/submissions/templates/submissions/monitor.html
new file mode 100644
index 0000000000000000000000000000000000000000..7496c2fb5bafd35729f5d7156fa83bd8e05b565a
--- /dev/null
+++ b/submissions/templates/submissions/monitor.html
@@ -0,0 +1,45 @@
+{% extends 'submissions/base.html' %}
+
+{% load bootstrap %}
+
+{% block meta_description %}{{ block.super }} Submissions monitor{% endblock meta_description %}
+{% block pagetitle %}: Submissions monitor{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+  <a href="{% url 'scipost:index' %}" class="breadcrumb-item">Homepage</a>
+  <span class="breadcrumb-item">Submissions</span>
+  <span class="breadcrumb-item">Monitor</span>
+{% endblock %}
+
+{% block content %}
+  <div class="row">
+    <div class="col">
+      <h1 class="highlight">Submissions Monitor</h1>
+    </div>
+  </div>
+  <div class="row">
+    <div class="col">
+      <h2 class="highlight">Submissions with status: unassigned (awaiting editor assignment)</h2>
+      <table class="table">
+	<thead>
+	  <th>Field</th>
+	  <th>Specialty</th>
+	  <th>Nr awaiting EIC</th>
+	  <th>Total waiting days</th>
+	  <th>Avg waiting days</th>
+	  <th>Max waiting days</th>
+	</thead>
+	{% for entry in delays_unassigned %}
+	  <tr{% if entry.avg_waiting_days > 10 %} class="bg-danger text-white"{% elif entry.avg_waiting_days > 5 %} class="bg-warning text-white"{% else %} class="bg-success text-white"{% endif %}>
+	    <td>{{ entry.acad_field }}</td>
+	    <td>{{ entry.specialty }}</td>
+	    <td>{{ entry.number }}</td>
+	    <th>{{ entry.waiting_days }}</th>
+	    <th>{{ entry.avg_waiting_days }}</th>
+	    <th>{{ entry.max_waiting_days }}</th>
+	  </tr>
+	{% endfor %}
+      </table>
+    </div>
+  </div>
+{% endblock content %}
diff --git a/submissions/urls.py b/submissions/urls.py
index b62fe5ecc531322d391b22d45c4df77847c2144a..e13a35eb2a7e679a1127f1e8b1089d3efa0923d3 100644
--- a/submissions/urls.py
+++ b/submissions/urls.py
@@ -246,4 +246,11 @@ urlpatterns = [
     url(r'^vote_on_rec/(?P<rec_id>[0-9]+)$', views.vote_on_rec, name='vote_on_rec'),
     url(r'^remind_Fellows_to_vote/(?P<rec_id>[0-9]+)$', views.remind_Fellows_to_vote,
         name='remind_Fellows_to_vote'),
+
+    # Monitoring
+    path(
+        'monitor',
+        views.monitor,
+        name='monitor'
+    ),
 ]
diff --git a/submissions/views.py b/submissions/views.py
index 172d4789578b7e1d84ec3eb3699bebb0e5cbc7e3..b433661d42303bcb1da22cc787fbbb45291ecd0a 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -2279,3 +2279,48 @@ class PlagiarismReportPDFView(SubmissionAdminViewMixin, SingleObjectMixin, Redir
         if not url:
             raise Http404
         return url
+
+
+##############
+# Monitoring #
+##############
+
+def submissions_processing_delays(submissions):
+    """
+    Generate a tuple containing information about delays on submissions.
+    """
+    delays = []
+    now = timezone.now()
+    from ontology.models import AcademicField
+    for acad_field in AcademicField.objects.all():
+        for specialty in acad_field.specialties.all():
+            submissions_in_spec = submissions.filter(acad_field=acad_field, specialties__in=[specialty])
+            number = len(submissions_in_spec)
+            if number > 0:
+                waiting_days = 0
+                max_waiting_days = 0
+                for sub in submissions_in_spec.all():
+                    waiting_days += workdays_between(sub.submission_date, now)
+                    max_waiting_days = max(waiting_days, max_waiting_days)
+                delays.append({
+                    'acad_field': acad_field,
+                    'specialty': specialty,
+                    'number': number,
+                    'waiting_days': waiting_days,
+                    'avg_waiting_days': round(waiting_days/number, 2),
+                    'max_waiting_days': max_waiting_days
+                })
+
+
+    return sorted(delays, key=lambda tup: tup['number'], reverse=True)
+
+
+def monitor(request):
+    """
+    Dashboard providing an overview of the status of submission workflows.
+    """
+    # Compute stats for all submissions under processing
+    context = {
+        'delays_unassigned': submissions_processing_delays(Submission.objects.unassigned())
+    }
+    return render(request, 'submissions/monitor.html', context)