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/analyzer/ras-data/ras-data-parser.cpp b/analyzer/ras-data/ras-data-parser.cpp
index 023559f..1ca9a71 100644
--- a/analyzer/ras-data/ras-data-parser.cpp
+++ b/analyzer/ras-data/ras-data-parser.cpp
@@ -13,8 +13,8 @@
 {
 //------------------------------------------------------------------------------
 
-std::shared_ptr<Resolution>
-    RasDataParser::getResolution(const libhei::Signature& i_signature)
+std::shared_ptr<Resolution> RasDataParser::getResolution(
+    const libhei::Signature& i_signature)
 {
     nlohmann::json data;
 
@@ -176,8 +176,8 @@
 
 //------------------------------------------------------------------------------
 
-unsigned int
-    RasDataParser::getVersion(const libhei::Signature& i_signature) const
+unsigned int RasDataParser::getVersion(
+    const libhei::Signature& i_signature) const
 {
     unsigned int o_version = 0;
 
diff --git a/analyzer/ras-data/ras-data-parser.hpp b/analyzer/ras-data/ras-data-parser.hpp
index d81fbe6..321d47b 100644
--- a/analyzer/ras-data/ras-data-parser.hpp
+++ b/analyzer/ras-data/ras-data-parser.hpp
@@ -48,8 +48,8 @@
      *        signature.
      * @param i_signature The target error signature.
      */
-    std::shared_ptr<Resolution>
-        getResolution(const libhei::Signature& i_signature);
+    std::shared_ptr<Resolution> getResolution(
+        const libhei::Signature& i_signature);
 
     /**
      * @brief Initializes the signature list within the input isolation data
@@ -95,8 +95,8 @@
      * @param  i_name The name of the target bus.
      * @return A tuple containing the bus type and unit path.
      */
-    std::tuple<callout::BusType, std::string>
-        parseBus(const nlohmann::json& i_data, const std::string& i_name);
+    std::tuple<callout::BusType, std::string> parseBus(
+        const nlohmann::json& i_data, const std::string& i_name);
 
     /**
      * @brief  Parses an action in the given data file and returns the
diff --git a/attn/attn_logging.cpp b/attn/attn_logging.cpp
index a2ee0e3..9fa9ae2 100644
--- a/attn/attn_logging.cpp
+++ b/attn/attn_logging.cpp
@@ -26,8 +26,8 @@
  * @param   files - FFDC files
  * @return  vector of FFDCTuple objects
  */
-std::vector<FFDCTuple>
-    createFFDCTuples(const std::vector<util::FFDCFile>& files)
+std::vector<FFDCTuple> createFFDCTuples(
+    const std::vector<util::FFDCFile>& files)
 {
     std::vector<FFDCTuple> ffdcTuples{};
     util::transformFFDC(files, ffdcTuples);
@@ -71,8 +71,8 @@
  * @param   i_buffer - raw data (if creating raw dump ffdc entry in log)
  * @return  vector of FFDCFile objects
  */
-std::vector<util::FFDCFile>
-    createFFDCFiles(char* i_buffer = nullptr, size_t i_size = 0)
+std::vector<util::FFDCFile> createFFDCFiles(char* i_buffer = nullptr,
+                                            size_t i_size = 0)
 {
     std::vector<util::FFDCFile> files{};
 
