diff --git a/src/main/java/com/googlesource/gerrit/plugins/analytics/CommitInfo.java b/src/main/java/com/googlesource/gerrit/plugins/analytics/CommitInfo.java
index 807e516..d7fbd9a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/analytics/CommitInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/analytics/CommitInfo.java
@@ -14,14 +14,12 @@
 
 package com.googlesource.gerrit.plugins.analytics;
 
-import java.util.Date;
-
 public class CommitInfo {
   public final String sha1;
-  public final Date date;
+  public final long date;
   public final boolean merge;
 
-  public CommitInfo(String sha1, Date date, boolean merge) {
+  public CommitInfo(String sha1, long date, boolean merge) {
     super();
     this.sha1 = sha1;
     this.date = date;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/analytics/UserActivitySummary.java b/src/main/java/com/googlesource/gerrit/plugins/analytics/UserActivitySummary.java
index 09621cf..f94d7be 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/analytics/UserActivitySummary.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/analytics/UserActivitySummary.java
@@ -20,7 +20,6 @@
 import org.gitective.core.stat.UserCommitActivity;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 public class UserActivitySummary {
@@ -28,20 +27,22 @@
   public final String email;
   public final int numCommits;
   public final List<CommitInfo> commits;
+  public final long lastCommitDate;
 
 
   public UserActivitySummary(String name, String email, int numCommits,
-      List<CommitInfo> commits) {
+      List<CommitInfo> commits, long lastCommitDate) {
     this.name = name;
     this.email = email;
     this.numCommits = numCommits;
     this.commits = commits;
+    this.lastCommitDate = lastCommitDate;
   }
 
   public static UserActivitySummary fromUserActivity(UserCommitActivity uca) {
     return new UserActivitySummary(uca.getName(), uca.getEmail(),
         uca.getCount(), getCommits(uca.getIds(), uca.getTimes(),
-            uca.getMerges()));
+            uca.getMerges()), uca.getLatest());
   }
 
   private static List<CommitInfo> getCommits(ObjectId[] ids, long[] times,
@@ -49,7 +50,7 @@
     List<CommitInfo> commits = new ArrayList<>(ids.length);
 
     for (int i = 0; i < ids.length; i++) {
-      commits.add(new CommitInfo(ids[i].name(), new Date(times[i]), merges[i]));
+      commits.add(new CommitInfo(ids[i].name(), times[i], merges[i]));
     }
 
     return commits;
