diff --git a/erpnext/stock/valuation.py b/erpnext/stock/valuation.py
index 42a122f..6e885ab 100644
--- a/erpnext/stock/valuation.py
+++ b/erpnext/stock/valuation.py
@@ -48,8 +48,8 @@
 
 		return _round_off_if_near_zero(total_qty), _round_off_if_near_zero(total_value)
 
-	def add_stock(self, qty: float, rate: float) -> List[FifoBin]:
-		"""Update fifo queue with new stock and return queue.
+	def add_stock(self, qty: float, rate: float) -> None:
+		"""Update fifo queue with new stock.
 
 			args:
 				qty: new quantity to add
@@ -71,12 +71,11 @@
 					self.queue[-1] = [qty, rate]
 				else:  # new balance qty is still negative, maintain same rate
 					self.queue[-1][QTY] = qty
-		return self.get_state()
 
 	def remove_stock(
 		self, qty: float, rate: float, rate_generator: Callable[[], float]
 	) -> List[FifoBin]:
-		"""Remove stock from the queue and return queue.
+		"""Remove stock from the queue and return popped bins.
 
 		args:
 			qty: quantity to remove
@@ -84,6 +83,7 @@
 			rate_generator: function to be called if queue is not found and rate is required.
 		"""
 
+		consumed_bins = []
 		while qty:
 			if not len(self.queue):
 				# rely on rate generator.
@@ -111,19 +111,22 @@
 			if qty >= fifo_bin[QTY]:
 				# consume current bin
 				qty = _round_off_if_near_zero(qty - fifo_bin[QTY])
-				self.queue.pop(index)
+				to_consume = self.queue.pop(index)
+				consumed_bins.append(list(to_consume))
+
 				if not self.queue and qty:
 					# stock finished, qty still remains to be withdrawn
 					# negative stock, keep in as a negative bin
 					self.queue.append([-qty, rate or fifo_bin[RATE]])
+					consumed_bins.append([qty, rate or fifo_bin[RATE]])
 					break
-
 			else:
 				# qty found in current bin consume it and exit
 				fifo_bin[QTY] = _round_off_if_near_zero(fifo_bin[QTY] - qty)
+				consumed_bins.append([qty, fifo_bin[RATE]])
 				qty = 0
 
-		return self.get_state()
+		return consumed_bins
 
 
 def _round_off_if_near_zero(number: float, precision: int = 7) -> float:
