diff --git a/geomagio/edge/LegacySNCL.py b/geomagio/edge/LegacySNCL.py
index b3330c7c8e03b0de795923ce263223805884b7fa..12999e2acf3266e3c5652cfe87f46e7f7ce460ef 100644
--- a/geomagio/edge/LegacySNCL.py
+++ b/geomagio/edge/LegacySNCL.py
@@ -146,9 +146,7 @@ def _get_channel_end(element: str, data_type: str) -> str:
         channel_middle = "K"
     elif element in ["F", "G"]:
         channel_middle = "S"
-    channel_end = element.split("_")[0]
     if data_type == "variation" or data_type[0] == "R":
-        channel_end = element.split("_")
         if len(channel_end) == 1:
             channel_end = channel_end[0]
             if channel_end == "U":
@@ -157,8 +155,7 @@ def _get_channel_end(element: str, data_type: str) -> str:
                 channel_end = "E"
             elif channel_end == "W":
                 channel_end = "Z"
-        else:
-            channel_end = channel_end[0]
+    channel_end = channel_end[0][0]  # 2nd [0] ensures a single character
     return channel_middle + channel_end
 
 
diff --git a/geomagio/edge/SNCL.py b/geomagio/edge/SNCL.py
index 51aa771282332733679bad0238f6e82f266c423c..6975ef7f2bb4138fed7498ff0a8a7333a10dc0dd 100644
--- a/geomagio/edge/SNCL.py
+++ b/geomagio/edge/SNCL.py
@@ -177,8 +177,8 @@ def _get_channel_end(element: str, data_type: str) -> str:
         channel_middle = "Y"
     elif "_Temp" in element:
         channel_middle = "K"
+    channel_end = element.split("_")
     if data_type == "variation" or data_type[0] == "R":
-        channel_end = element.split("_")
         if len(channel_end) == 1:
             channel_end = channel_end[0]
             if channel_end == "H":
@@ -187,8 +187,7 @@ def _get_channel_end(element: str, data_type: str) -> str:
                 channel_end = "V"
             elif channel_end == "Z":
                 channel_end = "W"
-        else:
-            channel_end = channel_end[0]
+    channel_end = channel_end[0][0]  # 2nd [0] ensures a single character
     return channel_middle + channel_end