diff --git a/biscuit/apps/alsijil/models.py b/biscuit/apps/alsijil/models.py
index 9540c14e80328302bc9fa7a2d5dc6b8878b6ba1f..4e8f68f029ab8361a7d638e0eb504d07390279d4 100644
--- a/biscuit/apps/alsijil/models.py
+++ b/biscuit/apps/alsijil/models.py
@@ -42,3 +42,16 @@ class LessonDocumentation(SchoolRelated):
         unique_together = [['school', 'lesson_period', 'week']]
         ordering = ['lesson_period__lesson__date_start', 'week',
                     'lesson_period__period__weekday', 'lesson_period__period__period']
+
+
+class PersonalNoteFilter(SchoolRelated):
+    """ A filter definition that can generate statistics on personal note texts. """
+
+    short_name = models.CharField(verbose_name=_('Short name'), max_length=30)
+    description = models.CharField(verbose_name=_('Description'), max_length=60, blank=True)
+
+    regex = models.CharField(verbose_name=_('Match expression'), max_length=100)
+
+    class Meta:
+        unique_together = [['school', 'short_name'], ['school', 'description'], ['school', 'regex']]
+        ordering = ['short_name']