diff --git a/ee/app/models/ee/group.rb b/ee/app/models/ee/group.rb
index 40111acb180e0221a03efef5513997fd1bfa3524..81d4b5995ce02c3a9ca606d385fa7f5830b45170 100644
--- a/ee/app/models/ee/group.rb
+++ b/ee/app/models/ee/group.rb
@@ -397,7 +397,11 @@ def billable_members_count_with_reactive_cache
     def billable_members_count(requested_hosted_plan = nil)
       billable_ids = billed_user_ids(requested_hosted_plan)
 
-      billable_ids[:user_ids].count
+      if ::Namespaces::FreeUserCap.enforce_preview_or_standard?(self)
+        billable_ids[:user_ids].merge(awaiting_user_ids).count
+      else
+        billable_ids[:user_ids].count
+      end
     end
 
     override :free_plan_members_count
diff --git a/ee/app/models/gitlab_subscription.rb b/ee/app/models/gitlab_subscription.rb
index 7cec39d9390168f95dad64707ce2d8bd616ddece..ac4fe746e514d7cdc677cc6d433b8bd69d4481da 100644
--- a/ee/app/models/gitlab_subscription.rb
+++ b/ee/app/models/gitlab_subscription.rb
@@ -61,7 +61,7 @@ def legacy?
   end
 
   def calculate_seats_in_use
-    namespace.billable_members_count
+    namespace.billed_user_ids[:user_ids].count
   end
 
   # The purpose of max_seats_used is similar to what we do for EE licenses
diff --git a/ee/spec/models/ee/group_spec.rb b/ee/spec/models/ee/group_spec.rb
index 6e101e3df2dbe2ab6278c570f45fbc43ce83185d..6c9041324ff700d2ca5d89d2ca1caf1045fcffe4 100644
--- a/ee/spec/models/ee/group_spec.rb
+++ b/ee/spec/models/ee/group_spec.rb
@@ -1495,6 +1495,28 @@
         end
       end
     end
+
+    context 'for free group' do
+      before do
+        allow(::Namespaces::FreeUserCap).to receive(:enforce_preview_or_standard?).with(group).and_return(free_user_cap_enabled)
+      end
+
+      context 'when free_user_cap is enabled' do
+        let(:free_user_cap_enabled) { true }
+
+        it 'includes awaiting members' do
+          expect(group.billable_members_count).to eq(3)
+        end
+      end
+
+      context 'when free_user_cap is disabled' do
+        let(:free_user_cap_enabled) { false }
+
+        it 'does not include awaiting members' do
+          expect(group.billable_members_count).to eq(2)
+        end
+      end
+    end
   end
 
   describe '#exclude_guests?', :saas do
diff --git a/ee/spec/models/gitlab_subscription_spec.rb b/ee/spec/models/gitlab_subscription_spec.rb
index 7b77e9029fe8f0a87b7c7b1cbf55ab787f5f5e2f..32f61a4c96245c77feb852b29c891b091e80c00d 100644
--- a/ee/spec/models/gitlab_subscription_spec.rb
+++ b/ee/spec/models/gitlab_subscription_spec.rb
@@ -88,6 +88,22 @@
       expect(gitlab_subscription.calculate_seats_in_use).to eq(1)
     end
 
+    context 'with free_user_cap' do
+      before do
+        group.add_developer(user_1)
+        group.add_developer(user_2)
+        create(:group_member, :awaiting, source: group)
+
+        gitlab_subscription.update!(plan_code: 'free')
+        stub_ee_application_setting(should_check_namespace_plan: true)
+      end
+
+      it 'does not count awaiting members' do
+        expect(group.member_count).to eq(3)
+        expect(gitlab_subscription.calculate_seats_in_use).to eq(2)
+      end
+    end
+
     context 'with guest members' do
       before do
         group.add_guest(user_1)