diff --git a/aleksis/apps/alsijil/tables.py b/aleksis/apps/alsijil/tables.py
index a0ef1734e5eea326fd9a8fd0f858b71a89089082..f17a214930f2d7f2e40a1662b491eab587bda0ad 100644
--- a/aleksis/apps/alsijil/tables.py
+++ b/aleksis/apps/alsijil/tables.py
@@ -11,26 +11,6 @@ from aleksis.core.util.tables import SelectColumn
 from .models import PersonalNote
 
 
-class ExtraMarkTable(tables.Table):
-    class Meta:
-        attrs = {"class": "highlight"}
-
-    name = tables.LinkColumn("edit_extra_mark", args=[A("id")])
-    short_name = tables.Column()
-    edit = tables.LinkColumn(
-        "edit_extra_mark",
-        args=[A("id")],
-        text=_("Edit"),
-        attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}},
-    )
-    delete = tables.LinkColumn(
-        "delete_extra_mark",
-        args=[A("id")],
-        text=_("Delete"),
-        attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}},
-    )
-
-
 class ExcuseTypeTable(tables.Table):
     class Meta:
         attrs = {"class": "highlight"}
diff --git a/aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html b/aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html
deleted file mode 100644
index d0ee3a9055561df1f468692f79d794404a60c1d1..0000000000000000000000000000000000000000
--- a/aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html
+++ /dev/null
@@ -1,17 +0,0 @@
-	{# -*- engine:django -*- #}
-
-	{% extends "core/base.html" %}
-	{% load material_form i18n %}
-
-	{% block browser_title %}{% blocktrans %}Create extra mark{% endblocktrans %}{% endblock %}
-	{% block page_title %}{% blocktrans %}Create extra mark{% endblocktrans %}{% endblock %}
-
-	{% block content %}
-
-	  <form method="post">
-	    {% csrf_token %}
-	    {% form form=form %}{% endform %}
-	    {% include "core/partials/save_button.html" %}
-	  </form>
-
-	{% endblock %}
diff --git a/aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html b/aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html
deleted file mode 100644
index 7adee30a1cfd30256d70b2a823827384de331e05..0000000000000000000000000000000000000000
--- a/aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{# -*- engine:django -*- #}
-
-{% extends "core/base.html" %}
-{% load material_form i18n %}
-
-{% block browser_title %}{% blocktrans %}Edit extra mark{% endblocktrans %}{% endblock %}
-{% block page_title %}{% blocktrans %}Edit extra mark{% endblocktrans %}{% endblock %}
-
-{% block content %}
-
-  <form method="post">
-    {% csrf_token %}
-    {% form form=form %}{% endform %}
-    {% include "core/partials/save_button.html" %}
-  </form>
-
-{% endblock %}
diff --git a/aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html b/aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html
deleted file mode 100644
index 9eeb63b1a81162e6490072ca7184059be7a5193a..0000000000000000000000000000000000000000
--- a/aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{# -*- engine:django -*- #}
-
-{% extends "core/base.html" %}
-
-{% load i18n %}
-{% load render_table from django_tables2 %}
-
-{% block browser_title %}{% blocktrans %}Extra marks{% endblocktrans %}{% endblock %}
-{% block page_title %}{% blocktrans %}Extra marks{% endblocktrans %}{% endblock %}
-
-{% block content %}
-  <a class="btn green waves-effect waves-light" href="{% url 'create_extra_mark' %}">
-    <i class="material-icons iconify left" data-icon="mdi:plus"></i>
-    {% trans "Create extra mark" %}
-  </a>
-
-  {% render_table table %}
-{% endblock %}
diff --git a/aleksis/apps/alsijil/urls.py b/aleksis/apps/alsijil/urls.py
index edc0b4fa81cfb50e1f268d9dd21b3d9dda2c033a..cd7367ce84973bb4eb62791e9ce5b2c7eb3a5f85 100644
--- a/aleksis/apps/alsijil/urls.py
+++ b/aleksis/apps/alsijil/urls.py
@@ -3,22 +3,6 @@ from django.urls import path
 from . import views
 
 urlpatterns = [
-    path("extra_marks/", views.ExtraMarkListView.as_view(), name="extra_marks"),
-    path(
-        "extra_marks/create/",
-        views.ExtraMarkCreateView.as_view(),
-        name="create_extra_mark",
-    ),
-    path(
-        "extra_marks/<int:pk>/edit/",
-        views.ExtraMarkEditView.as_view(),
-        name="edit_extra_mark",
-    ),
-    path(
-        "extra_marks/<int:pk>/delete/",
-        views.ExtraMarkDeleteView.as_view(),
-        name="delete_extra_mark",
-    ),
     path("group_roles/", views.GroupRoleListView.as_view(), name="group_roles"),
     path("group_roles/create/", views.GroupRoleCreateView.as_view(), name="create_group_role"),
     path(
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index dd010383b83ae7e28c6d98fd7de34bf9aa5432ba..0395a8bfbc54fcab81dfea092f431045d15ae134 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -48,7 +48,6 @@ from .filters import PersonalNoteFilter
 from .forms import (
     AssignGroupRoleForm,
     ExcuseTypeForm,
-    ExtraMarkForm,
     FilterRegisterObjectForm,
     GroupRoleAssignmentEditForm,
     GroupRoleForm,
@@ -62,7 +61,6 @@ from .forms import (
 from .models import ExcuseType, ExtraMark, GroupRole, GroupRoleAssignment, PersonalNote
 from .tables import (
     ExcuseTypeTable,
-    ExtraMarkTable,
     GroupRoleTable,
     PersonalNoteTable,
     RegisterObjectSelectTable,
@@ -1052,51 +1050,6 @@ class DeletePersonalNoteView(PermissionRequiredMixin, DetailView):
         return redirect("overview_person", note.person.pk)
 
 
-@method_decorator(pwa_cache, "dispatch")
-class ExtraMarkListView(PermissionRequiredMixin, SingleTableView):
-    """Table of all extra marks."""
-
-    model = ExtraMark
-    table_class = ExtraMarkTable
-    permission_required = "alsijil.view_extramarks_rule"
-    template_name = "alsijil/extra_mark/list.html"
-
-
-@method_decorator(never_cache, name="dispatch")
-class ExtraMarkCreateView(PermissionRequiredMixin, AdvancedCreateView):
-    """Create view for extra marks."""
-
-    model = ExtraMark
-    form_class = ExtraMarkForm
-    permission_required = "alsijil.add_extramark_rule"
-    template_name = "alsijil/extra_mark/create.html"
-    success_url = reverse_lazy("extra_marks")
-    success_message = _("The extra mark has been created.")
-
-
-@method_decorator(never_cache, name="dispatch")
-class ExtraMarkEditView(PermissionRequiredMixin, AdvancedEditView):
-    """Edit view for extra marks."""
-
-    model = ExtraMark
-    form_class = ExtraMarkForm
-    permission_required = "alsijil.edit_extramark_rule"
-    template_name = "alsijil/extra_mark/edit.html"
-    success_url = reverse_lazy("extra_marks")
-    success_message = _("The extra mark has been saved.")
-
-
-@method_decorator(never_cache, name="dispatch")
-class ExtraMarkDeleteView(PermissionRequiredMixin, RevisionMixin, AdvancedDeleteView):
-    """Delete view for extra marks."""
-
-    model = ExtraMark
-    permission_required = "alsijil.delete_extramark_rule"
-    template_name = "core/pages/delete.html"
-    success_url = reverse_lazy("extra_marks")
-    success_message = _("The extra mark has been deleted.")
-
-
 @method_decorator(pwa_cache, "dispatch")
 class ExcuseTypeListView(PermissionRequiredMixin, SingleTableView):
     """Table of all excuse types."""