--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -3,11 +3,13 @@
 import re
 from datetime import datetime, timedelta
 from urllib import urlencode, unquote
+from urllib2 import urlopen
 from webob import exc
+import json
 
 # Non-stdlib imports
 import pkg_resources
-from tg import expose, validate, redirect, flash, url
+from tg import expose, validate, redirect, flash, url, config
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from pylons import g, c, request, response
 from formencode import validators
@@ -29,6 +31,7 @@
 from allura.lib import validators as V
 from allura.lib.widgets import form_fields as ffw
 from allura.lib.widgets.subscriptions import SubscribeForm
+from allura.lib.zarkov_helpers import zero_fill_zarkov_result
 from allura.controllers import AppDiscussionController, AppDiscussionRestController
 from allura.controllers import attachments as ac
 from allura.controllers import BaseController
@@ -656,7 +659,7 @@
 
     @with_trailing_slash
     @expose('jinja:forgetracker:templates/tracker/stats.html')
-    def stats(self):
+    def stats(self, dates=None, **kw):
         globals = c.app.globals
         total = TM.Ticket.query.find(dict(app_config_id=c.app.config._id)).count()
         open = TM.Ticket.query.find(dict(app_config_id=c.app.config._id,status={'$in': list(globals.set_of_open_status_names)})).count()
@@ -676,6 +679,13 @@
         fortnight_comments=self.ticket_comments_since(fortnight_ago)
         month_comments=self.ticket_comments_since(month_ago)
         c.user_select = ffw.ProjectUserSelect()
+        if dates is None:
+            today = datetime.utcnow()
+            dates = "%s to %s" % ((today - timedelta(days=61)).strftime('%Y-%m-%d'), today.strftime('%Y-%m-%d'))
+        if c.app.config.get_tool_data('sfx', 'group_artifact_id') and config.get('zarkov.webservice_host'):
+            show_stats = True
+        else:
+            show_stats = False
         return dict(
                 now=str(now),
                 week_ago=str(week_ago),
@@ -691,7 +701,30 @@
                 total=total,
                 open=open,
                 closed=closed,
-                globals=globals)
+                globals=globals,
+                dates=dates,
+                show_stats=show_stats)
+
+    @expose('json:')
+    def stats_data(self, begin=None, end=None, **kw):
+        if c.app.config.get_tool_data('sfx', 'group_artifact_id') and config.get('zarkov.webservice_host'):
+            if begin is None and end is None:
+                end_time = datetime.utcnow()
+                begin_time = (end_time - timedelta(days=61))
+                end = end_time.strftime('%Y-%m-%d')
+                begin = begin_time.strftime('%Y-%m-%d')
+            else:
+                end_time = datetime.strptime(end,'%Y-%m-%d')
+                begin_time = datetime.strptime(begin,'%Y-%m-%d')
+            time_interval = 'date'
+            if end_time - begin_time > timedelta(days=183):
+                time_interval = 'month'
+            q_filter = 'group-tracker-%s/%s/%s/' % (time_interval,c.project.get_tool_data('sfx', 'group_id'),c.app.config.get_tool_data('sfx', 'group_artifact_id'))
+            params = urlencode({'data': '{"c":"tracker","b":"'+q_filter+begin+'","e":"'+q_filter+end+'"}'})
+            read_zarkov = json.load(urlopen(config.get('zarkov.webservice_host')+'/q', params))
+            return zero_fill_zarkov_result(read_zarkov, time_interval, begin, end)
+        else:
+            return dict()
 
     @expose()
     @validate(W.subscribe_form)