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/include/pulse_event_monitor.hpp b/include/pulse_event_monitor.hpp
index 0ad6b38..131dc76 100644
--- a/include/pulse_event_monitor.hpp
+++ b/include/pulse_event_monitor.hpp
@@ -19,8 +19,8 @@
 #include <sel_logger.hpp>
 #include <sensorutils.hpp>
 
-inline static sdbusplus::bus::match_t
-    startPulseEventMonitor(std::shared_ptr<sdbusplus::asio::connection> conn)
+inline static sdbusplus::bus::match_t startPulseEventMonitor(
+    std::shared_ptr<sdbusplus::asio::connection> conn)
 {
     auto pulseEventMatcherCallback = [conn](sdbusplus::message_t& msg) {
         std::string thresholdInterface;
diff --git a/include/sel_logger.hpp b/include/sel_logger.hpp
index a51a01c..2b01fa2 100644
--- a/include/sel_logger.hpp
+++ b/include/sel_logger.hpp
@@ -41,8 +41,8 @@
 #endif
 
 template <typename... T>
-static uint16_t
-    selAddSystemRecord(std::shared_ptr<sdbusplus::asio::connection> conn,
-                       const std::string& message, const std::string& path,
-                       const std::vector<uint8_t>& selData, const bool& assert,
-                       const uint16_t& genId, T&&... metadata);
+static uint16_t selAddSystemRecord(
+    std::shared_ptr<sdbusplus::asio::connection> conn,
+    const std::string& message, const std::string& path,
+    const std::vector<uint8_t>& selData, const bool& assert,
+    const uint16_t& genId, T&&... metadata);
diff --git a/include/watchdog_event_monitor.hpp b/include/watchdog_event_monitor.hpp
index 777ac16..990e25e 100644
--- a/include/watchdog_event_monitor.hpp
+++ b/include/watchdog_event_monitor.hpp
@@ -234,8 +234,8 @@
     }
 }
 
-inline static sdbusplus::bus::match_t
-    startWatchdogEventMonitor(std::shared_ptr<sdbusplus::asio::connection> conn)
+inline static sdbusplus::bus::match_t startWatchdogEventMonitor(
+    std::shared_ptr<sdbusplus::asio::connection> conn)
 {
     auto watchdogEventMatcherCallback = [conn](sdbusplus::message_t& msg) {
         std::string expiredAction;
