diff --git a/geomagio/Controller.py b/geomagio/Controller.py
index aa71797462eaad81804de46f5722ab2bad01f8e9..6d37c1128589f679677aebbe15a096a12a4c53aa 100644
--- a/geomagio/Controller.py
+++ b/geomagio/Controller.py
@@ -426,9 +426,11 @@ class Controller(object):
             # check for fillable gap at start
             if output_gap[0] == starttime:
                 # found fillable gap at start, recurse to previous interval
-                interval = endtime - starttime
-                recurse_starttime = starttime - interval
-                recurse_endtime = starttime - 1
+                delta = TimeseriesUtility.get_delta_from_interval(output_interval)
+                recurse_starttime = (
+                    starttime - (endtime - starttime) - delta * bool(update_count)
+                )
+                recurse_endtime = starttime - delta
                 self.run_as_update(
                     algorithm=algorithm,
                     observatory=observatory,