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/phosphor-ldap-config/ldap_config.hpp b/phosphor-ldap-config/ldap_config.hpp
index 7dd8593..d3fa604 100644
--- a/phosphor-ldap-config/ldap_config.hpp
+++ b/phosphor-ldap-config/ldap_config.hpp
@@ -129,8 +129,8 @@
      *  @param[in] value - ldapSearchScope value to be updated.
      *  @returns value of changed ldapSearchScope.
      */
-    ConfigIface::SearchScope
-        ldapSearchScope(ConfigIface::SearchScope value) override;
+    ConfigIface::SearchScope ldapSearchScope(
+        ConfigIface::SearchScope value) override;
 
     /** @brief Update the LDAP Type property.
      *  @param[in] value - ldapType value to be updated.
diff --git a/user_mgr.cpp b/user_mgr.cpp
index 29c19f5..d1c525b 100644
--- a/user_mgr.cpp
+++ b/user_mgr.cpp
@@ -261,8 +261,8 @@
     }
 }
 
-void
-    UserMgr::throwForMaxGrpUserCount(const std::vector<std::string>& groupNames)
+void UserMgr::throwForMaxGrpUserCount(
+    const std::vector<std::string>& groupNames)
 {
     if (std::find(groupNames.begin(), groupNames.end(), "ipmi") !=
         groupNames.end())
diff --git a/user_mgr.hpp b/user_mgr.hpp
index 6addc49..701ab3b 100644
--- a/user_mgr.hpp
+++ b/user_mgr.hpp
@@ -213,8 +213,8 @@
      * @param[in] - output from faillock for the user
      * @return - true / false indicating user locked / un-locked
      **/
-    bool
-        parseFaillockForLockout(const std::vector<std::string>& faillockOutput);
+    bool parseFaillockForLockout(
+        const std::vector<std::string>& faillockOutput);
 
     /** @brief lists user locked state for failed attempt
      *
@@ -347,9 +347,9 @@
      *  @param[in] userName - name of the user
      *  @param[in] groupNames - user groups
      */
-    void
-        throwForUserNameConstraints(const std::string& userName,
-                                    const std::vector<std::string>& groupNames);
+    void throwForUserNameConstraints(
+        const std::string& userName,
+        const std::vector<std::string>& groupNames);
 
     /** @brief check group user count
      *  method to check max group user count, and throw if limit reached
diff --git a/users.hpp b/users.hpp
index 0f3065e..3e0a891 100644
--- a/users.hpp
+++ b/users.hpp
@@ -84,8 +84,8 @@
      *
      *  @param[in] value - User groups
      */
-    std::vector<std::string>
-        userGroups(std::vector<std::string> value) override;
+    std::vector<std::string> userGroups(
+        std::vector<std::string> value) override;
 
     /** @brief list user groups
      *
