diff --git a/geomagio/algorithm/MetadataAlgorithm.py b/geomagio/algorithm/MetadataAlgorithm.py
index c9970cf664a3a987dc7451712a85cf859771c74b..8cbcea2fe5e87e1647c49f8034eacf00408248ce 100644
--- a/geomagio/algorithm/MetadataAlgorithm.py
+++ b/geomagio/algorithm/MetadataAlgorithm.py
@@ -2,6 +2,7 @@ from pydantic import BaseModel
 from obspy import UTCDateTime, Stream
 from datetime import timedelta
 from enum import Enum
+from typing import Optional
 
 from ..metadata.flag.Flag import Flag
 from ..metadata import Metadata, MetadataFactory, MetadataCategory
@@ -46,7 +47,7 @@ class MetadataAlgorithm(BaseModel):
             return data_factory.get_timeseries(
                 starttime=self.starttime,
                 endtime=self.endtime,
-                add_empty_channels=True,
+                add_empty_channels=False,
             )
         except Exception as e:
             raise ValueError(f"Failed to retrieve data stream from {self.factory}: {e}")
@@ -78,8 +79,8 @@ class MetadataAlgorithm(BaseModel):
             status=status,
         )
 
-    def check_existing_metadata(self, metadata_obj: Metadata) -> str | None:
-        """Check if similar metadata already exists and return existing metadata ID if it does."""
+    def check_existing_metadata(self, metadata_obj: Metadata) -> Optional[Metadata]:
+        """Check if similar metadata already exists and return existing metadata if it does."""
         query_metadata = Metadata(
             category=metadata_obj.category,
             station=metadata_obj.station,
@@ -90,7 +91,7 @@ class MetadataAlgorithm(BaseModel):
         metadata_factory = self._get_metadata_factory()
         prior_metadata = metadata_factory.get_metadata(query=query_metadata)
 
-        return prior_metadata[0].id if prior_metadata else None
+        return prior_metadata if prior_metadata else None
 
     def update_metadata(self, metadata_obj: Metadata) -> Metadata:
         """Update existing metadata."""