diff --git a/redfish-core/lib/pcie.hpp b/redfish-core/lib/pcie.hpp
index b5c6c15..9dee9d3 100644
--- a/redfish-core/lib/pcie.hpp
+++ b/redfish-core/lib/pcie.hpp
@@ -142,6 +142,33 @@
 }
 
 inline void
+    getPCIeDeviceHealth(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+                        const std::string& pcieDevicePath,
+                        const std::string& service)
+{
+    sdbusplus::asio::getProperty<bool>(
+        *crow::connections::systemBus, service, pcieDevicePath,
+        "xyz.openbmc_project.State.Decorator.OperationalStatus", "Functional",
+        [asyncResp](const boost::system::error_code& ec, const bool value) {
+        if (ec)
+        {
+            if (ec.value() != EBADR)
+            {
+                BMCWEB_LOG_ERROR << "DBUS response error for Health "
+                                 << ec.value();
+                messages::internalError(asyncResp->res);
+            }
+            return;
+        }
+
+        if (!value)
+        {
+            asyncResp->res.jsonValue["Status"]["Health"] = "Critical";
+        }
+        });
+}
+
+inline void
     getPCIeDeviceState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
                        const std::string& pcieDevicePath,
                        const std::string& service)
@@ -323,6 +350,7 @@
     asyncResp->res.jsonValue["Name"] = "PCIe Device";
     asyncResp->res.jsonValue["Id"] = pcieDeviceId;
     asyncResp->res.jsonValue["Status"]["State"] = "Enabled";
+    asyncResp->res.jsonValue["Status"]["Health"] = "OK";
 }
 
 inline void
@@ -349,6 +377,7 @@
         addPCIeDeviceCommonProperties(asyncResp, pcieDeviceId);
         getPCIeDeviceAsset(asyncResp, pcieDevicePath, service);
         getPCIeDeviceState(asyncResp, pcieDevicePath, service);
+        getPCIeDeviceHealth(asyncResp, pcieDevicePath, service);
         getPCIeDeviceProperties(
             asyncResp, pcieDevicePath, service,
             [asyncResp, pcieDeviceId](
