diff --git a/src/Checker/Study.py b/src/Checker/Study.py
index c650e45a7f8bb9b3507aea1764532f984f38417c..c6c41feda47b968923d653953ae96291797aab25 100644
--- a/src/Checker/Study.py
+++ b/src/Checker/Study.py
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
 
+import time
+
 from PyQt5.QtCore import QCoreApplication
 
 from Checker.Checker import AbstractModelChecker, STATUS
@@ -26,7 +28,8 @@ class StudyNetworkReachChecker(AbstractModelChecker):
             self._summary = "no_river_found"
             return False
 
-        if len(river.edges()) == 0:
+        edges = list(filter(lambda e: e.is_enable(), river.edges()))
+        if len(edges) == 0:
             self._status = STATUS.ERROR
             self._summary = "no_reach_defined"
             return False
@@ -35,6 +38,48 @@ class StudyNetworkReachChecker(AbstractModelChecker):
         self._status = STATUS.OK
         return True
 
+class StudyGeometryChecker(AbstractModelChecker):
+    def __init__(self):
+        super(StudyGeometryChecker, self).__init__()
+
+        self._name = _translate("Checker", "Study geometry checker")
+        self._description = _translate("Checker", "Check if exists geometry for each reach of study")
+        self._reachs = []
+
+    def run(self, study):
+        ok = True
+        nerror = 0
+        summary = "ok"
+        status = STATUS.OK
+
+        if study is None:
+            self._status = STATUS.ERROR
+            self._summary = "invalid_study"
+            return False
+
+        river = study.river
+        if river is None:
+            self._status = STATUS.ERROR
+            self._summary = "no_river_found"
+            return False
+
+        edges = list(filter(lambda e: e.is_enable(), river.edges()))
+        if len(edges) == 0:
+            self._status = STATUS.ERROR
+            self._summary = "no_reach_defined"
+            return False
+
+        for edge in edges:
+            if edge.is_enable() and len(edge.reach.profiles) < 3:
+                summary = f"no_geometry_defined"
+                status = STATUS.ERROR
+                ok = False
+                self._reachs.append(edge)
+
+        self._summary = summary
+        self._status = status
+        return ok
+
 
 class DummyOK(AbstractModelChecker):
     def __init__(self):
@@ -44,8 +89,11 @@ class DummyOK(AbstractModelChecker):
         self._description = _translate("Checker", "Dummy ok")
 
     def run(self, study):
+        time.sleep(1)
+
         self._summary = "ok"
         self._status = STATUS.OK
+
         return True
 
 
@@ -57,8 +105,11 @@ class DummyWARNING(AbstractModelChecker):
         self._description = _translate("Checker", "Dummy warning")
 
     def run(self, study):
+        time.sleep(1)
+
         self._summary = "Warning detected"
         self._status = STATUS.WARNING
+
         return True
 
 class DummyERROR(AbstractModelChecker):
@@ -69,6 +120,8 @@ class DummyERROR(AbstractModelChecker):
         self._description = _translate("Checker", "Dummy error")
 
     def run(self, study):
+        time.sleep(1)
+
         self._summary = "Error detected"
         self._status = STATUS.ERROR
         return True
diff --git a/src/Model/Network/Edge.py b/src/Model/Network/Edge.py
index 4c12c8f700f7e7f83a7e1e59318466ca751fa1cb..b0918a1654d76411eee42fb8f3164a102425412b 100644
--- a/src/Model/Network/Edge.py
+++ b/src/Model/Network/Edge.py
@@ -53,6 +53,9 @@ class Edge(object):
     def name(self):
         return self._name if self._name != "" else f"{self.node1.name} -> {self.node2.name}"
 
+    def is_enable(self):
+        return self._enable
+
     def enable(self, enable=True):
         self._enable = enable
         self._status.modified()
diff --git a/src/Model/Study.py b/src/Model/Study.py
index 9ee9e5f1f8bd2dc1ccbab8cc3fcbf815491df818..311217ab54fbcdfeab78b33aac66b5bda4453c32 100644
--- a/src/Model/Study.py
+++ b/src/Model/Study.py
@@ -36,6 +36,7 @@ class Study(Serializable):
     def checkers(cls):
         lst = [
             StudyNetworkReachChecker(),
+            StudyGeometryChecker(),
             DummyOK(),
             DummyWARNING(),
             DummyERROR(),