diff --git a/geomagio/processing/obsrio.py b/geomagio/processing/obsrio.py
index 9a761e58c926f683190665a4e3cc456dad8b52f2..b4510ffe18dc96ac301b11afa1edd5b7ac763922 100644
--- a/geomagio/processing/obsrio.py
+++ b/geomagio/processing/obsrio.py
@@ -57,7 +57,7 @@ def obsrio_filter(
                 realtime_interval=realtime_interval,
                 update_limit=update_limit,
             )
-        elif interval == "days":
+        elif interval == "day":
             obsrio_day(
                 observatory=observatory,
                 input_factory=input_factory,
@@ -138,11 +138,12 @@ def obsrio_day(
 ):
     """Filter 1 second edge H,E,Z,F to 1 day miniseed U,V,W,F."""
     starttime, endtime = get_realtime_interval(realtime_interval)
-    # filter 10Hz U,V,W to H,E,Z
     controller = Controller(
-        inputFactory=input_factory or get_edge_factory(data_type="variation"),
+        inputFactory=input_factory
+        or get_edge_factory(data_type="variation", interval="minute"),
         inputInterval="minute",
-        outputFactory=output_factory or get_miniseed_factory(data_type="variation"),
+        outputFactory=output_factory
+        or get_miniseed_factory(data_type="variation", interval="day"),
         outputInterval="day",
     )
     renames = {"H": "U", "E": "V", "Z": "W", "F": "F"}
@@ -176,11 +177,12 @@ def obsrio_hour(
 ):
     """Filter 1 second edge H,E,Z,F to 1 hour miniseed U,V,W,F."""
     starttime, endtime = get_realtime_interval(realtime_interval)
-    # filter 10Hz U,V,W to H,E,Z
     controller = Controller(
-        inputFactory=input_factory or get_edge_factory(data_type="variation"),
+        inputFactory=input_factory
+        or get_edge_factory(data_type="variation", interval="minute"),
         inputInterval="minute",
-        outputFactory=output_factory or get_miniseed_factory(data_type="variation"),
+        outputFactory=output_factory
+        or get_miniseed_factory(data_type="variation", interval="hour"),
         outputInterval="hour",
     )
     renames = {"H": "U", "E": "V", "Z": "W", "F": "F"}
@@ -219,9 +221,11 @@ def obsrio_minute(
     """
     starttime, endtime = get_realtime_interval(realtime_interval)
     controller = Controller(
-        inputFactory=input_factory or get_edge_factory(data_type="variation"),
+        inputFactory=input_factory
+        or get_edge_factory(data_type="variation", interval="second"),
         inputInterval="second",
-        outputFactory=output_factory or get_edge_factory(data_type="variation"),
+        outputFactory=output_factory
+        or get_edge_factory(data_type="variation", interval="minute"),
         outputInterval="minute",
     )
     for channel in ["H", "E", "Z", "F"]:
@@ -281,9 +285,11 @@ def obsrio_temperatures(
     """Filter temperatures 1Hz miniseed (LK1-4) to 1 minute legacy (UK1-4)."""
     starttime, endtime = get_realtime_interval(realtime_interval)
     controller = Controller(
-        inputFactory=input_factory or get_miniseed_factory(data_type="variation"),
+        inputFactory=input_factory
+        or get_miniseed_factory(data_type="variation", interval="second"),
         inputInterval="second",
-        outputFactory=output_factory or get_edge_factory(data_type="variation"),
+        outputFactory=output_factory
+        or get_edge_factory(data_type="variation", interval="minute"),
         outputInterval="minute",
     )
     renames = {"LK1": "UK1", "LK2": "UK2", "LK3": "UK3", "LK4": "UK4"}
@@ -317,11 +323,12 @@ def obsrio_tenhertz(
 ):
     """Filter 10Hz miniseed U,V,W to 1Hz legacy H,E,Z."""
     starttime, endtime = get_realtime_interval(realtime_interval)
-    # filter 10Hz U,V,W to H,E,Z
     controller = Controller(
-        inputFactory=input_factory or get_miniseed_factory(data_type="variation"),
+        inputFactory=input_factory
+        or get_miniseed_factory(data_type="variation", interval="tenhertz"),
         inputInterval="tenhertz",
-        outputFactory=output_factory or get_edge_factory(data_type="variation"),
+        outputFactory=output_factory
+        or get_edge_factory(data_type="variation", interval="second"),
         outputInterval="second",
     )
     renames = {"U": "H", "V": "E", "W": "Z"}