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
diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include
index 18df9ec..e6f08e2 100644
--- a/test/openpower-pels/Makefile.include
+++ b/test/openpower-pels/Makefile.include
@@ -13,6 +13,7 @@
 	registry_test \
 	repository_test \
 	section_header_test \
+	severity_test \
 	stream_test \
 	user_header_test
 
@@ -23,6 +24,7 @@
 	$(top_builddir)/extensions/openpower-pels/pel_values.o \
 	$(top_builddir)/extensions/openpower-pels/private_header.o \
 	$(top_builddir)/extensions/openpower-pels/registry.o \
+	$(top_builddir)/extensions/openpower-pels/severity.o \
 	$(top_builddir)/extensions/openpower-pels/user_header.o
 
 additional_data_test_SOURCES = %reldir%/additional_data_test.cpp
@@ -121,6 +123,14 @@
 	$(top_builddir)/extensions/openpower-pels/pel_values.o
 registry_test_LDFLAGS = $(test_ldflags)
 
+severity_test_SOURCES = %reldir%/severity_test.cpp
+severity_test_CPPFLAGS = $(test_cppflags)
+severity_test_CXXFLAGS = $(test_cxxflags)
+severity_test_LDADD = \
+	$(test_ldflags) \
+	$(top_builddir)/extensions/openpower-pels/severity.o
+severity_test_LDFLAGS = $(test_ldflags)
+
 mtms_test_SOURCES = %reldir%/mtms_test.cpp
 mtms_test_CPPFLAGS = $(test_cppflags)
 mtms_test_CXXFLAGS = $(test_cxxflags)
diff --git a/test/openpower-pels/severity_test.cpp b/test/openpower-pels/severity_test.cpp
new file mode 100644
index 0000000..293196b
--- /dev/null
+++ b/test/openpower-pels/severity_test.cpp
@@ -0,0 +1,18 @@
+#include "extensions/openpower-pels/severity.hpp"
+
+#include <gtest/gtest.h>
+
+using namespace openpower::pels;
+using LogSeverity = phosphor::logging::Entry::Level;
+
+TEST(SeverityTest, SeverityMapTest)
+{
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Informational), 0x00);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Notice), 0x00);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Debug), 0x00);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Warning), 0x20);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Critical), 0x50);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Emergency), 0x40);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Alert), 0x40);
+    ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Error), 0x40);
+}
