diff --git a/geomagio/residual/SpreadsheetAbsolutesFactory.py b/geomagio/residual/SpreadsheetAbsolutesFactory.py
index e9cbc860c6ee48ea0ddeffef11a9d2cfceefc36c..a2daffed71530857ad8d648a37643b39cfffb695 100644
--- a/geomagio/residual/SpreadsheetAbsolutesFactory.py
+++ b/geomagio/residual/SpreadsheetAbsolutesFactory.py
@@ -304,7 +304,11 @@ class SpreadsheetAbsolutesFactory(object):
 
     def __init__(self, base_directory="/Volumes/geomag/pub/observatories"):
         # trim filename off base_directory
-        self.base_directory = os.path.dirname(base_directory)
+        self.base_directory = (
+            base_directory
+            if os.path.isdir(base_directory)
+            else os.path.dirname(base_directory)
+        )
 
     def get_readings(
         self,
diff --git a/geomagio/residual/SpreadsheetSummaryFactory.py b/geomagio/residual/SpreadsheetSummaryFactory.py
index ba3b6c981421e06ce9797f597b7bb408515ab6f5..3ed439325b6b44f5ae00e4fabe401cf9406d6240 100644
--- a/geomagio/residual/SpreadsheetSummaryFactory.py
+++ b/geomagio/residual/SpreadsheetSummaryFactory.py
@@ -40,7 +40,11 @@ class SpreadsheetSummaryFactory(object):
     """Read absolutes from summary spreadsheets"""
 
     def __init__(self, base_directory: str):
-        self.base_directory = os.path.dirname(base_directory)
+        self.base_directory = (
+            base_directory
+            if os.path.isdir(base_directory)
+            else os.path.dirname(base_directory)
+        )
 
     def get_readings(
         self, observatory: str, starttime: UTCDateTime, endtime: UTCDateTime