diff --git a/extensions/openpower-pels/openpower-pels.mk b/extensions/openpower-pels/openpower-pels.mk
index aa69a2e..89143b2 100644
--- a/extensions/openpower-pels/openpower-pels.mk
+++ b/extensions/openpower-pels/openpower-pels.mk
@@ -12,4 +12,5 @@
 	extensions/openpower-pels/private_header.cpp \
 	extensions/openpower-pels/registry.cpp \
 	extensions/openpower-pels/repository.cpp \
+	extensions/openpower-pels/severity.cpp \
 	extensions/openpower-pels/user_header.cpp
diff --git a/extensions/openpower-pels/severity.cpp b/extensions/openpower-pels/severity.cpp
new file mode 100644
index 0000000..1911c12
--- /dev/null
+++ b/extensions/openpower-pels/severity.cpp
@@ -0,0 +1,54 @@
+#include "severity.hpp"
+
+namespace openpower
+{
+namespace pels
+{
+
+using LogSeverity = phosphor::logging::Entry::Level;
+
+/**
+ * @brief The major types of severity values, based on the
+ *        the left nibble of the severity value.
+ */
+enum class PELSeverityType : uint8_t
+{
+    nonError = 0x00,
+    recovered = 0x10,
+    predictive = 0x20,
+    unrecoverable = 0x40,
+    critical = 0x50,
+    diagnostic = 0x60,
+    symptom = 0x70
+};
+
+uint8_t convertOBMCSeverityToPEL(LogSeverity severity)
+{
+    uint8_t pelSeverity = static_cast<uint8_t>(PELSeverityType::unrecoverable);
+    switch (severity)
+    {
+        case (LogSeverity::Notice):
+        case (LogSeverity::Informational):
+        case (LogSeverity::Debug):
+            pelSeverity = static_cast<uint8_t>(PELSeverityType::nonError);
+            break;
+
+        case (LogSeverity::Warning):
+            pelSeverity = static_cast<uint8_t>(PELSeverityType::predictive);
+            break;
+
+        case (LogSeverity::Critical):
+            pelSeverity = static_cast<uint8_t>(PELSeverityType::critical);
+            break;
+
+        case (LogSeverity::Emergency):
+        case (LogSeverity::Alert):
+        case (LogSeverity::Error):
+            pelSeverity = static_cast<uint8_t>(PELSeverityType::unrecoverable);
+            break;
+    }
+
+    return pelSeverity;
+}
+} // namespace pels
+} // namespace openpower
diff --git a/extensions/openpower-pels/severity.hpp b/extensions/openpower-pels/severity.hpp
new file mode 100644
index 0000000..f2b9921
--- /dev/null
+++ b/extensions/openpower-pels/severity.hpp
@@ -0,0 +1,20 @@
+#pragma once
+
+#include "elog_entry.hpp"
+
+namespace openpower
+{
+namespace pels
+{
+
+/**
+ * @brief Convert an OpenBMC event log severity to a PEL severity
+ *
+ * @param[in] severity - The OpenBMC event log severity
+ *
+ * @return uint8_t - The PEL severity value
+ */
+uint8_t convertOBMCSeverityToPEL(phosphor::logging::Entry::Level severity);
+
+} // namespace pels
+} // namespace openpower
