diff --git a/packages/components-faraday/src/components/Filters/importanceSort.js b/packages/components-faraday/src/components/Filters/importanceSort.js
index b86f37c80951a9a4ebbf89bb26ea03d78acb37ca..fd906879dcd0e8af3309ea28d24668984cad8d18 100644
--- a/packages/components-faraday/src/components/Filters/importanceSort.js
+++ b/packages/components-faraday/src/components/Filters/importanceSort.js
@@ -18,6 +18,10 @@ const sortFn = sortValue => (item1, item2) => {
   const item1Importance = utils.getCollectionImportance(statuses, item1)
   const item2Importance = utils.getCollectionImportance(statuses, item2)
 
+  if (item1Importance - item2Importance === 0) {
+    return item1.created - item2.created
+  }
+
   if (sortValue === SORT_VALUES.MORE_IMPORTANT) {
     return item2Importance - item1Importance
   }
diff --git a/packages/components-faraday/src/components/Filters/importanceSort.test.js b/packages/components-faraday/src/components/Filters/importanceSort.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..b2c270dbbcdc40a45b9fb2f521714f8805c1bd29
--- /dev/null
+++ b/packages/components-faraday/src/components/Filters/importanceSort.test.js
@@ -0,0 +1,63 @@
+import fixturesService from 'pubsweet-component-fixture-service'
+
+import { importanceSort } from './'
+import { SORT_VALUES } from './importanceSort'
+
+const { sortFn } = importanceSort
+const { fixtures: { collections: { collection } } } = fixturesService
+
+describe('Importance sort', () => {
+  describe('Important items first', () => {
+    // the more important collection is already before the less important one
+    it('should return a negative value', () => {
+      const sortResult = sortFn(SORT_VALUES.MORE_IMPORTANT)(
+        { ...collection, status: 'pendingApproval' },
+        { ...collection, status: 'heAssigned' },
+      )
+      expect(sortResult).toBeLessThan(0)
+    })
+    // the more important collection is after a less important one
+    it('should return a positive value', () => {
+      const sortResult = sortFn(SORT_VALUES.MORE_IMPORTANT)(
+        { ...collection, status: 'heAssigned' },
+        { ...collection, status: 'pendingApproval' },
+      )
+      expect(sortResult).toBeGreaterThan(0)
+    })
+  })
+
+  describe('Less important items first', () => {
+    it('should return a positive value', () => {
+      const sortResult = sortFn(SORT_VALUES.LESS_IMPORTANT)(
+        { ...collection, status: 'pendingApproval' },
+        { ...collection, status: 'heAssigned' },
+      )
+      expect(sortResult).toBeGreaterThan(0)
+    })
+    it('should return a negative value', () => {
+      const sortResult = sortFn(SORT_VALUES.LESS_IMPORTANT)(
+        { ...collection, status: 'heAssigned' },
+        { ...collection, status: 'pendingApproval' },
+      )
+      expect(sortResult).toBeLessThan(0)
+    })
+  })
+
+  describe('Sort by date if both have the same', () => {
+    it('should place older item before newer item', () => {
+      const sortResult = sortFn(SORT_VALUES.LESS_IMPORTANT)(
+        { ...collection, status: 'heAssigned', created: Date.now() + 2000 },
+        { ...collection, status: 'heAssigned', created: Date.now() },
+      )
+      expect(sortResult).toBeGreaterThan(0)
+    })
+
+    it('should not move items', () => {
+      const sortResult = sortFn(SORT_VALUES.LESS_IMPORTANT)(
+        { ...collection, status: 'heAssigned', created: Date.now() },
+        { ...collection, status: 'heAssigned', created: Date.now() + 2000 },
+      )
+      expect(sortResult).toBeLessThan(0)
+    })
+  })
+})
diff --git a/packages/components-faraday/src/components/Filters/priorityFilter.js b/packages/components-faraday/src/components/Filters/priorityFilter.js
index 4222f85fd52fb9caa18b561bdfb8b9960c7b28da..80367b1cea61a920bea6856c4693d038b4400463 100644
--- a/packages/components-faraday/src/components/Filters/priorityFilter.js
+++ b/packages/components-faraday/src/components/Filters/priorityFilter.js
@@ -9,19 +9,26 @@ export const FILTER_VALUES = {
   ALL: 'all',
   NEEDS_ATTENTION: 'needsAttention',
   IN_PROGRESS: 'inProgress',
+  ARCHIVED: 'archived',
 }
 
 const options = [
   { label: 'All', value: FILTER_VALUES.ALL },
   { label: 'Needs Attention', value: FILTER_VALUES.NEEDS_ATTENTION },
   { label: 'In Progress', value: FILTER_VALUES.IN_PROGRESS },
+  { label: 'Archived', value: FILTER_VALUES.ARCHIVED },
 ]
 
+const archivedStatuses = ['withdrawn', 'accepted', 'rejected']
+
 const filterFn = (filterValue, { currentUser, userPermissions = [] }) => ({
   id = '',
   fragments = [],
   status = 'draft',
 }) => {
+  if (filterValue === FILTER_VALUES.ARCHIVED) {
+    return archivedStatuses.includes(status)
+  }
   const permission = userPermissions.find(
     ({ objectId }) => objectId === id || fragments.includes(objectId),
   )
diff --git a/packages/components-faraday/src/components/Filters/priorityFilter.test.js b/packages/components-faraday/src/components/Filters/priorityFilter.test.js
index ce0d9b6b0afc43dccb4174f5a7efc12717ef5046..ac2f07d2f7f5f4ffa937073fe3d96ea1bc6c88ec 100644
--- a/packages/components-faraday/src/components/Filters/priorityFilter.test.js
+++ b/packages/components-faraday/src/components/Filters/priorityFilter.test.js
@@ -123,6 +123,18 @@ describe('Priority filter function for reviewersInvited status', () => {
       expect(filterResult).toBeFalsy()
     })
   })
+
+  describe('ARCHIVED', () => {
+    it('should return falsy', () => {
+      const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+        currentUser: users.admin,
+      })({
+        ...collection,
+        status: 'reviewersInvited',
+      })
+      expect(filterResult).toBeFalsy()
+    })
+  })
 })
 
 describe('Priority filter function for technicalChecks status', () => {
@@ -239,6 +251,18 @@ describe('Priority filter function for technicalChecks status', () => {
       expect(filterResult).toBeFalsy()
     })
   })
+
+  describe('ARCHIVED', () => {
+    it('should return falsy', () => {
+      const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+        currentUser: users.admin,
+      })({
+        ...collection,
+        status: 'technicalChecks',
+      })
+      expect(filterResult).toBeFalsy()
+    })
+  })
 })
 
 describe('Priority filter function for pendingApproval status', () => {
@@ -355,4 +379,58 @@ describe('Priority filter function for pendingApproval status', () => {
       expect(filterResult).toBeFalsy()
     })
   })
+
+  describe('ARCHIVED', () => {
+    it('should return falsy', () => {
+      const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+        currentUser: users.admin,
+      })({
+        ...collection,
+        status: 'pendingApproval',
+      })
+      expect(filterResult).toBeFalsy()
+    })
+  })
+})
+
+describe('Priority filter function for archived statuses', () => {
+  it('should show rejected manuscripts', () => {
+    const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+      currentUser: users.admin,
+    })({
+      ...collection,
+      status: 'rejected',
+    })
+    expect(filterResult).toBeTruthy()
+  })
+
+  it('should show withdrawn manuscripts', () => {
+    const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+      currentUser: users.admin,
+    })({
+      ...collection,
+      status: 'withdrawn',
+    })
+    expect(filterResult).toBeTruthy()
+  })
+
+  it('should show accepted manuscripts', () => {
+    const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+      currentUser: users.admin,
+    })({
+      ...collection,
+      status: 'accepted',
+    })
+    expect(filterResult).toBeTruthy()
+  })
+
+  it('should not show pendingApproval manuscripts', () => {
+    const filterResult = filterFn(FILTER_VALUES.ARCHIVED, {
+      currentUser: users.admin,
+    })({
+      ...collection,
+      status: 'pendingApproval',
+    })
+    expect(filterResult).toBeFalsy()
+  })
 })