diff --git a/control/utility.cpp b/control/utility.cpp
new file mode 100644
index 0000000..49a8a13
--- /dev/null
+++ b/control/utility.cpp
@@ -0,0 +1,39 @@
+#include <algorithm>
+#include <stdexcept>
+
+#include "utility.hpp"
+
+namespace phosphor
+{
+namespace fan
+{
+namespace control
+{
+namespace utility
+{
+
+int64_t getMedian(std::vector<int64_t>& values)
+{
+    if (values.empty())
+    {
+        throw std::out_of_range("getMedian(): Empty list of values");
+    }
+    const auto oddIt = values.begin() + values.size() / 2;
+    std::nth_element(values.begin(), oddIt, values.end());
+    auto median = *oddIt;
+    // Determine median for even number of values
+    if (values.size() % 2 == 0)
+    {
+        // Use average of middle 2 values for median
+        const auto evenIt = values.begin() + values.size() / 2 - 1;
+        std::nth_element(values.begin(), evenIt, values.end());
+        median = (median + *evenIt) / 2;
+    }
+
+    return median;
+}
+
+} // namespace utility
+} // namespace control
+} // namespace fan
+} // namespace phosphor
