diff --git a/erpnext/accounts/dashboard.py b/erpnext/accounts/dashboard.py
index 26a53da..df152f0 100644
--- a/erpnext/accounts/dashboard.py
+++ b/erpnext/accounts/dashboard.py
@@ -5,7 +5,7 @@
 from itertools import groupby
 from operator import itemgetter
 import frappe
-from frappe.utils import add_to_date
+from frappe.utils import add_to_date, date_diff, getdate, nowdate
 from erpnext.accounts.report.general_ledger.general_ledger import execute
 
 
@@ -31,6 +31,8 @@
 
     results = [list(values)[-1] for key, values in grouped_results]
 
+    results = add_missing_dates(results, from_date, to_date)
+
     return {
         "labels": [result[0] for result in results],
         "datasets": [{
@@ -51,3 +53,17 @@
         years = -1
     return add_to_date(None, years=years, months=months, days=days,
         as_string=True, as_datetime=True)
+
+def add_missing_dates(incomplete_results, from_date, to_date):
+    dates = [r[0] for r in incomplete_results]
+    day_count = date_diff(to_date, from_date)
+
+    results_dict = dict(incomplete_results)
+    last_date, last_balance = incomplete_results[0]
+    results = []
+    for date in (add_to_date(getdate(from_date), days=n) for n in range(day_count + 1)):
+        if date in results_dict:
+            last_date = date
+            last_balance = results_dict[date]
+        results.append([date, last_balance])
+    return results
