diff --git a/erpnext/accounts/accounts b/erpnext/accounts/accounts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/accounts/accounts
diff --git a/erpnext/accounts/dashboard_fixtures.py b/erpnext/accounts/dashboard_fixtures.py
index cdd1661..8b9eca5 100644
--- a/erpnext/accounts/dashboard_fixtures.py
+++ b/erpnext/accounts/dashboard_fixtures.py
@@ -1,89 +1,79 @@
 # Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
-from erpnext import get_default_company
 
 import frappe
 import json
+from frappe.utils import nowdate, add_months
+from frappe import _
+from erpnext.accounts.utils import get_fiscal_year
 
+def get_company_for_dashboards():
+	company = frappe.defaults.get_defaults().company
+	if company:
+		return company
+	else:
+		company_list = frappe.get_list("Company")
+		if company_list:
+			return company_list[0].name
+	return None
 
 def get_data():
-	data = frappe._dict({
-		"dashboards": [],
-		"charts": []
+	return frappe._dict({
+		"dashboards": get_dashboards(),
+		"charts": get_charts(),
+		"number_cards": get_number_cards()
 	})
-	company = get_company_for_dashboards()
-	if company:
-		company_doc = frappe.get_doc("Company", company)
-		data.dashboards = get_dashboards()
-		data.charts = get_charts(company_doc)
-	return data
 
 def get_dashboards():
 	return [{
-		"name": "Accounts",
+		"name": "Accounts Dashboard",
 		"dashboard_name": "Accounts",
+		"doctype": "Dashboard",
 		"charts": [
-			{ "chart": "Outgoing Bills (Sales Invoice)" },
-			{ "chart": "Incoming Bills (Purchase Invoice)" },
-			{ "chart": "Bank Balance" },
-			{ "chart": "Income" },
-			{ "chart": "Expenses" }
+			{ "chart": "Profit and Loss" , "width": "Full"},
+			{ "chart": "Incoming Bills"},
+			{ "chart": "Outgoing Bills"},
+			{ "chart": "Accounts Receivable Ageing"},
+			{ "chart": "Accounts Payable Ageing"},
+			{ "chart": "Budget Variance", "width": "Full"},
+			{ "chart": "Bank Balance", "width": "Full"},
+		],
+		"cards": [
+			{"card": "Total Payment Received"}
 		]
 	}]
 
-def get_charts(company):
-	income_account = company.default_income_account or get_account("Income Account", company.name)
-	expense_account = company.default_expense_account or get_account("Expense Account", company.name)
+def get_charts():
+	company = frappe.get_doc("Company", get_company_for_dashboards())
 	bank_account = company.default_bank_account or get_account("Bank", company.name)
+	fiscal_year = get_fiscal_year(date=nowdate())
+	default_cost_center = company.cost_center
 
 	return [
 		{
-			"doctype": "Dashboard Chart",
-			"time_interval": "Quarterly",
-			"name": "Income",
-			"chart_name": "Income",
-			"timespan": "Last Year",
-			"color": None,
-			"filters_json": json.dumps({"company": company.name, "account": income_account}),
-			"source": "Account Balance Timeline",
-			"chart_type": "Custom",
-			"timeseries": 1,
+			"doctype": "Dashboard Charts",
+			"name": "Profit and Loss",
 			"owner": "Administrator",
-			"type": "Line"
-		},
-		{
-			"doctype": "Dashboard Chart",
-			"time_interval": "Quarterly",
-			"name": "Expenses",
-			"chart_name": "Expenses",
-			"timespan": "Last Year",
-			"color": None,
-			"filters_json": json.dumps({"company": company.name, "account": expense_account}),
-			"source": "Account Balance Timeline",
-			"chart_type": "Custom",
-			"timeseries": 1,
-			"owner": "Administrator",
-			"type": "Line"
-		},
-		{
-			"doctype": "Dashboard Chart",
-			"time_interval": "Quarterly",
-			"name": "Bank Balance",
-			"chart_name": "Bank Balance",
-			"timespan": "Last Year",
-			"color": "#ffb868",
-			"filters_json": json.dumps({"company": company.name, "account": bank_account}),
-			"source": "Account Balance Timeline",
-			"chart_type": "Custom",
-			"timeseries": 1,
-			"owner": "Administrator",
-			"type": "Line"
+			"report_name": "Profit and Loss Statement",
+			"filters_json": json.dumps({
+				"company": company.name,
+				"filter_based_on": "Date Range",
+				"period_start_date": add_months(nowdate(), -4),
+				"period_end_date": nowdate(),
+				"periodicity": "Monthly",
+				"include_default_book_entries": 1
+				}),
+			"type": "Bar",
+			'timeseries': 0,
+			"chart_type": "Report",
+			"chart_name": _("Profit and Loss"),
+			"is_custom": 1
 		},
 		{
 			"doctype": "Dashboard Chart",
 			"time_interval": "Monthly",
-			"name": "Incoming Bills (Purchase Invoice)",
-			"chart_name": "Incoming Bills (Purchase Invoice)",
+			"name": "Incoming Bills",
+			"chart_name": _("Incoming Bills (Purchase Invoice)"),
 			"timespan": "Last Year",
 			"color": "#a83333",
 			"value_based_on": "base_grand_total",
@@ -93,13 +83,14 @@
 			"based_on": "posting_date",
 			"owner": "Administrator",
 			"document_type": "Purchase Invoice",
-			"type": "Bar"
+			"type": "Bar",
+			"width": "Half"
 		},
 		{
 			"doctype": "Dashboard Chart",
+			"name": "Outgoing Bills",
 			"time_interval": "Monthly",
-			"name": "Outgoing Bills (Sales Invoice)",
-			"chart_name": "Outgoing Bills (Sales Invoice)",
+			"chart_name": _("Outgoing Bills (Sales Invoice)"),
 			"timespan": "Last Year",
 			"color": "#7b933d",
 			"value_based_on": "base_grand_total",
@@ -109,19 +100,96 @@
 			"based_on": "posting_date",
 			"owner": "Administrator",
 			"document_type": "Sales Invoice",
-			"type": "Bar"
-		}
+			"type": "Bar",
+			"width": "Half"
+		},
+		{
+			"doctype": "Dashboard Charts",
+			"name": "Accounts Receivable Ageing",
+			"owner": "Administrator",
+			"report_name": "Accounts Receivable",
+			"filters_json": json.dumps({
+				"company": company.name,
+				"report_date": nowdate(),
+				"ageing_based_on": "Due Date",
+				"range1": 30,
+				"range2": 60,
+				"range3": 90,
+				"range4": 120
+				}),
+			"type": "Donut",
+			'timeseries': 0,
+			"chart_type": "Report",
+			"chart_name": _("Accounts Receivable Ageing"),
+			"is_custom": 1
+		},
+		{
+			"doctype": "Dashboard Charts",
+			"name": "Accounts Payable Ageing",
+			"owner": "Administrator",
+			"report_name": "Accounts Payable",
+			"filters_json": json.dumps({
+				"company": company.name,
+				"report_date": nowdate(),
+				"ageing_based_on": "Due Date",
+				"range1": 30,
+				"range2": 60,
+				"range3": 90,
+				"range4": 120
+			}),
+			"type": "Donut",
+			'timeseries': 0,
+			"chart_type": "Report",
+			"chart_name": _("Accounts Payable Ageing"),
+			"is_custom": 1
+		},
+		{
+			"doctype": "Dashboard Charts",
+			"name": "Budget Variance",
+			"owner": "Administrator",
+			"report_name": "Budget Variance Report",
+			"filters_json": json.dumps({
+				"company": company.name,
+				"from_fiscal_year": fiscal_year[0],
+				"to_fiscal_year": fiscal_year[0],
+				"period": "Monthly",
+				"budget_against": "Cost Center"
+			}),
+			"type": "Bar",
+			"timeseries": 0,
+			"chart_type": "Report",
+			"chart_name": _("Budget Variance"),
+			"is_custom": 1
+		},
+		{
+			"doctype": "Dashboard Charts",
+			"name": "Bank Balance",
+			"time_interval": "Quarterly",
+			"chart_name": "Bank Balance",
+			"timespan": "Last Year",
+			"filters_json": json.dumps({"company": company.name, "account": bank_account}),
+			"source": "Account Balance Timeline",
+			"chart_type": "Custom",
+			"timeseries": 1,
+			"owner": "Administrator",
+			"type": "Line",
+			"width": "Half"
+		},
 	]
 
-def get_account(account_type, company):
-	accounts = frappe.get_list("Account", filters={"account_type": account_type, "company": company})
-	if accounts:
-		return accounts[0].name
-
-def get_company_for_dashboards():
-	company = get_default_company()
-	if not company:
-		company_list = frappe.get_list("Company")
-		if company_list:
-			company = company_list[0].name
-	return company
+def get_number_cards():
+	return [
+		{
+			"doctype": "Number Card",
+			"document_type": "Payment Entry",
+			"name": "Total Payment Received",
+			"filters_json": json.dumps([]),
+			"label": _("Total Payment Received"),
+			"function": "Sum",
+			"aggregate_function_based_on": "base_received_amount",
+			"is_public": 1,
+			"is_custom": 1,
+			"show_percentage_stats": 1,
+			"stats_time_interval": "Daily"
+		}
+	]
diff --git a/erpnext/accounts/desk_page/accounting/accounting.json b/erpnext/accounts/desk_page/accounting/accounting.json
index 0d6aca6..682eb8f 100644
--- a/erpnext/accounts/desk_page/accounting/accounting.json
+++ b/erpnext/accounts/desk_page/accounting/accounting.json
@@ -47,11 +47,6 @@
   },
   {
    "hidden": 0,
-   "links": "[\n    {\n        \"description\": \"Match non-linked Invoices and Payments.\",\n        \"label\": \"Match Payments with Invoices\",\n        \"name\": \"Payment Reconciliation\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"description\": \"Update bank payment dates with journals.\",\n        \"label\": \"Update Bank Clearance Dates\",\n        \"name\": \"Bank Clearance\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"label\": \"Invoice Discounting\",\n        \"name\": \"Invoice Discounting\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"dependencies\": [\n            \"Journal Entry\"\n        ],\n        \"doctype\": \"Journal Entry\",\n        \"is_query_report\": true,\n        \"label\": \"Bank Reconciliation Statement\",\n        \"name\": \"Bank Reconciliation Statement\",\n        \"type\": \"report\"\n    },\n    {\n        \"icon\": \"fa fa-bar-chart\",\n        \"label\": \"Bank Reconciliation\",\n        \"name\": \"bank-reconciliation\",\n        \"type\": \"page\"\n    },\n    {\n        \"dependencies\": [\n            \"Journal Entry\"\n        ],\n        \"doctype\": \"Journal Entry\",\n        \"is_query_report\": true,\n        \"label\": \"Bank Clearance Summary\",\n        \"name\": \"Bank Clearance Summary\",\n        \"type\": \"report\"\n    },\n    {\n        \"label\": \"Bank Guarantee\",\n        \"name\": \"Bank Guarantee\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"description\": \"Setup cheque dimensions for printing\",\n        \"label\": \"Cheque Print Template\",\n        \"name\": \"Cheque Print Template\",\n        \"type\": \"doctype\"\n    }\n]",
-   "title": "Banking and Payments"
-  },
-  {
-   "hidden": 0,
    "label": "Subscription Management",
    "links": "[\n    {\n        \"label\": \"Subscription Plan\",\n        \"name\": \"Subscription Plan\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"label\": \"Subscription\",\n        \"name\": \"Subscription\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"label\": \"Subscription Settings\",\n        \"name\": \"Subscription Settings\",\n        \"type\": \"doctype\"\n    }\n]"
   },
@@ -87,36 +82,46 @@
   }
  ],
  "category": "Modules",
- "charts": [
-  {
-   "chart_name": "Bank Balance",
-   "label": "Bank Balance"
-  }
- ],
+ "charts": [],
  "creation": "2020-03-02 15:41:59.515192",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Desk Page",
  "extends_another_page": 0,
- "icon": "",
  "idx": 0,
  "is_standard": 1,
  "label": "Accounting",
- "modified": "2020-04-29 12:17:34.844397",
+ "modified": "2020-05-14 22:28:25.262409",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Accounting",
+ "onboarding": "Accounts",
  "owner": "Administrator",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
  "shortcuts": [
   {
-   "label": "Account",
+   "label": "Chart Of Accounts",
    "link_to": "Account",
    "type": "DocType"
   },
   {
+   "label": "Sales Invoice",
+   "link_to": "Sales Invoice",
+   "type": "DocType"
+  },
+  {
+   "label": "Purchase Invoice",
+   "link_to": "Purchase Invoice",
+   "type": "DocType"
+  },
+  {
+   "label": "Accounts Dashboard",
+   "link_to": "Accounts Dashboard",
+   "type": "Dashboard"
+  },
+  {
    "label": "Journal Entry",
    "link_to": "Journal Entry",
    "type": "DocType"
@@ -137,11 +142,6 @@
    "type": "Report"
   },
   {
-   "label": "Profit and Loss Statement",
-   "link_to": "Profit and Loss Statement",
-   "type": "Report"
-  },
-  {
    "label": "Trial Balance",
    "link_to": "Trial Balance",
    "type": "Report"
diff --git a/erpnext/accounts/module_onboarding/accounts/accounts.json b/erpnext/accounts/module_onboarding/accounts/accounts.json
new file mode 100644
index 0000000..12da440
--- /dev/null
+++ b/erpnext/accounts/module_onboarding/accounts/accounts.json
@@ -0,0 +1,51 @@
+{
+ "allow_roles": [
+  {
+   "role": "Accounts Manager"
+  },
+  {
+   "role": "Accounts User"
+  }
+ ],
+ "creation": "2020-05-13 19:03:32.564049",
+ "docstatus": 0,
+ "doctype": "Module Onboarding",
+ "documentation_url": "https://docs.erpnext.com/docs/user/manual/en/accounts",
+ "idx": 0,
+ "is_complete": 0,
+ "modified": "2020-05-14 22:11:06.475938",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Accounts",
+ "owner": "Administrator",
+ "steps": [
+  {
+   "step": "Chart Of Accounts"
+  },
+  {
+   "step": "Setup Taxes"
+  },
+  {
+   "step": "Create a Product"
+  },
+  {
+   "step": "Create a Supplier"
+  },
+  {
+   "step": "Create Your First Purchase Invoice"
+  },
+  {
+   "step": "Create a Customer"
+  },
+  {
+   "step": "Create Your First Sales Invoice"
+  },
+  {
+   "step": "Configure Account Settings"
+  }
+ ],
+ "subtitle": "Accounts, invoices and taxation.",
+ "success_message": "The Accounts module is now set up!",
+ "title": "Let's Setup Your Accounts and Taxes.",
+ "user_can_dismiss": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/chart_of_accounts/chart_of_accounts.json b/erpnext/accounts/onboarding_step/chart_of_accounts/chart_of_accounts.json
new file mode 100644
index 0000000..cbd022b
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/chart_of_accounts/chart_of_accounts.json
@@ -0,0 +1,20 @@
+{
+ "action": "Go to Page",
+ "creation": "2020-05-13 19:58:20.928127",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 17:40:28.410447",
+ "modified_by": "Administrator",
+ "name": "Chart Of Accounts",
+ "owner": "Administrator",
+ "path": "Tree/Account",
+ "reference_document": "Account",
+ "show_full_form": 0,
+ "title": "Review Chart Of Accounts",
+ "validate_action": 0
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/configure_account_settings/configure_account_settings.json b/erpnext/accounts/onboarding_step/configure_account_settings/configure_account_settings.json
new file mode 100644
index 0000000..c8be357
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/configure_account_settings/configure_account_settings.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-14 17:53:00.876946",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 1,
+ "is_skipped": 0,
+ "modified": "2020-05-14 18:06:25.212923",
+ "modified_by": "Administrator",
+ "name": "Configure Account Settings",
+ "owner": "Administrator",
+ "reference_document": "Accounts Settings",
+ "show_full_form": 1,
+ "title": "Configure Account Settings",
+ "validate_action": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/create_a_customer/create_a_customer.json b/erpnext/accounts/onboarding_step/create_a_customer/create_a_customer.json
new file mode 100644
index 0000000..bb396d2
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/create_a_customer/create_a_customer.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-14 17:46:41.831517",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 17:46:41.831517",
+ "modified_by": "Administrator",
+ "name": "Create a Customer",
+ "owner": "Administrator",
+ "reference_document": "Customer",
+ "show_full_form": 0,
+ "title": "Create a Customer",
+ "validate_action": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/create_a_product/create_a_product.json b/erpnext/accounts/onboarding_step/create_a_product/create_a_product.json
new file mode 100644
index 0000000..450bee1
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/create_a_product/create_a_product.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-14 17:45:28.554605",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 17:45:28.554605",
+ "modified_by": "Administrator",
+ "name": "Create a Product",
+ "owner": "Administrator",
+ "reference_document": "Item",
+ "show_full_form": 0,
+ "title": "Create a Product",
+ "validate_action": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/create_a_supplier/create_a_supplier.json b/erpnext/accounts/onboarding_step/create_a_supplier/create_a_supplier.json
new file mode 100644
index 0000000..7a64224
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/create_a_supplier/create_a_supplier.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-14 22:09:10.043554",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 22:09:10.043554",
+ "modified_by": "Administrator",
+ "name": "Create a Supplier",
+ "owner": "Administrator",
+ "reference_document": "Supplier",
+ "show_full_form": 0,
+ "title": "Create a Supplier",
+ "validate_action": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json b/erpnext/accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json
new file mode 100644
index 0000000..3a2b8d3
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-14 22:10:07.049704",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 22:10:07.049704",
+ "modified_by": "Administrator",
+ "name": "Create Your First Purchase Invoice",
+ "owner": "Administrator",
+ "reference_document": "Purchase Invoice",
+ "show_full_form": 1,
+ "title": "Create Your First Purchase Invoice ",
+ "validate_action": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json b/erpnext/accounts/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
new file mode 100644
index 0000000..473de50
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-14 17:48:21.019019",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 17:48:21.019019",
+ "modified_by": "Administrator",
+ "name": "Create Your First Sales Invoice",
+ "owner": "Administrator",
+ "reference_document": "Sales Invoice",
+ "show_full_form": 1,
+ "title": "Create Your First Sales Invoice ",
+ "validate_action": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/onboarding_step/setup_taxes/setup_taxes.json b/erpnext/accounts/onboarding_step/setup_taxes/setup_taxes.json
new file mode 100644
index 0000000..8e00067
--- /dev/null
+++ b/erpnext/accounts/onboarding_step/setup_taxes/setup_taxes.json
@@ -0,0 +1,19 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-13 19:29:43.844463",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_single": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-14 17:40:16.014413",
+ "modified_by": "Administrator",
+ "name": "Setup Taxes",
+ "owner": "Administrator",
+ "reference_document": "Sales Taxes and Charges Template",
+ "show_full_form": 1,
+ "title": "Lets create a Tax Template for Sales ",
+ "validate_action": 0
+}
\ No newline at end of file
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index e9c286f..a0a1b97 100755
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -546,7 +546,7 @@
 			self.filters.range1, self.filters.range2, self.filters.range3, self.filters.range4 = 30, 60, 90, 120
 
 		for i, days in enumerate([self.filters.range1, self.filters.range2, self.filters.range3, self.filters.range4]):
-			if row.age <= days:
+			if cint(row.age) <= cint(days):
 				index = i
 				break
 
diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
index 49c1d0f..05dc282 100644
--- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
+++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
@@ -56,14 +56,26 @@
 					row += totals
 				data.append(row)
 
-	return columns, data
+	chart = get_chart_data(filters, columns, data)
 
+	return columns, data, None, chart
 
 def get_columns(filters):
 	columns = [
-		_(filters.get("budget_against"))
-		+ ":Link/%s:150" % (filters.get("budget_against")),
-		_("Account") + ":Link/Account:150"
+		{
+			'label': _(filters.get("budget_against")),
+			'fieldtype': 'Link',
+			'fieldname': 'budget_against',
+			'options': filters.get('budget_against'),
+			'width': 150
+		},
+		{
+			'label': _('Account'),
+			'fieldname': 'Account',
+			'fieldtype': 'Link',
+			'options': 'Account',
+			'width': 150
+		}
 	]
 
 	group_months = False if filters["period"] == "Monthly" else True
@@ -79,7 +91,12 @@
 					_("Variance ") + " " + str(year[0])
 				]
 				for label in labels:
-					columns.append(label + ":Float:150")
+					columns.append({
+						'label': label,
+						'fieldtype': 'Float',
+						'fieldname': frappe.scrub(label),
+						'width': 150
+					})
 			else:
 				for label in [
 					_("Budget") + " (%s)" + " " + str(year[0]),
@@ -95,14 +112,23 @@
 					else:
 						label = label % formatdate(from_date, format_string="MMM")
 
-					columns.append(label + ":Float:150")
+					columns.append({
+						'label': label,
+						'fieldtype': 'Float',
+						'fieldname': frappe.scrub(label),
+						'width': 150
+					})
 
 	if filters["period"] != "Yearly":
-		return columns + [
-			_("Total Budget") + ":Float:150",
-			_("Total Actual") + ":Float:150",
-			_("Total Variance") + ":Float:150"
-		]
+		for label in [_("Total Budget"), _("Total Actual"), _("Total Variance")]:
+			columns.append({
+				'label': label,
+				'fieldtype': 'Float',
+				'fieldname': frappe.scrub(label),
+				'width': 150
+			})
+
+		return columns
 	else:
 		return columns
 
@@ -173,7 +199,7 @@
 				filters.budget_against,
 				filters.company,
 			]
-			+ filters.get("budget_against_filter")
+			+ (filters.get("budget_against_filter") or [])
 		), as_dict=True)
 
 
@@ -305,3 +331,49 @@
 		})
 
 	return fiscal_year
+
+def get_chart_data(filters, columns, data):
+
+	if not data:
+		return None
+
+	labels = []
+
+	fiscal_year = get_fiscal_years(filters)
+	group_months = False if filters["period"] == "Monthly" else True
+
+	for year in fiscal_year:
+		for from_date, to_date in get_period_date_ranges(filters["period"], year[0]):
+			if filters['period'] == 'Yearly':
+				labels.append(year[0])
+			else:
+				if group_months:
+					label = formatdate(from_date, format_string="MMM") + "-" \
+						+ formatdate(to_date, format_string="MMM")
+					labels.append(label)
+				else:
+					label = formatdate(from_date, format_string="MMM")
+					labels.append(label)
+
+	no_of_columns = len(labels)
+
+	budget_values, actual_values = [0] * no_of_columns, [0] * no_of_columns
+	for d in data:
+		values = d[2:]
+		index = 0
+
+		for i in range(no_of_columns):
+			budget_values[i] += values[index]
+			actual_values[i] += values[index+1]
+			index += 3
+
+	return {
+		'data': {
+			'labels': labels,
+			'datasets': [
+				{'name': 'Budget', 'chartType': 'bar', 'values': budget_values},
+				{'name': 'Actual Expense', 'chartType': 'bar', 'values': actual_values}
+			]
+		}
+	}
+
