diff --git a/formatscaper/resultman.py b/formatscaper/resultman.py
index d8700b0e8fccc398707dfb1ec180dc5437119983..378c42082ed20c4fc0ceb26003f9e7b60ed79081 100755
--- a/formatscaper/resultman.py
+++ b/formatscaper/resultman.py
@@ -2,6 +2,7 @@
 
 import argparse
 import enum
+import math
 from typing import Optional
 
 import urwid as uw
@@ -240,14 +241,23 @@ def handle_select_format(format: Format, button: uw.Button):
 # defining the basic layout
 def create_format_buttons(filter: FormatFilter):
     format_buttons = []
-    for format in sorted((f for f in formats if f.name), key=lambda f: f.name):
+    filtered_formats = [f for f in formats if f.name]
+
+    num_files_per_format = {
+        fmt.puid: sum([len(rec) for rec in format_record_files[fmt.puid].values()])
+        for fmt in filtered_formats
+    }
+    max_num_files = math.ceil(math.log10(max(num_files_per_format.values())))
+
+    for format in sorted(filtered_formats, key=lambda f: f.name):
         if filter == FormatFilter.ENDANGERED and not format.endangered:
             continue
         elif filter == FormatFilter.SAFE and format.endangered:
             continue
 
         attribute = "endangered" if format.endangered else "safe"
-        button = SimpleButton(format.name)
+        prefix = str(num_files_per_format[format.puid]).rjust(max_num_files)
+        button = SimpleButton(f"[{prefix}] {format.name}")
         button.format = format
         uw.connect_signal(button, "click", handle_select_format, user_args=[format])
         format_buttons.append(uw.AttrMap(button, attribute, focus_map="reversed"))