@@ -9,11 +9,11 @@ class Org
 
       private
 
-      def build_model(org_name:, joined_users: 0, created_plans: 0)
+      def build_model(org_name:, total_users: 0, total_plans: 0)
         {
           org_name: org_name,
-          joined_users: joined_users,
-          created_plans: created_plans
+          total_users: total_users,
+          total_plans: total_plans
         }
       end
 
class Org
  class TotalCountStatService
    class << self
      def call
        total = build_from_joined_user
        build_from_created_plan(total)
        total.values
      end

      private

      def build_model(org_name:, joined_users: 0, created_plans: 0)
        {
          org_name: org_name,
          joined_users: joined_users,
          created_plans: created_plans
        }
      end

      def reducer_body(acc, count, key_target)
        org_name = count[:org_name]
        count = count[:count]

        if acc[org_name].present?
          acc[org_name][key_target] = count
        else
          args = { org_name: org_name }
          args[key_target] = count
          acc[org_name] = build_model(args)
        end

        acc
      end

      def build_from_joined_user(total = {})
        joined_user_count = Org::TotalCountJoinedUserService.call
        joined_user_count.reduce(total) do |acc, count|
          reducer_body(acc, count, :joined_users)
        end
      end

      def build_from_created_plan(total = {})
        created_plan_count = Org::TotalCountCreatedPlanService.call
        created_plan_count.reduce(total) do |acc, count|
          reducer_body(acc, count, :created_plans)
        end
      end
    end
  end
end

yes, these names are much clearer