diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 5a6eb38f9bf4b308e0029506700751322a1a249e..b2a35a90ef1911220ea6a86a6021919d08251c64 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -254,12 +254,17 @@ class LessonSubstitutionQuerySet(LessonDataQuerySet):
     def affected_teachers(self):
         """ Return all teachers which are affected by selected substitutions (as substituted or substituting) """
 
-        return Person.objects.filter(Q(lessons_as_teacher__in=self.affected_lessons()) | Q(lesson_substitutions__in=self))
+        return Person.objects.filter(
+            Q(lessons_as_teacher__in=self.affected_lessons())
+            | Q(lesson_substitutions__in=self)
+        ).annotate(lessons_count=Count("lessons_as_teacher"))
 
     def affected_groups(self):
         """ Return all groups which are affected by selected substitutions """
 
-        return Group.objects.filter(lessons__in=self.affected_lessons())
+        return Group.objects.filter(lessons__in=self.affected_lessons()).annotate(
+            lessons_count=Count("lessons")
+        )
 
 
 class TimePeriod(models.Model):