diff --git a/quic/core/congestion_control/bbr_sender.cc b/quic/core/congestion_control/bbr_sender.cc
index d465690..11dff8c 100644
--- a/quic/core/congestion_control/bbr_sender.cc
+++ b/quic/core/congestion_control/bbr_sender.cc
@@ -253,13 +253,11 @@
   if (config.HasClientRequestedIndependentOption(kBBR3, perspective)) {
     drain_to_target_ = true;
   }
-  if (GetQuicReloadableFlag(quic_bbr_mitigate_overly_large_bandwidth_sample)) {
-    if (config.HasClientRequestedIndependentOption(kBWM3, perspective)) {
-      bytes_lost_multiplier_with_network_parameters_adjusted_ = 3;
-    }
-    if (config.HasClientRequestedIndependentOption(kBWM4, perspective)) {
-      bytes_lost_multiplier_with_network_parameters_adjusted_ = 4;
-    }
+  if (config.HasClientRequestedIndependentOption(kBWM3, perspective)) {
+    bytes_lost_multiplier_with_network_parameters_adjusted_ = 3;
+  }
+  if (config.HasClientRequestedIndependentOption(kBWM4, perspective)) {
+    bytes_lost_multiplier_with_network_parameters_adjusted_ = 4;
   }
   if (config.HasClientRequestedIndependentOption(kBBR4, perspective)) {
     sampler_.SetMaxAckHeightTrackerWindowLength(2 * kBandwidthWindowSize);
@@ -351,12 +349,7 @@
       QuicBandwidth new_pacing_rate =
           QuicBandwidth::FromBytesAndTimeDelta(congestion_window_, GetMinRtt());
       pacing_rate_ = std::max(pacing_rate_, new_pacing_rate);
-      if (GetQuicReloadableFlag(
-              quic_bbr_mitigate_overly_large_bandwidth_sample)) {
-        QUIC_RELOADABLE_FLAG_COUNT_N(
-            quic_bbr_mitigate_overly_large_bandwidth_sample, 1, 4);
-        network_parameters_adjusted_ = true;
-      }
+      network_parameters_adjusted_ = true;
     }
   }
 }
@@ -774,8 +767,6 @@
     // > target_rate and loss has been detected.
     if (pacing_rate_ > target_rate &&
         bytes_lost_with_network_parameters_adjusted_ > 0) {
-      QUIC_RELOADABLE_FLAG_COUNT_N(
-          quic_bbr_mitigate_overly_large_bandwidth_sample, 2, 4);
       if (has_non_app_limited_sample_ ||
           bytes_lost_with_network_parameters_adjusted_ *
                   bytes_lost_multiplier_with_network_parameters_adjusted_ >
@@ -783,13 +774,6 @@
         // We are fairly sure overshoot happens if 1) there is at least one
         // non app-limited bw sample or 2) half of IW gets lost. Slow pacing
         // rate.
-        if (has_non_app_limited_sample_) {
-          QUIC_RELOADABLE_FLAG_COUNT_N(
-              quic_bbr_mitigate_overly_large_bandwidth_sample, 3, 4);
-        } else {
-          QUIC_RELOADABLE_FLAG_COUNT_N(
-              quic_bbr_mitigate_overly_large_bandwidth_sample, 4, 4);
-        }
         // Do not let the pacing rate drop below the connection's initial pacing
         // rate.
         pacing_rate_ =
diff --git a/quic/core/congestion_control/bbr_sender_test.cc b/quic/core/congestion_control/bbr_sender_test.cc
index d1a796a..ce2d969 100644
--- a/quic/core/congestion_control/bbr_sender_test.cc
+++ b/quic/core/congestion_control/bbr_sender_test.cc
@@ -1159,7 +1159,6 @@
 }
 
 TEST_F(BbrSenderTest, MitigateCwndBootstrappingOvershoot) {
-  SetQuicReloadableFlag(quic_bbr_mitigate_overly_large_bandwidth_sample, true);
   CreateDefaultSetup();
   bbr_sender_.AddBytesToTransfer(1 * 1024 * 1024);
 
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 8e0922b..948531a 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -241,8 +241,7 @@
       send_algorithm_->SetInitialCongestionWindowInPackets(50);
     }
   }
-  if (GetQuicReloadableFlag(quic_bbr_mitigate_overly_large_bandwidth_sample) &&
-      config.HasClientRequestedIndependentOption(kBWS5, perspective)) {
+  if (config.HasClientRequestedIndependentOption(kBWS5, perspective)) {
     initial_congestion_window_ = 10;
     send_algorithm_->SetInitialCongestionWindowInPackets(10);
   }
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index 1724a39..a6c8338 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -3223,7 +3223,6 @@
 }
 
 TEST_F(QuicSentPacketManagerTest, IW10ForUpAndDown) {
-  SetQuicReloadableFlag(quic_bbr_mitigate_overly_large_bandwidth_sample, true);
   QuicConfig config;
   QuicTagVector options;
   options.push_back(kBWS5);
