diff --git a/src/on_change_threshold.cpp b/src/on_change_threshold.cpp
index 72aedc5..eea8978 100644
--- a/src/on_change_threshold.cpp
+++ b/src/on_change_threshold.cpp
@@ -53,6 +53,12 @@
 void OnChangeThreshold::sensorUpdated(interfaces::Sensor& sensor,
                                       Milliseconds timestamp, double value)
 {
+    if (isFirstReading)
+    {
+        isFirstReading = false;
+        return;
+    }
+
     commit(sensor.getName(), timestamp, value);
 }
 
diff --git a/src/on_change_threshold.hpp b/src/on_change_threshold.hpp
index 80876a2..1d4a4d0 100644
--- a/src/on_change_threshold.hpp
+++ b/src/on_change_threshold.hpp
@@ -33,6 +33,7 @@
     Sensors sensors;
     const std::vector<std::unique_ptr<interfaces::TriggerAction>> actions;
     bool initialized = false;
+    bool isFirstReading = true;
 
     void commit(const std::string&, Milliseconds, double);
 };
diff --git a/tests/src/test_on_change_threshold.cpp b/tests/src/test_on_change_threshold.cpp
index 0c3b301..60697da 100644
--- a/tests/src/test_on_change_threshold.cpp
+++ b/tests/src/test_on_change_threshold.cpp
@@ -64,6 +64,14 @@
     EXPECT_EQ(sut->getThresholdParam(), expected);
 }
 
+TEST_F(TestOnChangeThreshold, firstReadingDoesNoActionCommit)
+{
+    EXPECT_CALL(actionMock, commit(_, _, _)).Times(0);
+
+    sut->initialize();
+    sut->sensorUpdated(*sensorMocks.front(), 0ms, 42);
+}
+
 struct OnChangeParams
 {
     using UpdateParams = std::tuple<size_t, Milliseconds, double>;
@@ -141,6 +149,10 @@
     }
 
     sut->initialize();
+
+    // First reading will be skipped
+    sut->sensorUpdated(*sensorMocks.front(), 0ms, 42);
+
     for (const auto& [index, timestamp, value] : GetParam().updates)
     {
         sut->sensorUpdated(*sensorMocks[index], timestamp, value);
