diff --git a/erpnext/buying/report/requested_items_to_order/requested_items_to_order.py b/erpnext/buying/report/requested_items_to_order/requested_items_to_order.py
index cca01b1..e0cd632 100644
--- a/erpnext/buying/report/requested_items_to_order/requested_items_to_order.py
+++ b/erpnext/buying/report/requested_items_to_order/requested_items_to_order.py
@@ -59,8 +59,11 @@
 			sum(ifnull(mr_item.stock_qty, 0)) as qty,
 			ifnull(mr_item.stock_uom, '') as uom,
 			sum(ifnull(mr_item.ordered_qty, 0)) as ordered_qty,
-			(sum(mr_item.stock_qty) - sum(ifnull(mr_item.ordered_qty, 0))) as qty_to_order,
+			sum(ifnull(mr_item.received_qty, 0)) as received_qty,
+			(sum(ifnull(mr_item.stock_qty, 0)) - sum(ifnull(mr_item.received_qty, 0))) as pending_qty,
+			(sum(ifnull(mr_item.stock_qty, 0)) - sum(ifnull(mr_item.ordered_qty, 0))) as qty_to_order,
 			mr_item.item_name as item_name,
+			mr_item.description as "description",
 			mr.company as company
 		from
 			`tabMaterial Request` mr, `tabMaterial Request Item` mr_item
@@ -78,7 +81,7 @@
 	return data
 
 def update_qty_columns(row_to_update, data_row):
-	fields = ["qty", "ordered_qty", "qty_to_order"]
+	fields = ["qty", "ordered_qty", "received_qty", "pending_qty", "qty_to_order"]
 	for field in fields:
 		row_to_update[field] += flt(data_row[field])
 
@@ -92,7 +95,9 @@
 			item_qty_map[row["item_code"]] = {
 				"qty" : row["qty"],
 				"ordered_qty" : row["ordered_qty"],
-				"qty_to_order" : row["qty_to_order"]
+				"received_qty": row["received_qty"],
+				"pending_qty": row["pending_qty"],
+				"qty_to_order" : row["qty_to_order"],
 			}
 		else:
 			item_entry = item_qty_map[row["item_code"]]
@@ -122,7 +127,7 @@
 	return data, chart_data
 
 def prepare_chart_data(item_data):
-	labels, qty_to_order, ordered_qty = [], [], []
+	labels, qty_to_order, ordered_qty, received_qty, pending_qty = [], [], [], [], []
 
 	if len(item_data) > 30:
 		item_data = dict(list(item_data.items())[:30])
@@ -132,6 +137,8 @@
 		labels.append(row)
 		qty_to_order.append(mr_row["qty_to_order"])
 		ordered_qty.append(mr_row["ordered_qty"])
+		received_qty.append(mr_row["received_qty"])
+		pending_qty.append(mr_row["pending_qty"])
 
 	chart_data = {
 		"data" : {
@@ -144,6 +151,14 @@
 				{
 					'name': _('Ordered Qty'),
 					'values': ordered_qty
+				},
+				{
+					'name': _('Received Qty'),
+					'values': received_qty
+				},
+				{
+					'name': _('Pending Qty'),
+					'values': pending_qty
 				}
 			]
 		},
@@ -193,7 +208,13 @@
 			"width": 100
 		},
 		{
-			"label": _("UOM"),
+			"label": _("Description"),
+			"fieldname": "description",
+			"fieldtype": "Data",
+			"width": 200
+		},
+		{
+			"label": _("Stock UOM"),
 			"fieldname": "uom",
 			"fieldtype": "Data",
 			"width": 100,
@@ -201,7 +222,7 @@
 
 	columns.extend([
 		{
-			"label": _("Qty"),
+			"label": _("Stock Qty"),
 			"fieldname": "qty",
 			"fieldtype": "Float",
 			"width": 120,
@@ -215,6 +236,20 @@
 			"convertible": "qty"
 		},
 		{
+			"label": _("Received Qty"),
+			"fieldname": "received_qty",
+			"fieldtype": "Float",
+			"width": 120,
+			"convertible": "qty"
+		},
+		{
+			"label": _("Pending Qty"),
+			"fieldname": "pending_qty",
+			"fieldtype": "Float",
+			"width": 120,
+			"convertible": "qty"
+		},
+		{
 			"label": _("Qty to Order"),
 			"fieldname": "qty_to_order",
 			"fieldtype": "Float",
