diff --git a/src/ADCSensorMain.cpp b/src/ADCSensorMain.cpp
index 05d586f..d174f64 100644
--- a/src/ADCSensorMain.cpp
+++ b/src/ADCSensorMain.cpp
@@ -238,18 +238,8 @@
                 }
             }
 
-            auto findPollRate = baseConfiguration->second.find("PollRate");
-            float pollRate = pollRateDefault;
-            if (findPollRate != baseConfiguration->second.end())
-            {
-                pollRate =
-                    std::visit(VariantToFloatVisitor(), findPollRate->second);
-                if (pollRate <= 0.0F)
-                {
-                    pollRate = pollRateDefault; // polling time too short
-                }
-            }
-
+            float pollRate =
+                getPollRate(baseConfiguration->second, pollRateDefault);
             PowerState readState = getPowerState(baseConfiguration->second);
 
             auto& sensor = sensors[sensorName];
diff --git a/src/HwmonTempMain.cpp b/src/HwmonTempMain.cpp
index 9ebdfcd..f203127 100644
--- a/src/HwmonTempMain.cpp
+++ b/src/HwmonTempMain.cpp
@@ -385,18 +385,7 @@
                           << " index " << index << "\n";
             }
 
-            auto findPollRate = baseConfigMap.find("PollRate");
-            float pollRate = pollRateDefault;
-            if (findPollRate != baseConfigMap.end())
-            {
-                pollRate =
-                    std::visit(VariantToFloatVisitor(), findPollRate->second);
-                if (pollRate <= 0.0F)
-                {
-                    pollRate = pollRateDefault; // polling time too short
-                }
-            }
-
+            float pollRate = getPollRate(baseConfigMap, pollRateDefault);
             PowerState readState = getPowerState(baseConfigMap);
 
             auto permitSet = getPermitSet(baseConfigMap);
diff --git a/src/IpmbSensor.cpp b/src/IpmbSensor.cpp
index 96ca768..f594ed5 100644
--- a/src/IpmbSensor.cpp
+++ b/src/IpmbSensor.cpp
@@ -523,17 +523,7 @@
                                                 findSmType->second);
                 }
 
-                float pollRate = pollRateDefault;
-                auto findPollRate = cfg.find("PollRate");
-                if (findPollRate != cfg.end())
-                {
-                    pollRate = std::visit(VariantToFloatVisitor(),
-                                          findPollRate->second);
-                    if (pollRate <= 0.0F)
-                    {
-                        pollRate = pollRateDefault;
-                    }
-                }
+                float pollRate = getPollRate(cfg, pollRateDefault);
 
                 /* Default sensor type is "temperature" */
                 std::string sensorTypeName = "temperature";
diff --git a/src/PSUSensorMain.cpp b/src/PSUSensorMain.cpp
index 918b9c6..ab4f6f3 100644
--- a/src/PSUSensorMain.cpp
+++ b/src/PSUSensorMain.cpp
@@ -489,19 +489,7 @@
             }
         }
 
-        /* The poll rate for the sensors */
-        double pollRate = 0.0;
-        auto pollRateObj = baseConfig->find("PollRate");
-
-        if (pollRateObj != baseConfig->end())
-        {
-            pollRate =
-                std::visit(VariantToDoubleVisitor(), pollRateObj->second);
-            if (pollRate <= 0.0)
-            {
-                pollRate = PSUSensor::defaultSensorPoll;
-            }
-        }
+        float pollRate = getPollRate(*baseConfig, PSUSensor::defaultSensorPoll);
 
         /* Find array of labels to be exposed if it is defined in config */
         std::vector<std::string> findLabels;
