diff --git a/phosphor-regulators/src/dbus_sensor.hpp b/phosphor-regulators/src/dbus_sensor.hpp
index 4e39c34..1ac9b61 100644
--- a/phosphor-regulators/src/dbus_sensor.hpp
+++ b/phosphor-regulators/src/dbus_sensor.hpp
@@ -24,6 +24,7 @@
 #include <xyz/openbmc_project/State/Decorator/Availability/server.hpp>
 #include <xyz/openbmc_project/State/Decorator/OperationalStatus/server.hpp>
 
+#include <chrono>
 #include <memory>
 #include <string>
 #include <tuple>
@@ -107,6 +108,8 @@
     /**
      * Constructor.
      *
+     * Throws an exception if an error occurs.
+     *
      * @param bus D-Bus bus object
      * @param name sensor name
      * @param type sensor type
@@ -134,6 +137,16 @@
     void disable();
 
     /**
+     * Return the last time this sensor was updated.
+     *
+     * @return last update time
+     */
+    const std::chrono::system_clock::time_point& getLastUpdateTime() const
+    {
+        return lastUpdateTime;
+    }
+
+    /**
      * Return the sensor name.
      *
      * @return sensor name
@@ -277,6 +290,14 @@
                                 double& minValue, double& maxValue);
 
     /**
+     * Set the last time this sensor was updated.
+     */
+    void setLastUpdateTime()
+    {
+        lastUpdateTime = std::chrono::system_clock::now();
+    }
+
+    /**
      * Set the sensor value on D-Bus to NaN.
      */
     void setValueToNaN();
@@ -327,6 +348,11 @@
      * interfaces via templates and multiple inheritance.
      */
     std::unique_ptr<DBusSensorObject> dbusObject{};
+
+    /**
+     * Last time this sensor was updated.
+     */
+    std::chrono::system_clock::time_point lastUpdateTime{};
 };
 
 } // namespace phosphor::power::regulators
