diff --git a/sensorhandler.cpp b/sensorhandler.cpp
index ee62e17..609fdfd 100644
--- a/sensorhandler.cpp
+++ b/sensorhandler.cpp
@@ -619,8 +619,10 @@
                                                      info.sensorPath,
                                                      warningThreshIntf);
 
-    double warnLow = warnThresholds["WarningLow"].get<int64_t>();
-    double warnHigh = warnThresholds["WarningHigh"].get<int64_t>();
+    double warnLow = mapbox::util::apply_visitor(ipmi::VariantToDoubleVisitor(),
+                                                 warnThresholds["WarningLow"]);
+    double warnHigh = mapbox::util::apply_visitor(
+        ipmi::VariantToDoubleVisitor(), warnThresholds["WarningHigh"]);
 
     if (warnLow != 0)
     {
@@ -644,8 +646,10 @@
                                                      service,
                                                      info.sensorPath,
                                                      criticalThreshIntf);
-    double critLow = critThresholds["CriticalLow"].get<int64_t>();
-    double critHigh = critThresholds["CriticalHigh"].get<int64_t>();
+    double critLow = mapbox::util::apply_visitor(ipmi::VariantToDoubleVisitor(),
+                                                 critThresholds["CriticalLow"]);
+    double critHigh = mapbox::util::apply_visitor(
+        ipmi::VariantToDoubleVisitor(), critThresholds["CriticalHigh"]);
 
     if (critLow != 0)
     {
diff --git a/utils.hpp b/utils.hpp
index 75a3252..535ea66 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -208,6 +208,27 @@
                            const std::string& path,
                            InterfaceList&& interfaces);
 
+/** @struct VariantToDoubleVisitor
+ *  @brief Visitor to convert variants to doubles
+ *  @details Performs a static cast on the underlying type
+ */
+struct VariantToDoubleVisitor
+{
+    template <typename T>
+    std::enable_if_t<std::is_arithmetic<T>::value, double>
+    operator()(const T &t) const
+    {
+        return static_cast<double>(t);
+    }
+
+    template <typename T>
+    std::enable_if_t<!std::is_arithmetic<T>::value, double>
+    operator()(const T &t) const
+    {
+        throw std::invalid_argument("Cannot translate type to double");
+    }
+};
+
 namespace method_no_args
 {
 
