diff --git a/extensions/openpower-pels/README.md b/extensions/openpower-pels/README.md
index 1aba263..c38d06d 100644
--- a/extensions/openpower-pels/README.md
+++ b/extensions/openpower-pels/README.md
@@ -45,6 +45,21 @@
 
 Note that TRUE is the only value supported.
 
+#### SEVERITY_DETAIL
+
+This is used when the passed in event log severity determines the PEL
+severity and a more granular PEL severity is needed beyond what the normal
+event log to PEL severity conversion could give.
+
+The syntax is:
+```
+SEVERITY_DETAIL=<SEVERITY_TYPE>
+e.g.
+SEVERITY_DETAIL=SYSTEM_TERM
+```
+Option Supported:
+- SYSTEM_TERM, changes the Severity value from 0x50 to 0x51
+
 #### ESEL
 
 This keyword's data contains a full PEL in string format.  This is how hostboot
diff --git a/extensions/openpower-pels/pel.cpp b/extensions/openpower-pels/pel.cpp
index f66d985..48dff51 100644
--- a/extensions/openpower-pels/pel.cpp
+++ b/extensions/openpower-pels/pel.cpp
@@ -55,7 +55,8 @@
 
     _ph = std::make_unique<PrivateHeader>(regEntry.componentID, obmcLogID,
                                           timestamp);
-    _uh = std::make_unique<UserHeader>(regEntry, severity, dataIface);
+    _uh = std::make_unique<UserHeader>(regEntry, severity, additionalData,
+                                       dataIface);
 
     // Extract any callouts embedded in an FFDC file.
     if (!ffdcFiles.empty())
diff --git a/extensions/openpower-pels/user_header.cpp b/extensions/openpower-pels/user_header.cpp
index 276c506..a7d8023 100644
--- a/extensions/openpower-pels/user_header.cpp
+++ b/extensions/openpower-pels/user_header.cpp
@@ -47,6 +47,7 @@
 
 UserHeader::UserHeader(const message::Entry& entry,
                        phosphor::logging::Entry::Level severity,
+                       const AdditionalData& additionalData,
                        const DataInterfaceBase& dataIface)
 {
     _header.id = static_cast<uint16_t>(SectionID::userHeader);
@@ -88,6 +89,18 @@
         }
     }
 
+    // Convert Critical error (0x50) to Critical Error-System Termination
+    // (0x51), if the AdditionalData is set to SYSTEM_TERM
+    auto sevLevel = additionalData.getValue("SEVERITY_DETAIL");
+    if ((_eventSeverity & 0xF0) == 0x50)
+    {
+        if (sevLevel.value_or("") == "SYSTEM_TERM")
+        {
+            // Change to Critical Error, System Termination
+            _eventSeverity = 0x51;
+        }
+    }
+
     // TODO: ibm-dev/dev/#1144 Handle manufacturing sev & action flags
 
     if (entry.eventType)
@@ -99,7 +112,6 @@
         // There are different default event types for info errors
         // vs non info ones.
         auto sevType = static_cast<SeverityType>(_eventSeverity & 0xF0);
-
         _eventType = (sevType == SeverityType::nonError)
                          ? static_cast<uint8_t>(EventType::miscInformational)
                          : static_cast<uint8_t>(EventType::notApplicable);
diff --git a/extensions/openpower-pels/user_header.hpp b/extensions/openpower-pels/user_header.hpp
index da9be6c..e17d0cf 100644
--- a/extensions/openpower-pels/user_header.hpp
+++ b/extensions/openpower-pels/user_header.hpp
@@ -44,10 +44,13 @@
      *
      * @param[in] entry - The message registry entry for this error
      * @param[in] severity - The OpenBMC event log severity for this error
+     * @param[in] additionalData - The AdditionalData properties in this
+     *                             error log
      * @param[in] dataIface - The DataInterface object
      */
     UserHeader(const message::Entry& entry,
                phosphor::logging::Entry::Level severity,
+               const AdditionalData& additionalData,
                const DataInterfaceBase& dataIface);
 
     /**
