diff --git a/monitor/bot-status.py b/monitor/bot-status.py
index be7851c..730442f 100755
--- a/monitor/bot-status.py
+++ b/monitor/bot-status.py
@@ -180,28 +180,42 @@
     base_url = server['base_url']
     builder_url = server['builder_url']
     build_url = server['build_url']
+
+    column_titles = [
+            "Buildbot",
+            "Status",
+            "T Since",
+            "Duration",
+            "Build #",
+            "Commits",
+            "Failing steps"
+    ]
+    num_columns = len(column_titles)
+    column_titles_html = "<tr>{}</tr>\n".format(
+            "".join(["<th>{}</th>".format(t) for t in column_titles]))
+
     temp.write("<table border=0 cellspacing=1 cellpadding=2>\n")
-    temp.write("<tr><td colspan=7>&nbsp;</td><tr>\n")
-    temp.write("<tr><th colspan=7>{} @ {}</td><tr>\n"
-               .format(server['name'], today))
+    temp.write("<tr><td colspan={}>&nbsp;</td><tr>\n".format(num_columns))
+    temp.write("<tr><th colspan={}>{} @ {}</td><tr>\n"
+               .format(num_columns, server['name'], today))
 
     for builder in server['builders']:
-      temp.write("<tr><td colspan=7>&nbsp;</td><tr>\n")
-      temp.write("<tr><th colspan=7>{}</th><tr>\n".format(builder['name']))
-      temp.write("<tr><th>Buildbot</th><th>Status</th><th>T Since</th>"
-                 "<th>Duration</th><th>Build #</th><th>Commits</th>"
-                 "<th>Failing steps</th></tr>\n")
+      temp.write("<tr><td colspan={}>&nbsp;</td><tr>\n".format(num_columns))
+      temp.write("<tr><th colspan={}>{}</th><tr>\n".format(num_columns, builder['name']))
+      temp.write(column_titles_html)
       temp.write("<tbody>\n")
       for bot in builder['bots']:
         temp.write("<tr>\n")
         try:
           status = bots_status[(base_url, bot['name'])]
         except KeyError:
-          temp.write("  <td>{} is offline!</td>\n</tr>\n".format(bot['name']))
+          temp.write("  <td colspan={}>{} is offline!</td>\n</tr>\n"
+                      .format(num_columns, bot['name']))
           continue
         else:
             if not status.get('valid', True):
-                temp.write("  <td>Could not read status for {}!</td>\n</tr>\n".format(bot['name']))
+                temp.write("  <td colspan={}>Could not read status for {}!</td>\n</tr>\n"
+                            .format(num_columns, bot['name']))
                 continue
 
         found_failure |= status['fail']
