diff --git a/src/trigger.cpp b/src/trigger.cpp
index f534dbd..f71e515 100644
--- a/src/trigger.cpp
+++ b/src/trigger.cpp
@@ -186,8 +186,8 @@
                 });
 
             dbusIface.register_property_r(
-                "Discrete", isDiscreate(), sdbusplus::vtable::property_::const_,
-                [this](const auto& x) { return isDiscreate(); });
+                "Discrete", isDiscrete(), sdbusplus::vtable::property_::const_,
+                [this](const auto& x) { return isDiscrete(); });
 
             dbusIface.register_property_rw(
                 "Name", name, sdbusplus::vtable::property_::emits_change,
@@ -278,9 +278,13 @@
     });
 }
 
-bool Trigger::isDiscreate() const
+bool Trigger::isDiscrete() const
 {
     const auto labeledThresholds = getLabeledThresholds();
+    if (labeledThresholds.empty())
+    {
+        return true;
+    }
 
     return utils::isFirstElementOfType<std::monostate>(labeledThresholds) ||
            utils::isFirstElementOfType<discrete::LabeledThresholdParam>(
diff --git a/src/trigger.hpp b/src/trigger.hpp
index e636334..c0b2845 100644
--- a/src/trigger.hpp
+++ b/src/trigger.hpp
@@ -48,7 +48,7 @@
   private:
     std::vector<LabeledSensorInfo> getLabeledSensorInfo() const;
     std::vector<LabeledThresholdParam> getLabeledThresholds() const;
-    bool isDiscreate() const;
+    bool isDiscrete() const;
 
     const TriggerId id;
     const sdbusplus::message::object_path path;
diff --git a/tests/src/test_trigger.cpp b/tests/src/test_trigger.cpp
index c2f7774..7764c8d 100644
--- a/tests/src/test_trigger.cpp
+++ b/tests/src/test_trigger.cpp
@@ -443,6 +443,26 @@
                 Eq(persistent));
 }
 
+class TestOnChangeTrigger : public TestTrigger
+{
+  public:
+    TriggerParams onChangeTriggerParams =
+        TriggerParams()
+            .id("DiscreteOnChangeTrigger")
+            .name("My Discrete On Change Trigger")
+            .thresholdParams(std::vector<numeric::LabeledThresholdParam>{});
+
+    void SetUp() override
+    {
+        sut = makeTrigger(onChangeTriggerParams);
+    }
+};
+
+TEST_F(TestOnChangeTrigger, isDiscrete)
+{
+    EXPECT_THAT(getProperty<bool>(sut->getPath(), "Discrete"), Eq(true));
+}
+
 class TestTriggerInitialization : public TestTrigger
 {
   public:
