diff --git a/python/loom/lore/html.py b/python/loom/lore/html.py
index 6842c261827d0da8bc0ac811051f5284226053ff..7a06df5aa7a92b1ef25b39c12f7c4ec80151a399 100644
--- a/python/loom/lore/html.py
+++ b/python/loom/lore/html.py
@@ -154,6 +154,22 @@ def create_pending_tasks(report):
     return column([f2, f1])
 
 
+def create_running_tasks(report):
+    ds = report.get_running_tasks()
+    ds = ds.sort_values("time")
+    names = ds["group"].unique()
+    names.sort()
+    f1 = figure(plot_width=1000, plot_height=400)
+    for color, name in zip(create_colors(len(names)), names):
+        frame = ds[ds["group"] == name]
+        f1.line(frame.time, frame.change.cumsum(),
+                color=color, legend=name, line_width=1)
+
+    f2 = figure(plot_width=1000, plot_height=400)
+    f2.line(ds.time, ds.change.cumsum(), line_width=1)
+    return column([f2, f1])
+
+
 def create_scheduling_time(report):
     ds = report.scheduler_times
     duration = ds["end_time"] - ds["start_time"]
@@ -181,6 +197,7 @@ def create_html(report, filename):
     scheduling = Tabs(tabs=[
         Panel(child=create_timelines(report), title="Timeline"),
         Panel(child=create_pending_tasks(report), title="Pending tasks"),
+        Panel(child=create_running_tasks(report), title="Running tasks"),
         Panel(child=create_scheduling_time(report), title="Scheduling time"),
     ])
 
diff --git a/python/loom/lore/report.py b/python/loom/lore/report.py
index b2f53b5d5dc573fb1621b25ab47e7fe7d61dc951..851ba5d2d8be617d99bfbc177d6cecdce9e7908b 100644
--- a/python/loom/lore/report.py
+++ b/python/loom/lore/report.py
@@ -208,6 +208,15 @@ class Report:
         return pd.DataFrame(create_items(),
                             columns=["time", "change", "group"])
 
+    def get_running_tasks(self):
+        def create_items():
+            for t in self.tasks.values():
+                group_name = t.group_name
+                yield t.start_time, 1, group_name
+                yield t.end_time, -1, group_name
+        return pd.DataFrame(create_items(),
+                            columns=["time", "change", "group"])
+
     def get_group_names(self):
         return sorted(set(t.group_name for t in self.tasks.values()))