diff --git a/erpnext/selling/report/sales_analytics/sales_analytics.js b/erpnext/selling/report/sales_analytics/sales_analytics.js
index 718f29c..7dc7c75 100644
--- a/erpnext/selling/report/sales_analytics/sales_analytics.js
+++ b/erpnext/selling/report/sales_analytics/sales_analytics.js
@@ -73,7 +73,8 @@
 			events: {
 				onCheckRow: function(data) {
 					row_name = data[2].content;
-					row_values = data.slice(4).map(function (column) {
+					length = data.length
+					row_values = data.slice(4,length-1).map(function (column) {
 						return column.content;
 					})
 					entry = {
@@ -102,12 +103,12 @@
 						labels: raw_data.labels,
 						datasets: new_datasets
 					}
-					
+
 					setTimeout(() => {
 						frappe.query_report.chart.update(new_data)
 					},200)
-					
-					
+
+
 					setTimeout(() => {
 						frappe.query_report.chart.draw(true);
 					}, 800)
diff --git a/erpnext/selling/report/sales_analytics/sales_analytics.py b/erpnext/selling/report/sales_analytics/sales_analytics.py
index 2cc2f70..8d99a9b 100644
--- a/erpnext/selling/report/sales_analytics/sales_analytics.py
+++ b/erpnext/selling/report/sales_analytics/sales_analytics.py
@@ -166,7 +166,7 @@
 		for entity, period_data in iteritems(self.entity_periodic_data):
 			row = {
 				"entity": entity,
-				"entity_name": self.entity_names.get(entity) 
+				"entity_name": self.entity_names.get(entity)
 			}
 			total = 0
 			for dummy, end_date in self.periodic_daterange:
@@ -177,7 +177,7 @@
 
 			row["total"] = total
 			self.data.append(row)
-	
+
 	def get_rows_by_group(self):
 		self.get_periodic_data()
 		out = []
@@ -185,7 +185,7 @@
 		for d in reversed(self.group_entries):
 			row = {
 				"entity": d.name,
-				"indent": self.depth_map.get(d.name) 
+				"indent": self.depth_map.get(d.name)
 			}
 			total = 0
 			for dummy, end_date in self.periodic_daterange:
@@ -275,7 +275,8 @@
 		self.parent_child_map = frappe._dict(frappe.db.sql(""" select name, supplier_group from `tabSupplier`"""))
 
 	def get_chart_data(self):
-		labels = [d.get("label") for d in self.columns[2:]]
+		length = len(self.columns)
+		labels = [d.get("label") for d in self.columns[2:length-1]]
 		self.chart = {
 			"data": {
 				'labels': labels,
diff --git a/erpnext/stock/report/stock_analytics/stock_analytics.js b/erpnext/stock/report/stock_analytics/stock_analytics.js
index 6010ea9..bebc84e 100644
--- a/erpnext/stock/report/stock_analytics/stock_analytics.js
+++ b/erpnext/stock/report/stock_analytics/stock_analytics.js
@@ -88,10 +88,9 @@
 			events: {
 				onCheckRow: function(data) {
 					row_name = data[2].content;
-					row_values = data.slice(6).map(function (column) {
+					row_values = data.slice(7).map(function (column) {
 						return column.content;
 					})
-
 					entry  = {
 						'name':row_name,
 						'values':row_values
@@ -118,12 +117,12 @@
 						labels: raw_data.labels,
 						datasets: new_datasets
 					}
-					
+
 					setTimeout(() => {
 						frappe.query_report.chart.update(new_data)
 					},200)
-					
-					
+
+
 					setTimeout(() => {
 						frappe.query_report.chart.draw(true);
 					}, 800)
diff --git a/erpnext/stock/report/stock_analytics/stock_analytics.py b/erpnext/stock/report/stock_analytics/stock_analytics.py
index 5a8a672..dad8be1 100644
--- a/erpnext/stock/report/stock_analytics/stock_analytics.py
+++ b/erpnext/stock/report/stock_analytics/stock_analytics.py
@@ -167,13 +167,11 @@
 	return data
 
 def get_chart_data(columns):
-	labels = [d.get("label") for d in columns[4:]]
+	labels = [d.get("label") for d in columns[5:]]
 	chart = {
 		"data": {
 			'labels': labels,
-			'datasets':[
-				{ "values": ['0' for d in columns[4:]] }
-			]
+			'datasets':[]
 		}
 	}
 	chart["type"] = "line"
