diff --git a/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/create.rb b/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/create.rb
index 26bb423e4147753accc2d6e9288514b718bf364b..5dd9f666326c09e114abef99148b1cd421604e7d 100644
--- a/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/create.rb
+++ b/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/create.rb
@@ -5,6 +5,7 @@ module GitlabSubscriptions
     module UserAddOnAssignments
       class Create < BaseMutation
         graphql_name 'UserAddOnAssignmentCreate'
+        include ::GitlabSubscriptions::CodeSuggestionsHelper
 
         argument :add_on_purchase_id, ::Types::GlobalIDType[::GitlabSubscriptions::AddOnPurchase],
           required: true, description: 'Global ID of AddOnPurchase to be assigned to.'
@@ -50,9 +51,7 @@ def ready?(add_on_purchase_id:, user_id:)
         attr_reader :add_on_purchase, :user_to_be_assigned
 
         def feature_enabled?
-          Feature.enabled?(:hamilton_seat_management, add_on_purchase&.namespace)
-          # Once the FF for SM is merged we should use it for SM instead of hamilton_seat_management
-          # https://gitlab.com/gitlab-org/gitlab/-/issues/433011
+          code_suggestions_available?(add_on_purchase&.namespace)
         end
 
         def create_user_add_on_service
@@ -64,10 +63,6 @@ def create_user_add_on_service
 
           service_class.new(add_on_purchase: add_on_purchase, user: user_to_be_assigned)
         end
-
-        def gitlab_saas?
-          ::Gitlab::Saas.feature_available?(:code_suggestions)
-        end
       end
     end
   end
diff --git a/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/remove.rb b/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/remove.rb
index c9c42ac50ce3d8928af87cee30f91602646ffb6c..91a2073df733767939ff3f5fe878885ab59469bf 100644
--- a/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/remove.rb
+++ b/ee/app/graphql/mutations/gitlab_subscriptions/user_add_on_assignments/remove.rb
@@ -5,6 +5,7 @@ module GitlabSubscriptions
     module UserAddOnAssignments
       class Remove < BaseMutation
         graphql_name 'UserAddOnAssignmentRemove'
+        include ::GitlabSubscriptions::CodeSuggestionsHelper
 
         argument :add_on_purchase_id, ::Types::GlobalIDType[::GitlabSubscriptions::AddOnPurchase],
           required: true, description: 'Global ID of AddOnPurchase assignment belongs to.'
@@ -54,7 +55,7 @@ def ready?(add_on_purchase_id:, user_id:)
         attr_reader :add_on_purchase, :user_to_be_removed
 
         def feature_enabled?
-          Feature.enabled?(:hamilton_seat_management, add_on_purchase&.namespace)
+          code_suggestions_available?(add_on_purchase&.namespace)
         end
 
         def log_event
diff --git a/ee/app/graphql/resolvers/gitlab_subscriptions/self_managed/add_on_eligible_users_resolver.rb b/ee/app/graphql/resolvers/gitlab_subscriptions/self_managed/add_on_eligible_users_resolver.rb
index 7492215224216fdc7c35b038672a9eb71e6f9fe0..40900647953b5c3baf62bc3e394a86df21a5b7a5 100644
--- a/ee/app/graphql/resolvers/gitlab_subscriptions/self_managed/add_on_eligible_users_resolver.rb
+++ b/ee/app/graphql/resolvers/gitlab_subscriptions/self_managed/add_on_eligible_users_resolver.rb
@@ -33,7 +33,7 @@ def resolve(add_on_type:, search: nil)
         private
 
         def authorize!
-          return unless Gitlab::Saas.feature_available?(:code_suggestions) || !current_user.can_admin_all_resources?
+          return unless gitlab_saas? || !current_user.can_admin_all_resources?
 
           raise_resource_not_available_error!
         end
diff --git a/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb b/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb
index 458ab4f2775e248aa67529eba5e173dfbede7e5b..a91f00cbbe8e7d96ab06f42d02744bfbbe65350b 100644
--- a/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb
+++ b/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb
@@ -2,6 +2,8 @@
 
 module GitlabSubscriptions
   module CodeSuggestionsHelper
+    include GitlabSubscriptions::SubscriptionHelper
+
     def code_suggestions_available?(namespace = nil)
       if gitlab_saas?
         Feature.enabled?(:hamilton_seat_management, namespace)
@@ -9,11 +11,5 @@ def code_suggestions_available?(namespace = nil)
         Feature.enabled?(:self_managed_code_suggestions)
       end
     end
-
-    private
-
-    def gitlab_saas?
-      ::Gitlab::Saas.feature_available?(:code_suggestions)
-    end
   end
 end
diff --git a/ee/app/helpers/gitlab_subscriptions/subscription_helper.rb b/ee/app/helpers/gitlab_subscriptions/subscription_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..c369ddef8c5dc21920e153c944c4b3bb4e7d8219
--- /dev/null
+++ b/ee/app/helpers/gitlab_subscriptions/subscription_helper.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module GitlabSubscriptions
+  module SubscriptionHelper
+    def gitlab_saas?
+      ::Gitlab::Saas.feature_available?(:gitlab_saas_subscriptions)
+    end
+
+    def gitlab_sm?
+      !gitlab_saas?
+    end
+  end
+end
diff --git a/ee/app/models/ee/user.rb b/ee/app/models/ee/user.rb
index 39f87aee7a529f890c3133aced8835e87980da01..ebe12a71d1131ea4bee3c1be326437d2462c82bc 100644
--- a/ee/app/models/ee/user.rb
+++ b/ee/app/models/ee/user.rb
@@ -11,6 +11,7 @@ module User
     include ::Gitlab::Utils::StrongMemoize
 
     include AuditorUserHelper
+    include GitlabSubscriptions::SubscriptionHelper
 
     DEFAULT_ROADMAP_LAYOUT = 'months'
     DEFAULT_GROUP_VIEW = 'details'
@@ -584,7 +585,7 @@ def code_suggestions_add_on_available?
     end
 
     def eligible_for_self_managed_code_suggestions?
-      return false if ::Gitlab::Saas.feature_available?(:code_suggestions)
+      return false if gitlab_saas?
 
       active? && !bot? && !ghost?
     end
diff --git a/ee/config/saas_features/code_suggestions.yml b/ee/config/saas_features/gitlab_saas_subscriptions.yml
similarity index 69%
rename from ee/config/saas_features/code_suggestions.yml
rename to ee/config/saas_features/gitlab_saas_subscriptions.yml
index 771e062a45fa6341d4bf4ed7802b11a576dff7c6..a97edc596b6e8d933deb87b3e0432791c8e73720 100644
--- a/ee/config/saas_features/code_suggestions.yml
+++ b/ee/config/saas_features/gitlab_saas_subscriptions.yml
@@ -1,5 +1,5 @@
 ---
-name: code_suggestions
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137534
+name: gitlab_saas_subscriptions
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138644
 milestone: '16.7'
 group: group::purchase
diff --git a/ee/lib/ee/gitlab/saas.rb b/ee/lib/ee/gitlab/saas.rb
index 336b8a19e44d9ba37e515324f7167e49fa150b25..a369439146ad48de34afa83ffd7850f6ad521881 100644
--- a/ee/lib/ee/gitlab/saas.rb
+++ b/ee/lib/ee/gitlab/saas.rb
@@ -18,7 +18,7 @@ module Saas
           search_indexing_status
           subscriptions_trials
           group_custom_roles
-          code_suggestions
+          gitlab_saas_subscriptions
         ].freeze
 
       CONFIG_FILE_ROOT = 'ee/config/saas_features'
diff --git a/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb b/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb
index 8bf12f8dcf23b6562fbdee9bc8cc027f15938ff6..4c37d1b139a4f280b1b59e7b5a5122c591730f3d 100644
--- a/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb
+++ b/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb
@@ -8,7 +8,7 @@
       let_it_be(:namespace) { build_stubbed(:group) }
 
       before do
-        stub_saas_features(code_suggestions: true)
+        stub_saas_features(gitlab_saas_subscriptions: true)
       end
 
       context 'when SaaS feature flag is globally enabled' do
@@ -40,7 +40,7 @@
 
     context 'when GitLab is self-managed' do
       before do
-        stub_saas_features(code_suggestions: false)
+        stub_saas_features(gitlab_saas_subscriptions: false)
       end
 
       context 'when self-managed feature flag is enabled' do
diff --git a/ee/spec/helpers/gitlab_subscriptions/subscription_helper_spec.rb b/ee/spec/helpers/gitlab_subscriptions/subscription_helper_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..e4b67e53d070ea9a68ac0a379fd932d56f7828a3
--- /dev/null
+++ b/ee/spec/helpers/gitlab_subscriptions/subscription_helper_spec.rb
@@ -0,0 +1,49 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe GitlabSubscriptions::SubscriptionHelper, feature_category: :seat_cost_management do
+  describe '#gitlab_saas?' do
+    context 'when GitLab is SaaS' do
+      before do
+        stub_saas_features(gitlab_saas_subscriptions: true)
+      end
+
+      it 'returns true' do
+        expect(helper.gitlab_saas?).to be_truthy
+      end
+    end
+
+    context 'when GitLab is not SaaS' do
+      before do
+        stub_saas_features(gitlab_saas_subscriptions: false)
+      end
+
+      it 'returns false' do
+        expect(helper.gitlab_saas?).to be_falsy
+      end
+    end
+  end
+
+  describe '#gitlab_sm?' do
+    context 'when GitLab is self-managed' do
+      before do
+        stub_saas_features(gitlab_saas_subscriptions: false)
+      end
+
+      it 'returns true' do
+        expect(helper.gitlab_sm?).to be_truthy
+      end
+    end
+
+    context 'when GitLab is not self-managed' do
+      before do
+        stub_saas_features(gitlab_saas_subscriptions: true)
+      end
+
+      it 'returns false' do
+        expect(helper.gitlab_sm?).to be_falsy
+      end
+    end
+  end
+end
diff --git a/ee/spec/models/ee/user_spec.rb b/ee/spec/models/ee/user_spec.rb
index a469e6563476ba00ea396792319ca675a3ecd829..82476b2746505008140409df637a427e941c48db 100644
--- a/ee/spec/models/ee/user_spec.rb
+++ b/ee/spec/models/ee/user_spec.rb
@@ -2915,7 +2915,7 @@
 
     context 'when on Saas/Gitlab.com' do
       before do
-        stub_saas_features(code_suggestions: true)
+        stub_saas_features(gitlab_saas_subscriptions: true)
       end
 
       it 'returns false by default' do
@@ -2925,7 +2925,7 @@
 
     context 'when on self managed' do
       before do
-        stub_saas_features(code_suggestions: false)
+        stub_saas_features(gitlab_saas_subscriptions: false)
         stub_licensed_features(code_suggestions: true)
       end
 
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb
index 4b81f3f9d40d882adbe251230d3adb5edd143ebf..cea122635cdf98b55798d08792e05b2315b6e7fb 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb
@@ -23,7 +23,7 @@
   end
 
   before do
-    stub_saas_features(code_suggestions: true)
+    stub_saas_features(gitlab_saas_subscriptions: true)
   end
 
   context 'when the user is not eligible to admin add-on purchases on the namespace' do
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/self_managed/add_on_eligible_users_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/self_managed/add_on_eligible_users_spec.rb
index e880ca4d06ead3de302bd59d31b35bda53044b9a..95110716180b0be759f3e761ecc184d5fc4ba20f 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/self_managed/add_on_eligible_users_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/self_managed/add_on_eligible_users_spec.rb
@@ -43,7 +43,7 @@
   describe 'authorization' do
     context 'on a self-managed instance' do
       before do
-        stub_saas_features(code_suggestions: false) # !Gitlab.com?
+        stub_saas_features(gitlab_saas_subscriptions: false)
       end
 
       context 'with owner access' do
@@ -64,7 +64,7 @@
       let_it_be(:current_user) { create(:admin) }
 
       before do
-        stub_saas_features(code_suggestions: true) # Gitlab.com?
+        stub_saas_features(gitlab_saas_subscriptions: true)
       end
 
       include_examples 'not authorized'
@@ -79,7 +79,7 @@
     let_it_be(:active_user_2) { create(:user, name: 'GitlabX') }
 
     before do
-      stub_saas_features(code_suggestions: false)
+      stub_saas_features(gitlab_saas_subscriptions: false)
     end
 
     before_all do
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb
index 8f3f2f4ad72f4c6b074b1cf3acca4db807f675d7..ad5eac8f94274f9a36b5a4eaff480596afa9d740 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb
@@ -55,14 +55,6 @@
   end
 
   shared_examples 'validates the query' do
-    context 'when feature flag hamilton_seat_management is disabled' do
-      before do
-        stub_feature_flags(hamilton_seat_management: false)
-      end
-
-      it_behaves_like 'empty response'
-    end
-
     context 'when current_user is admin' do
       let(:current_user) { create(:admin) }
 
@@ -179,7 +171,7 @@
 
   context 'on Gitlab.com/Saas' do
     before do
-      stub_saas_features(code_suggestions: true)
+      stub_saas_features(gitlab_saas_subscriptions: true)
     end
 
     let_it_be(:current_user) { create(:user) }
@@ -190,6 +182,15 @@
       namespace.add_owner(current_user)
       namespace.add_developer(assignee_user)
     end
+
+    context 'with feature flag disabled' do
+      before do
+        stub_feature_flags(hamilton_seat_management: false)
+      end
+
+      it_behaves_like 'empty response'
+    end
+
     it_behaves_like 'validates the query'
 
     it_behaves_like 'success response'
@@ -287,7 +288,7 @@
 
   context 'on self managed instances' do
     before do
-      stub_saas_features(code_suggestions: false)
+      stub_saas_features(gitlab_saas_subscriptions: false)
     end
 
     let(:current_user) { create(:admin) }
@@ -296,6 +297,14 @@
     it_behaves_like 'validates the query'
     it_behaves_like 'success response'
 
+    context 'with feature flag disabled' do
+      before do
+        stub_feature_flags(self_managed_code_suggestions: false)
+      end
+
+      it_behaves_like 'empty response'
+    end
+
     context 'when current_user is not an admin' do
       let(:current_user) { create(:user) }
 
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb
index 6f2db0a8fce284799d7c6befe19561f55109f1ab..95723e29552297c613857c419727d8c8c7af915b 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb
@@ -108,12 +108,24 @@
 
   it_behaves_like 'success response'
 
-  context 'when feature flag hamilton_seat_management is disabled' do
-    before do
-      stub_feature_flags(hamilton_seat_management: false)
+  context 'when feature flag is disabled' do
+    context 'when SaaS' do
+      before do
+        stub_saas_features(gitlab_saas_subscriptions: true)
+        stub_feature_flags(hamilton_seat_management: false)
+      end
+
+      it_behaves_like 'empty response'
     end
 
-    it_behaves_like 'empty response'
+    context 'when self-managed' do
+      before do
+        stub_saas_features(gitlab_saas_subscriptions: false)
+        stub_feature_flags(self_managed_code_suggestions: false)
+      end
+
+      it_behaves_like 'empty response'
+    end
   end
 
   context 'when current_user is admin' do
diff --git a/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/saas/create_service_spec.rb b/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/saas/create_service_spec.rb
index b2ab310031aa5e3f43de42f3a9e3ab51496c1273..b13f5964730e58a8b8de5cf01beac80c2218c2d9 100644
--- a/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/saas/create_service_spec.rb
+++ b/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/saas/create_service_spec.rb
@@ -17,7 +17,7 @@
   end
 
   before do
-    stub_saas_features(code_suggestions: true)
+    stub_saas_features(gitlab_saas_subscriptions: true)
   end
 
   describe '#execute' do
diff --git a/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/self_managed/create_service_spec.rb b/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/self_managed/create_service_spec.rb
index 71a401a7458490b8d8d78c1a68a26ed615aa3033..2e3144a023bbc17f4c5b79b0c89ffc90f9c65e25 100644
--- a/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/self_managed/create_service_spec.rb
+++ b/ee/spec/services/gitlab_subscriptions/user_add_on_assignments/self_managed/create_service_spec.rb
@@ -13,7 +13,7 @@
   end
 
   before do
-    stub_saas_features(code_suggestions: false)
+    stub_saas_features(gitlab_saas_subscriptions: false)
   end
 
   describe '#execute' do