diff --git a/.clang-format b/.clang-format
index a75a2c2..e5530e6 100644
--- a/.clang-format
+++ b/.clang-format
@@ -104,7 +104,7 @@
 PenaltyBreakString: 1000
 PenaltyBreakTemplateDeclaration: 10
 PenaltyExcessCharacter: 1000000
-PenaltyReturnTypeOnItsOwnLine: 60
+PenaltyReturnTypeOnItsOwnLine: 150
 PenaltyIndentedWhitespace: 1
 PointerAlignment: Left
 QualifierAlignment: Left
diff --git a/fault-monitor/operational-status-monitor.cpp b/fault-monitor/operational-status-monitor.cpp
index fb0ddad..2a10812 100644
--- a/fault-monitor/operational-status-monitor.cpp
+++ b/fault-monitor/operational-status-monitor.cpp
@@ -55,8 +55,8 @@
     }
 }
 
-std::vector<std::string>
-    Monitor::getLedGroupPaths(const std::string& inventoryPath)
+std::vector<std::string> Monitor::getLedGroupPaths(
+    const std::string& inventoryPath)
 {
     // Get endpoints from fType
     std::string faultLedAssociation = inventoryPath + "/fault_identifying";
diff --git a/fault-monitor/operational-status-monitor.hpp b/fault-monitor/operational-status-monitor.hpp
index 65d3d9b..a4a6d74 100644
--- a/fault-monitor/operational-status-monitor.hpp
+++ b/fault-monitor/operational-status-monitor.hpp
@@ -79,8 +79,8 @@
      *
      * @return std::vector<std::string> - Vector of LED Group D-Bus object paths
      */
-    static std::vector<std::string>
-        getLedGroupPaths(const std::string& inventoryPath);
+    static std::vector<std::string> getLedGroupPaths(
+        const std::string& inventoryPath);
 
     /**
      * @brief Update the Asserted property of the LED Group Manager.
diff --git a/manager/config-validator.cpp b/manager/config-validator.cpp
index 05b0157..825cee8 100644
--- a/manager/config-validator.cpp
+++ b/manager/config-validator.cpp
@@ -105,8 +105,8 @@
     }
 }
 
-static void
-    validateConfigV1ForLedPriority(const phosphor::led::GroupMap& ledMap)
+static void validateConfigV1ForLedPriority(
+    const phosphor::led::GroupMap& ledMap)
 {
     PriorityMap priorityMap{};
     for (const auto& [groupName, group] : ledMap)
@@ -137,8 +137,8 @@
     }
 }
 
-static void
-    validateConfigV1ForGroupPriority(const phosphor::led::GroupMap& ledMap)
+static void validateConfigV1ForGroupPriority(
+    const phosphor::led::GroupMap& ledMap)
 {
     std::set<int> groupPriorities;
     for (const auto& [_, group] : ledMap)
diff --git a/manager/manager.cpp b/manager/manager.cpp
index 325caa3..b571546 100644
--- a/manager/manager.cpp
+++ b/manager/manager.cpp
@@ -74,8 +74,8 @@
 }
 
 // create the resulting new map from all currently asserted groups
-std::map<LedName, Layout::LedAction>
-    Manager::getNewMap(std::set<const Layout::GroupLayout*> assertedGroups)
+std::map<LedName, Layout::LedAction> Manager::getNewMap(
+    std::set<const Layout::GroupLayout*> assertedGroups)
 {
     std::map<LedName, Layout::LedAction> newState;
 
