diff --git a/opentech/apply/funds/api_views.py b/opentech/apply/funds/api_views.py
index bc3862af466f947b9ccb2c1bdffcdf8a4b9607da..26ffec25506d942b6783f3da1db5200d02c55fe3 100644
--- a/opentech/apply/funds/api_views.py
+++ b/opentech/apply/funds/api_views.py
@@ -56,7 +56,7 @@ class SubmissionsFilter(filters.FilterSet):
 
 
 class SubmissionList(generics.ListAPIView):
-    queryset = ApplicationSubmission.objects.current()
+    queryset = ApplicationSubmission.objects.current().with_latest_update()
     serializer_class = SubmissionListSerializer
     permission_classes = (
         permissions.IsAuthenticated, IsApplyStaffUser,
diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py
index 5f2a9027306d1e7b2e89eb612be34e6d64d8dd50..93442fa1e2ab35518ff80bed336238899962f96e 100644
--- a/opentech/apply/funds/models/submissions.py
+++ b/opentech/apply/funds/models/submissions.py
@@ -115,18 +115,23 @@ class ApplicationSubmissionQueryset(JSONOrderable):
         # Applications which have the current stage active (have not been progressed)
         return self.exclude(next__isnull=False)
 
-    def for_table(self, user):
+    def with_latest_update(self):
         activities = self.model.activities.field.model
         latest_activity = activities.objects.filter(submission=OuterRef('id')).select_related('user')
+        return self.annotate(
+            last_user_update=Subquery(latest_activity[:1].values('user__full_name')),
+            last_update=Subquery(latest_activity.values('timestamp')[:1]),
+        )
+
+    def for_table(self, user):
+        activities = self.model.activities.field.model
         comments = activities.comments.filter(submission=OuterRef('id')).visible_to(user)
         roles_for_review = self.model.assigned.field.model.objects.with_roles().filter(
             submission=OuterRef('id'), reviewer=user)
 
         reviews = self.model.reviews.field.model.objects.filter(submission=OuterRef('id'))
 
-        return self.annotate(
-            last_user_update=Subquery(latest_activity[:1].values('user__full_name')),
-            last_update=Subquery(latest_activity.values('timestamp')[:1]),
+        return self.with_latest_update().annotate(
             comment_count=Coalesce(
                 Subquery(
                     comments.values('submission').order_by().annotate(count=Count('pk')).values('count'),
diff --git a/opentech/apply/funds/serializers.py b/opentech/apply/funds/serializers.py
index 4d1ca335ed40acfd67c344356073b2247da8fb27..7b12eb0842d62b4fe12a3b878d75348b536bd81e 100644
--- a/opentech/apply/funds/serializers.py
+++ b/opentech/apply/funds/serializers.py
@@ -122,13 +122,19 @@ class ReviewSummarySerializer(serializers.Serializer):
         return response
 
 
+class TimestampField(serializers.Field):
+    def to_representation(self, value):
+        return value.timestamp()
+
+
 class SubmissionListSerializer(serializers.ModelSerializer):
     url = serializers.HyperlinkedIdentityField(view_name='funds:api:submissions:detail')
     round = serializers.SerializerMethodField()
+    last_update = TimestampField()
 
     class Meta:
         model = ApplicationSubmission
-        fields = ('id', 'title', 'status', 'url', 'round')
+        fields = ('id', 'title', 'status', 'url', 'round', 'last_update')
 
     def get_round(self, obj):
         """
diff --git a/opentech/static_src/src/app/src/components/GroupedListing/index.js b/opentech/static_src/src/app/src/components/GroupedListing/index.js
index 88bd5dc9e075c8f18a9e4757de8136ac7190c607..43c72b22d8682ff2491d1e3f293949e65e9f6a11 100644
--- a/opentech/static_src/src/app/src/components/GroupedListing/index.js
+++ b/opentech/static_src/src/app/src/components/GroupedListing/index.js
@@ -89,6 +89,10 @@ export default class GroupedListing extends React.Component {
             items: values.reduce((acc, value) => acc.concat(groupedItems[value] || []), [])
         })).filter(({items}) => items.length !== 0)
 
+        orderedItems.map(value => {
+            value.items.sort((a,b) => a.lastUpdate > b.lastUpdate ? -1 : 1)
+        })
+
         this.setState({orderedItems});
     }