diff --git a/src/api/views/metrics.py b/src/api/views/metrics.py
index ada667a4677536c2c05bd223b098fda5252084c7..f8c3ef2b12d939800f3f494423ad39d945b288e3 100644
--- a/src/api/views/metrics.py
+++ b/src/api/views/metrics.py
@@ -70,8 +70,13 @@ class MetricsView(TemplateView):
             self.report_assembly_metrics(metrics, conference, 'channel', 'channels')
 
             # hub_conference_rooms
-            for room_type in Room.RoomType.values:
-                room_count = Room.objects.filter(conference=conference, room_type=Room.RoomType(room_type)).count()
+            room_counts = {room_type: 0 for room_type in Room.RoomType.values}
+            for room_type, cnt in (
+                Room.objects.filter(conference=conference).values('room_type').annotate(cnt=Count('room_type')).values_list('room_type', 'cnt')
+            ):
+                room_counts[room_type] = cnt
+
+            for room_type, room_count in room_counts.items():
                 metrics['hub_conference_rooms']['values'][f'{{conference="{slug}",room_type="{room_type}"}}'] = room_count
 
             # hub_conference_projects