diff --git a/include/PSUEvent.hpp b/include/PSUEvent.hpp
index aebb58d..e1f895a 100644
--- a/include/PSUEvent.hpp
+++ b/include/PSUEvent.hpp
@@ -37,7 +37,8 @@
                 const std::string& eventName,
                 std::shared_ptr<std::set<std::string>> asserts,
                 std::shared_ptr<std::set<std::string>> combineEvent,
-                std::shared_ptr<bool> state, const std::string& psuName);
+                std::shared_ptr<bool> state, const std::string& psuName,
+                double pollRate);
     ~PSUSubEvent();
 
     std::shared_ptr<sdbusplus::asio::dbus_interface> eventInterface;
@@ -60,14 +61,15 @@
     void beep(const uint8_t& beepPriority);
     static constexpr uint8_t beepPSUFailure = 2;
     boost::asio::posix::stream_descriptor inputDev;
-    static constexpr unsigned int eventPollMs = 1000;
-    static constexpr size_t warnAfterErrorCount = 10;
     std::string psuName;
     std::string groupEventName;
     std::string fanName;
     std::string assertMessage;
     std::string deassertMessage;
     std::shared_ptr<sdbusplus::asio::connection> systemBus;
+    unsigned int eventPollMs = defaultEventPollMs;
+    static constexpr unsigned int defaultEventPollMs = 1000;
+    static constexpr size_t warnAfterErrorCount = 10;
 };
 
 class PSUCombineEvent
@@ -83,7 +85,7 @@
             std::string,
             boost::container::flat_map<std::string, std::vector<std::string>>>&
             groupEventPathList,
-        const std::string& combineEventName);
+        const std::string& combineEventName, double pollRate);
     ~PSUCombineEvent();
 
     sdbusplus::asio::object_server& objServer;
