diff --git a/quic/core/congestion_control/bandwidth_sampler.cc b/quic/core/congestion_control/bandwidth_sampler.cc
index a4cdc33..8ad5459 100644
--- a/quic/core/congestion_control/bandwidth_sampler.cc
+++ b/quic/core/congestion_control/bandwidth_sampler.cc
@@ -67,7 +67,7 @@
       total_bytes_acked_after_last_ack_event_(0) {
   if (remove_packets_once_per_congestion_event_) {
     QUIC_RELOADABLE_FLAG_COUNT(
-        quic_bw_sampler_remove_packets_once_per_congestion_event);
+        quic_bw_sampler_remove_packets_once_per_congestion_event2);
   }
 }
 
@@ -121,7 +121,7 @@
   }
 
   bool success = connection_state_map_.Emplace(packet_number, sent_time, bytes,
-                                               bytes_in_flight, *this);
+                                               bytes_in_flight + bytes, *this);
   QUIC_BUG_IF(!success) << "BandwidthSampler failed to insert the packet "
                            "into the map, most likely because it's already "
                            "in it.";
diff --git a/quic/core/congestion_control/bandwidth_sampler.h b/quic/core/congestion_control/bandwidth_sampler.h
index c7c9862..d2e0c7b 100644
--- a/quic/core/congestion_control/bandwidth_sampler.h
+++ b/quic/core/congestion_control/bandwidth_sampler.h
@@ -64,7 +64,8 @@
   // Total number of lost bytes at the time the packet was sent.
   QuicByteCount total_bytes_lost;
 
-  // Total number of inflight bytes right before the time the packet was sent.
+  // Total number of inflight bytes at the time the packet was sent.
+  // Includes the packet itself.
   // It should be equal to |total_bytes_sent| minus the sum of
   // |total_bytes_acked|, |total_bytes_lost| and total neutered bytes.
   QuicByteCount bytes_in_flight;
@@ -339,10 +340,10 @@
 
     // Snapshot constructor. Records the current state of the bandwidth
     // sampler.
-    // |prior_bytes_in_flight| is the bytes in flight before the packet is sent.
+    // |bytes_in_flight| is the bytes in flight right after the packet is sent.
     ConnectionStateOnSentPacket(QuicTime sent_time,
                                 QuicByteCount size,
-                                QuicByteCount prior_bytes_in_flight,
+                                QuicByteCount bytes_in_flight,
                                 const BandwidthSampler& sampler)
         : sent_time(sent_time),
           size(size),
@@ -355,7 +356,7 @@
                           sampler.total_bytes_acked_,
                           sampler.total_bytes_lost_,
                           sampler.remove_packets_once_per_congestion_event()
-                              ? prior_bytes_in_flight
+                              ? bytes_in_flight
                               : 0) {}
 
     // Default constructor.  Required to put this structure into
@@ -426,9 +427,9 @@
   MaxAckHeightTracker max_ack_height_tracker_;
   QuicByteCount total_bytes_acked_after_last_ack_event_;
 
-  // Latched value of quic_bw_sampler_remove_packets_once_per_congestion_event.
+  // Latched value of quic_bw_sampler_remove_packets_once_per_congestion_event2.
   const bool remove_packets_once_per_congestion_event_ = GetQuicReloadableFlag(
-      quic_bw_sampler_remove_packets_once_per_congestion_event);
+      quic_bw_sampler_remove_packets_once_per_congestion_event2);
 };
 
 }  // namespace quic
diff --git a/quic/core/congestion_control/bandwidth_sampler_test.cc b/quic/core/congestion_control/bandwidth_sampler_test.cc
index a2b858f..fc51db2 100644
--- a/quic/core/congestion_control/bandwidth_sampler_test.cc
+++ b/quic/core/congestion_control/bandwidth_sampler_test.cc
@@ -193,6 +193,15 @@
       EXPECT_EQ(PacketsToBytes(1), send_time_state.total_bytes_acked);
       EXPECT_EQ(PacketsToBytes(2), send_time_state.total_bytes_lost);
     }
+    if (sampler_.remove_packets_once_per_congestion_event()) {
+      // This equation works because there is no neutered bytes.
+      EXPECT_EQ(send_time_state.total_bytes_sent -
+                    send_time_state.total_bytes_acked -
+                    send_time_state.total_bytes_lost,
+                send_time_state.bytes_in_flight);
+    } else {
+      EXPECT_EQ(0u, send_time_state.bytes_in_flight);
+    }
     clock_.AdvanceTime(time_between_packets);
   }
 }
