diff --git a/phosphor-regulators/src/config_file_parser.cpp b/phosphor-regulators/src/config_file_parser.cpp
index be28fdc..5330f59 100644
--- a/phosphor-regulators/src/config_file_parser.cpp
+++ b/phosphor-regulators/src/config_file_parser.cpp
@@ -738,6 +738,27 @@
     return std::make_unique<OrAction>(std::move(actions));
 }
 
+PhaseFaultType parsePhaseFaultType(const json& element)
+{
+    std::string value = parseString(element);
+    PhaseFaultType type{};
+
+    if (value == "n")
+    {
+        type = PhaseFaultType::n;
+    }
+    else if (value == "n+1")
+    {
+        type = PhaseFaultType::n_plus_1;
+    }
+    else
+    {
+        throw std::invalid_argument{"Element is not a phase fault type"};
+    }
+
+    return type;
+}
+
 std::unique_ptr<PMBusReadSensorAction> parsePMBusReadSensor(const json& element)
 {
     verifyIsObject(element);
@@ -1054,11 +1075,7 @@
 
 SensorType parseSensorType(const json& element)
 {
-    if (!element.is_string())
-    {
-        throw std::invalid_argument{"Element is not a string"};
-    }
-    std::string value = element.get<std::string>();
+    std::string value = parseString(element);
     SensorType type{};
 
     if (value == "iout")
diff --git a/phosphor-regulators/src/config_file_parser.hpp b/phosphor-regulators/src/config_file_parser.hpp
index 1062ced..a1bdd6e 100644
--- a/phosphor-regulators/src/config_file_parser.hpp
+++ b/phosphor-regulators/src/config_file_parser.hpp
@@ -33,6 +33,7 @@
 #include "if_action.hpp"
 #include "not_action.hpp"
 #include "or_action.hpp"
+#include "phase_fault.hpp"
 #include "pmbus_read_sensor_action.hpp"
 #include "pmbus_write_vout_command_action.hpp"
 #include "presence_detection.hpp"
@@ -539,6 +540,18 @@
 std::unique_ptr<OrAction> parseOr(const nlohmann::json& element);
 
 /**
+ * Parses a JSON element containing a PhaseFaultType expressed as a string.
+ *
+ * Returns the corresponding PhaseFaultType enum value.
+ *
+ * Throws an exception if parsing fails.
+ *
+ * @param element JSON element
+ * @return PhaseFaultType enum value
+ */
+PhaseFaultType parsePhaseFaultType(const nlohmann::json& element);
+
+/**
  * Parses a JSON element containing a pmbus_read_sensor action.
  *
  * Returns the corresponding C++ PMBusReadSensorAction object.
