diff --git a/src/Thresholds.cpp b/src/Thresholds.cpp
index 5466ff5..a74ec4a 100644
--- a/src/Thresholds.cpp
+++ b/src/Thresholds.cpp
@@ -60,7 +60,7 @@
 bool parseThresholdsFromConfig(
     const SensorData& sensorData,
     std::vector<thresholds::Threshold>& thresholdVector,
-    const std::string* matchLabel)
+    const std::string* matchLabel, const int* sensorIndex)
 {
     for (const auto& item : sensorData)
     {
@@ -81,6 +81,25 @@
                 continue;
             }
         }
+
+        if (sensorIndex != nullptr)
+        {
+            auto indexFind = item.second.find("Index");
+
+            // If we're checking for index 1, a missing Index is OK.
+            if ((indexFind == item.second.end()) && (*sensorIndex != 1))
+            {
+                continue;
+            }
+
+            if ((indexFind != item.second.end()) &&
+                (std::visit(VariantToIntVisitor(), indexFind->second) !=
+                 *sensorIndex))
+            {
+                continue;
+            }
+        }
+
         auto directionFind = item.second.find("Direction");
         auto severityFind = item.second.find("Severity");
         auto valueFind = item.second.find("Value");
@@ -88,7 +107,8 @@
             severityFind == item.second.end() ||
             directionFind == item.second.end())
         {
-            std::cerr << "Malformed threshold in configuration\n";
+            std::cerr << "Malformed threshold on configuration interface "
+                      << item.first << "\n";
             return false;
         }
         Level level;
