diff --git a/phosphor-regulators/src/actions/action_environment.hpp b/phosphor-regulators/src/actions/action_environment.hpp
index f94345a..ce06aff 100644
--- a/phosphor-regulators/src/actions/action_environment.hpp
+++ b/phosphor-regulators/src/actions/action_environment.hpp
@@ -16,11 +16,13 @@
 #pragma once
 
 #include "id_map.hpp"
+#include "pmbus_utils.hpp"
 
 #include <cstddef> // for size_t
 #include <optional>
 #include <stdexcept>
 #include <string>
+#include <vector>
 
 namespace phosphor::power::regulators
 {
@@ -39,6 +41,7 @@
  *   - current volts value (if any)
  *   - mapping from device and rule IDs to the corresponding objects
  *   - rule call stack depth (to detect infinite recursion)
+ *   - sensor readings
  */
 class ActionEnvironment
 {
@@ -70,6 +73,16 @@
     }
 
     /**
+     * Adds the specified sensor reading to this action environment.
+     *
+     * @param reading sensor reading from a regulator rail
+     */
+    void addSensorReading(const pmbus_utils::SensorReading& reading)
+    {
+        sensorReadings.emplace_back(reading);
+    }
+
+    /**
      * Decrements the rule call stack depth by one.
      *
      * Should be used when a call to a rule returns.  Does nothing if depth is
@@ -131,6 +144,16 @@
     }
 
     /**
+     * Returns the sensor readings stored in this action environment.
+     *
+     * @return sensor readings
+     */
+    const std::vector<pmbus_utils::SensorReading>& getSensorReadings() const
+    {
+        return sensorReadings;
+    }
+
+    /**
      * Returns the current volts value, if set.
      *
      * @return current volts value
@@ -201,6 +224,11 @@
      * Rule call stack depth.
      */
     size_t ruleDepth{0};
+
+    /**
+     * Sensor readings for a single regulator rail.
+     */
+    std::vector<pmbus_utils::SensorReading> sensorReadings{};
 };
 
 } // namespace phosphor::power::regulators
diff --git a/phosphor-regulators/src/pmbus_utils.hpp b/phosphor-regulators/src/pmbus_utils.hpp
index 438ee46..4d4b047 100644
--- a/phosphor-regulators/src/pmbus_utils.hpp
+++ b/phosphor-regulators/src/pmbus_utils.hpp
@@ -142,6 +142,22 @@
 };
 
 /**
+ * This struct represents one sensor reading from a device.
+ */
+struct SensorReading
+{
+    /**
+     * Sensor value type that was read.
+     */
+    SensorValueType type;
+
+    /**
+     * Sensor value that was read.
+     */
+    double value;
+};
+
+/**
  * Parse the one byte value of the VOUT_MODE command.
  *
  * VOUT_MODE contains a 'mode' field that indicates the data format used for
