diff --git a/erpnext/accounts/dashboard.py b/erpnext/accounts/dashboard.py
index df152f0..b9cb22e 100644
--- a/erpnext/accounts/dashboard.py
+++ b/erpnext/accounts/dashboard.py
@@ -9,11 +9,16 @@
 from erpnext.accounts.report.general_ledger.general_ledger import execute
 
 
-def get(filters=None):
+def get(filters= None):
+    print(filters)
+    timespan = filters.get("timespan")
+    timegrain = filters.get("timegrain")
+    from_date = get_from_date_from_timespan(timespan)
+    to_date = nowdate()
     filters = frappe._dict({
         "company": "Gadget Technologies Pvt. Ltd.",
-        "from_date": get_from_date_from_timespan(filters.get("timespan")),
-        "to_date": "2020-12-12",
+        "from_date": from_date,
+        "to_date": to_date,
         "account": "Cash - GTPL",
         "group_by": "Group by Voucher (Consolidated)"
     })
@@ -33,6 +38,8 @@
 
     results = add_missing_dates(results, from_date, to_date)
 
+    results = granulate_results(results, from_date, to_date, timegrain)
+
     return {
         "labels": [result[0] for result in results],
         "datasets": [{
@@ -67,3 +74,23 @@
             last_balance = results_dict[date]
         results.append([date, last_balance])
     return results
+
+def get_dates_from_timegrain(from_date, to_date, timegrain):
+    days = months = years = 0
+    if "Daily" == timegrain:
+        days = 1
+    elif "Weekly" == timegrain:
+        days = 7
+    elif "Monthly" == timegrain:
+        months = 1
+    elif "Quarterly" == timegrain:
+        months = 3
+
+    dates = [from_date]
+    while dates[-1] <= to_date:
+        dates.append(add_to_date(dates[-1], years=years, months=months, days=days))
+    return dates
+
+def granulate_results(incomplete_results, from_date, to_date, timegrain):
+    dates = set(get_dates_from_timegrain(getdate(from_date), getdate(to_date), timegrain))
+    return list(filter(lambda x: x[0] in dates,incomplete_results))
