diff --git a/mo/util.py b/mo/util.py
index 7021284e21d63b3c613075e0dd375508a1859d06..aaf520c6d5d01c2eef81b4bd87e12957ec2e4a14 100644
--- a/mo/util.py
+++ b/mo/util.py
@@ -184,3 +184,25 @@ def unlink_if_exists(name: str):
         os.unlink(name)
     except FileNotFoundError:
         pass
+
+
+def normalize_grade(grade: str) -> int:
+    """Pokusí se převést třídu ve formátu 7 nebo 3/4 na číslo odpovídající
+    třídě na základní škole (maturitní ročník gymnázia je tedy 9+4 = 13).
+    * Základní škola: nic
+    * Gymnázia: /8, /6 nebo /4
+    * Nerozpoznané ročníky a chyby při převodu: -1"""
+    try:
+        parts = grade.split('/')
+        if len(parts) == 1:
+            return int(parts[0])
+        if len(parts) > 2:
+            return -1
+        year = int(parts[0])
+        school_type = int(parts[1])
+        if school_type in (8, 6, 4):
+            return year + 13 - school_type
+        else:
+            return -1
+    except ValueError:
+        return -1