diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py
index 37b3233909761966bf2b635a99d0b443ef009540..2b29b1f7f89900a8975c420bedf890bf3a771540 100644
--- a/src/Model/Geometry/ProfileXYZ.py
+++ b/src/Model/Geometry/ProfileXYZ.py
@@ -19,6 +19,7 @@
 import logging
 import numpy as np
 from typing import List
+from functools import reduce
 
 from tools import timer
 
@@ -324,6 +325,19 @@ class ProfileXYZ(Profile, SQLSubModel):
                 f"for profile ({self.id}) kp = {self.kp}"
             )
 
+    def has_standard_named_points(self):
+        l, r = reduce(
+            lambda acc, n: (
+                (acc[0] | (n == "rg")),
+                (acc[1] | (n == "rd"))
+            ),
+            map(lambda p: p.name.lower().strip(),
+                self.points),
+            (False, False)
+        )
+
+        return l & r
+
     def add(self):
         """Add a new PointXYZ to profile.
 
@@ -454,8 +468,12 @@ class ProfileXYZ(Profile, SQLSubModel):
             return list(map(lambda s: s - constant, station))
 
     def width_approximation(self):
-        rg = self.get_point_by_name("rg")
-        rd = self.get_point_by_name("rd")
+        if self.has_standard_named_points():
+            rg = self.get_point_by_name("rg")
+            rd = self.get_point_by_name("rd")
+        else:
+            rg = self.points[0]
+            rd = self.points[-1]
 
         return abs(rg.dist(rd))