diff --git a/power-sequencer/ucd90160.cpp b/power-sequencer/ucd90160.cpp
index 79f2915..7f098f7 100644
--- a/power-sequencer/ucd90160.cpp
+++ b/power-sequencer/ucd90160.cpp
@@ -37,6 +37,8 @@
 const auto DRIVER_NAME = "ucd9000"s;
 constexpr auto NUM_PAGES = 16;
 
+constexpr auto INVENTORY_OBJ_PATH = "/xyz/openbmc_project/inventory";
+
 namespace fs = std::experimental::filesystem;
 using namespace gpio;
 using namespace pmbus;
@@ -376,7 +378,8 @@
         {
             errorFound = true;
 
-            auto part = std::get<ucd90160::gpioCalloutField>(gpio);
+            std::string part{INVENTORY_OBJ_PATH};
+            part = part + std::get<ucd90160::gpioCalloutField>(gpio);
             PartCallout callout{type, part};
 
             if (isPartCalledOut(callout))
@@ -424,7 +427,7 @@
 
     report<power_error::GPUPowerFault>(
             metadata::RAW_STATUS(nv.get().c_str()),
-            metadata::GPU(callout.c_str()));
+            metadata::CALLOUT_INVENTORY_PATH(callout.c_str()));
 }
 
 void UCD90160::gpuOverTempError(const std::string& callout)
@@ -437,7 +440,7 @@
 
     report<power_error::GPUOverTemp>(
             metadata::RAW_STATUS(nv.get().c_str()),
-            metadata::GPU(callout.c_str()));
+            metadata::CALLOUT_INVENTORY_PATH(callout.c_str()));
 }
 
 }
diff --git a/power-sequencer/ucd90160_defs.cpp b/power-sequencer/ucd90160_defs.cpp
index 997650e..5696061 100644
--- a/power-sequencer/ucd90160_defs.cpp
+++ b/power-sequencer/ucd90160_defs.cpp
@@ -71,15 +71,22 @@
                         "/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@"
                         "1e78a000/1e78a400.i2c-bus/i2c-11/11-0060",
                         gpio::Value::low,
-                        [](auto& ucd, const auto& callout) { ucd.gpuPGOODError(callout); },
+                        [](auto& ucd, const auto& callout)
+                                { ucd.gpuPGOODError(callout); },
                         optionFlags::none,
                         GPIODefinitions{
-                            GPIODefinition{8, "GPU0"s},
-                            GPIODefinition{9, "GPU1"s},
-                            GPIODefinition{10, "GPU2"s},
-                            GPIODefinition{11, "GPU3"s},
-                            GPIODefinition{12, "GPU4"s},
-                            GPIODefinition{13, "GPU5"s}}
+                            GPIODefinition{8,
+                                "/system/chassis/motherboard/gv100card0"s},
+                            GPIODefinition{9,
+                                "/system/chassis/motherboard/gv100card1"s},
+                            GPIODefinition{10,
+                                "/system/chassis/motherboard/gv100card2"s},
+                            GPIODefinition{11,
+                                "/system/chassis/motherboard/gv100card3"s},
+                            GPIODefinition{12,
+                                "/system/chassis/motherboard/gv100card4"s},
+                            GPIODefinition{13,
+                                "/system/chassis/motherboard/gv100card5"s}}
                     }},
 
                 {extraAnalysisType::gpuOverTemp,
@@ -87,15 +94,22 @@
                         "/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@"
                         "1e78a000/1e78a400.i2c-bus/i2c-11/11-0060",
                         gpio::Value::low,
-                        [](auto& ucd, const auto& callout) { ucd.gpuOverTempError(callout); },
+                        [](auto& ucd, const auto& callout)
+                                { ucd.gpuOverTempError(callout); },
                         optionFlags::shutdownOnFault,
                         GPIODefinitions{
-                            GPIODefinition{2, "GPU0"s},
-                            GPIODefinition{3, "GPU1"s},
-                            GPIODefinition{4, "GPU2"s},
-                            GPIODefinition{5, "GPU3"s},
-                            GPIODefinition{6, "GPU4"s},
-                            GPIODefinition{7, "GPU5"s}}
+                            GPIODefinition{2,
+                                "/system/chassis/motherboard/gv100card0"s},
+                            GPIODefinition{3,
+                                "/system/chassis/motherboard/gv100card1"s},
+                            GPIODefinition{4,
+                                "/system/chassis/motherboard/gv100card2"s},
+                            GPIODefinition{5,
+                                "/system/chassis/motherboard/gv100card3"s},
+                            GPIODefinition{6,
+                                "/system/chassis/motherboard/gv100card4"s},
+                            GPIODefinition{7,
+                                "/system/chassis/motherboard/gv100card5"s}}
                     }}
             }
         }
