diff --git a/include/Thresholds.hpp b/include/Thresholds.hpp
index fb266d0..42a441f 100644
--- a/include/Thresholds.hpp
+++ b/include/Thresholds.hpp
@@ -112,8 +112,6 @@
     std::list<TimerPair> timers;
 };
 
-bool isValidLevel(Level lev);
-
 bool parseThresholdsFromConfig(
     const SensorData& sensorData,
     std::vector<thresholds::Threshold>& thresholdVector,
diff --git a/include/sensor.hpp b/include/sensor.hpp
index e966c20..12de959 100644
--- a/include/sensor.hpp
+++ b/include/sensor.hpp
@@ -261,10 +261,7 @@
             {
                 threshold.hysteresis = hysteresisTrigger;
             }
-            if (!thresholds::isValidLevel(threshold.level))
-            {
-                continue;
-            }
+
             std::shared_ptr<sdbusplus::asio::dbus_interface> iface =
                 getThresholdInterface(threshold.level);
 
diff --git a/src/Thresholds.cpp b/src/Thresholds.cpp
index 89269a2..5fa82aa 100644
--- a/src/Thresholds.cpp
+++ b/src/Thresholds.cpp
@@ -44,18 +44,6 @@
     return Direction::ERROR;
 }
 
-bool isValidLevel(Level lev)
-{
-    for (const ThresholdDefinition& prop : thresProp)
-    {
-        if (prop.level == lev)
-        {
-            return true;
-        }
-    }
-    return false;
-}
-
 bool parseThresholdsFromConfig(
     const SensorData& sensorData,
     std::vector<thresholds::Threshold>& thresholdVector,
@@ -214,10 +202,6 @@
 {
     for (const auto& threshold : sensor->thresholds)
     {
-        if (!isValidLevel(threshold.level))
-        {
-            continue;
-        }
         std::shared_ptr<sdbusplus::asio::dbus_interface> interface =
             sensor->getThresholdInterface(threshold.level);
 
@@ -454,11 +438,6 @@
                       thresholds::Level level, thresholds::Direction direction,
                       bool assert)
 {
-    if (!isValidLevel(level))
-    {
-        return;
-    }
-
     std::shared_ptr<sdbusplus::asio::dbus_interface> interface =
         sensor->getThresholdInterface(level);
 
