diff --git a/geomagio/residual/Calculation.py b/geomagio/residual/Calculation.py
index e5a770bf920420130e793390e1e96d15a8c215b9..d615f69e1e6af22059c8ef55b79572f37f8b24ca 100644
--- a/geomagio/residual/Calculation.py
+++ b/geomagio/residual/Calculation.py
@@ -152,6 +152,8 @@ def calculate_D_absolute(
     # for diagnostics
     if average_mark > 180:
         average_mark -= 90
+    if meridian > 180:
+        meridian -= 90
 
     return (
         Absolute(
@@ -165,7 +167,7 @@ def calculate_D_absolute(
         average_mark,
         south_meridian,
         mark_azimuth,
-        (meridian - average_mark),
+        (average_mark - meridian),
     )