diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java
index e683034..00b7dcf 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java
@@ -59,6 +59,12 @@
   }
 
   public static class TaskAttribute {
+    public static class Statistics {
+      public boolean isApplicableRefreshRequired;
+      public boolean isSubNodeReloadRequired;
+      public boolean isTaskRefreshNeeded;
+    }
+
     public Boolean applicable;
     public Map<String, String> exported;
     public Boolean hasPass;
@@ -69,6 +75,7 @@
     public Status status;
     public List<TaskAttribute> subTasks;
     public Long evaluationMilliSeconds;
+    public Statistics statistics;
 
     public TaskAttribute(String name) {
       this.name = name;
@@ -143,9 +150,10 @@
       this.node = node;
       this.matchCache = matchCache;
       this.task = node.task;
-      this.attribute = new TaskAttribute(task.name());
+      attribute = new TaskAttribute(task.name());
       if (options.includeStatistics) {
         statistics.numberOfNodes++;
+        attribute.statistics = new TaskAttribute.Statistics();
       }
     }
 
@@ -194,6 +202,13 @@
               if (options.evaluationTime) {
                 attribute.evaluationMilliSeconds = millis() - attribute.evaluationMilliSeconds;
               }
+              if (attribute.statistics != null) {
+                attribute.statistics.isApplicableRefreshRequired =
+                    node.properties.isApplicableRefreshRequired;
+                attribute.statistics.isSubNodeReloadRequired =
+                    node.properties.isSubNodeReloadRequired();
+                attribute.statistics.isTaskRefreshNeeded = node.properties.isTaskRefreshNeeded;
+              }
               return Optional.of(attribute);
             }
           }
