diff --git a/util/dbus.cpp b/util/dbus.cpp
index f9370d4..ca5ccc4 100644
--- a/util/dbus.cpp
+++ b/util/dbus.cpp
@@ -530,5 +530,34 @@
     return true;
 }
 
+/** @brief Determine if power fault was detected */
+bool powerFault()
+{
+    // power fault based on pgood property
+    int32_t pgood = 0; // assume fault or unknown
+
+    constexpr auto interface = "org.openbmc.control.Power";
+
+    DBusService service;
+    DBusPath path;
+
+    // find a dbus service and object path that implements the interface
+    if (0 == find(interface, path, service))
+    {
+        DBusValue value;
+
+        // chassis pgood is implemented as a property
+        constexpr auto property = "pgood";
+
+        if (0 == getProperty(interface, path, service, property, value))
+        {
+            // return value is a variant, int32 == 1 for pgood OK
+            pgood = std::get<int32_t>(value);
+        }
+    }
+
+    return pgood != 1 ? true : false; // if not pgood then power fault
+}
+
 } // namespace dbus
 } // namespace util
diff --git a/util/dbus.hpp b/util/dbus.hpp
index 39041e2..6c1a554 100644
--- a/util/dbus.hpp
+++ b/util/dbus.hpp
@@ -12,7 +12,7 @@
 namespace dbus
 {
 using DBusValue         = std::variant<std::string, bool, std::vector<uint8_t>,
-                               std::vector<std::string>>;
+                               std::vector<std::string>, int32_t>;
 using DBusProperty      = std::string;
 using DBusInterface     = std::string;
 using DBusService       = std::string;
@@ -179,5 +179,12 @@
  */
 bool getMctpInstance(uint8_t& mctpInstance, uint8_t Eid);
 
+/**
+ * @brief Determine if power fault was detected
+ *
+ * @return true if power fault or unknown, false otherwise
+ */
+bool powerFault();
+
 } // namespace dbus
 } // namespace util
