diff --git a/common/python/nomadcore/unit_conversion/unit_conversion.py b/common/python/nomadcore/unit_conversion/unit_conversion.py
index dfe24285ab1b0990e3962b6ac89286579fe5bf4b..134cbf1a94356d48876b51307a1f547b1577b3f9 100644
--- a/common/python/nomadcore/unit_conversion/unit_conversion.py
+++ b/common/python/nomadcore/unit_conversion/unit_conversion.py
@@ -12,6 +12,7 @@ import re
 import logging
 from pint import UnitRegistry
 import cachetools
+import numpy as np
 logger = logging.getLogger(__name__)
 # disable warnings from pint
 logging.getLogger("pint").setLevel(logging.ERROR)
@@ -58,7 +59,13 @@ def convert_unit(value, unit, target_unit=None):
     """
     factor = get_multiplicative_factor(unit, target_unit)
     if factor is not None:
-        return value * factor
+        try:
+            if isinstance(value, (list, tuple)):
+                return (np.array(value) * factor).tolist()
+            else:
+                return value * factor
+        except Exception as e:
+            logger.error('could not perform optimized unit conversion', exc_info=e)
 
     # Check that the unit is valid
     unit_def = ureg_cached(unit)