diff --git a/extensions/openpower-pels/pel.cpp b/extensions/openpower-pels/pel.cpp
index de70b53..898dce5 100644
--- a/extensions/openpower-pels/pel.cpp
+++ b/extensions/openpower-pels/pel.cpp
@@ -79,6 +79,12 @@
         const auto& sbeFFDCFiles = sbeFFDCPtr->getSbeFFDC();
         ffdcFiles.insert(ffdcFiles.end(), sbeFFDCFiles.begin(),
                          sbeFFDCFiles.end());
+
+        // update pel priority for spare clock failures
+        if (auto customSeverity = sbeFFDCPtr->getSeverity())
+        {
+            severity = customSeverity.value();
+        }
     }
 #endif
 
diff --git a/extensions/openpower-pels/sbe_ffdc_handler.cpp b/extensions/openpower-pels/sbe_ffdc_handler.cpp
index e90814f..0844e2e 100644
--- a/extensions/openpower-pels/sbe_ffdc_handler.cpp
+++ b/extensions/openpower-pels/sbe_ffdc_handler.cpp
@@ -39,7 +39,8 @@
 
 using namespace phosphor::logging;
 
-SbeFFDC::SbeFFDC(const AdditionalData& aData, const PelFFDC& files)
+SbeFFDC::SbeFFDC(const AdditionalData& aData, const PelFFDC& files) :
+    ffdcType(FFDC_TYPE_NONE)
 {
     log<level::INFO>("SBE FFDC processing requested");
 
@@ -192,6 +193,10 @@
         return;
     }
 
+    // update FFDC type class membeir for hwp specific packet
+    // Assumption SBE FFDC contains only one hwp FFDC packet.
+    ffdcType = ffdc.ffdc_type;
+
     // To store callouts details in json format as per pel expectation.
     json pelJSONFmtCalloutDataList;
     pelJSONFmtCalloutDataList = json::array();
@@ -234,6 +239,17 @@
     paths.push_back(pelDataFile.getPath());
 }
 
+std::optional<LogSeverity> SbeFFDC::getSeverity()
+{
+    if (ffdcType == FFDC_TYPE_SPARE_CLOCK_INFO)
+    {
+        log<level::INFO>(
+            "Found spare clock error, changing severity to informational");
+        return LogSeverity::Informational;
+    }
+    return std::nullopt;
+}
+
 } // namespace sbe
 } // namespace pels
 } // namespace openpower
diff --git a/extensions/openpower-pels/sbe_ffdc_handler.hpp b/extensions/openpower-pels/sbe_ffdc_handler.hpp
index bff206c..5572ff6 100644
--- a/extensions/openpower-pels/sbe_ffdc_handler.hpp
+++ b/extensions/openpower-pels/sbe_ffdc_handler.hpp
@@ -56,6 +56,8 @@
     uint32_t fapiRc;
 } __attribute__((packed)) fapiFfdcBufType;
 
+using LogSeverity = phosphor::logging::Entry::Level;
+
 /** @class SbeFFDC
  *
  * @brief This class provides higher level interface to process SBE ffdc
@@ -128,6 +130,14 @@
         return ffdcFiles;
     }
 
+    /**
+     * @brief Helper function to get severity type
+     *
+     * @return severity type as informational for spare clock
+     *         failure type ffdc. Otherwise null string.
+     */
+    std::optional<LogSeverity> getSeverity();
+
   private:
     /**
      * @brief Helper function to parse SBE FFDC file.
@@ -174,6 +184,11 @@
      * @brief Processor position associated to SBE FFDC
      */
     uint32_t procPos;
+
+    /**
+     * @brief Used to get type of ffdc
+     */
+    FFDC_TYPE ffdcType;
 };
 
 } // namespace sbe
