diff --git a/aleksis/apps/alsijil/data_checks.py b/aleksis/apps/alsijil/data_checks.py
index 289de5cc0751ed9e81f98fa1cbefb9f7b335849b..2d56f2c67b4db73c851094b036154bcb604429b7 100644
--- a/aleksis/apps/alsijil/data_checks.py
+++ b/aleksis/apps/alsijil/data_checks.py
@@ -168,3 +168,32 @@ class PersonalNoteOnHolidaysDataCheck(DataCheck):
                 result = DataCheckResult.objects.get_or_create(
                     check=cls.name, content_type=ct, object_id=note.id
                 )
+
+
+@DATA_CHECK_REGISTRY.register
+class ExcusesWithoutAbsences(DataCheck):
+    name = "excuses_without_absences"
+    verbose_name = _("Ensure that there are no excused personal notes without an absence")
+    problem_name = _("The personal note is marked as excused, but not as absent.")
+    solve_options = {
+        DeleteRelatedObjectSolveOption.name: DeleteRelatedObjectSolveOption,
+        # FIXME OPTION
+        IgnoreSolveOption.name: IgnoreSolveOption,
+    }
+
+    @classmethod
+    def check_data(cls):
+        from aleksis.core.models import DataCheckResult
+
+        from .models import PersonalNote
+
+        ct = ContentType.objects.get_for_model(PersonalNote)
+
+        personal_notes = PersonalNote.objects.filter(excused=True,
+                                                     absent=False)
+
+        for note in personal_notes:
+            logging.info(f"Check personal note {note}")
+            result = DataCheckResult.objects.get_or_create(
+                check=cls.name, content_type=ct, object_id=note.id
+            )