diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue
index 29e3b569291822413f178e1c4d4f068bcef8d2d3..57c76774b88188114ea792f713048b7ec9160e1a 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue
@@ -1,6 +1,7 @@
 <script setup>
 import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.vue";
 import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue";
+import TardinessChip from "../personal_notes/TardinessChip.vue";
 </script>
 
 <template>
@@ -64,6 +65,27 @@ import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue";
       </template>
     </extra-mark-chip>
 
+    <tardiness-chip>
+      {{ $t("alsijil.personal_notes.late") }}
+
+      <template #append>
+        <span>:
+          {{
+            tardyParticipations
+              .slice(0, 5)
+              .map((participation) => participation.person.firstName)
+              .join(", ")
+          }}
+
+          <span v-if="tardyParticipations.length > 5">
+            <!-- eslint-disable @intlify/vue-i18n/no-raw-text -->
+            +{{ tardyParticipations.length - 5 }}
+            <!-- eslint-enable @intlify/vue-i18n/no-raw-text -->
+          </span>
+        </span>
+      </template>
+    </tardiness-chip>
+
     <manage-students-trigger v-bind="documentationPartProps" />
   </div>
 </template>
@@ -111,6 +133,10 @@ export default {
         return value;
       }, {});
     },
+    tardyParticipations() {
+      return this.documentation.participations.filter(p =>
+          p.noteWithTardiness != null && p.noteWithTardiness.tardiness > 0);
+    },
   },
 };
 </script>