diff --git a/packages/component-faraday-ui/src/AuthorTag.js b/packages/component-faraday-ui/src/AuthorTag.js
index ab46aabc5e48b8edb830aa54f5c449bce8d71d16..d6a42289a15da03fd29c3e1a172a63e81f7eec7e 100644
--- a/packages/component-faraday-ui/src/AuthorTag.js
+++ b/packages/component-faraday-ui/src/AuthorTag.js
@@ -6,9 +6,16 @@ import Tag from './Tag'
 import Text from './Text'
 
 const AuthorTag = ({
-  author: { firstName, lastName, isCorresponding, isSubmitting },
+  author: {
+    firstName,
+    lastName,
+    isCorresponding,
+    isSubmitting,
+    affiliationNumber,
+  },
 }) => (
   <Root>
+    {affiliationNumber && <Superscript>{affiliationNumber}</Superscript>}
     <Text>{`${firstName} ${lastName}`}</Text>
     {isSubmitting && <Tag>SA</Tag>}
     {isCorresponding && <Tag>CA</Tag>}
@@ -27,4 +34,10 @@ const Root = styled.div`
     margin-left: calc(${th('gridUnit')} / 2);
   }
 `
+const Superscript = styled.span`
+  position: relative;
+  top: -0.5em;
+  font-size: 80%;
+  font-family: ${th('fontInterface')};
+`
 // #endregion
diff --git a/packages/component-faraday-ui/src/AuthorTagList.js b/packages/component-faraday-ui/src/AuthorTagList.js
index 1792cd7b3023ed597f3e9e78cef3d6c56a4b2342..0592061f2a9532edf837d160a61664d1c1b55084 100644
--- a/packages/component-faraday-ui/src/AuthorTagList.js
+++ b/packages/component-faraday-ui/src/AuthorTagList.js
@@ -1,20 +1,50 @@
 import React from 'react'
 import styled from 'styled-components'
+import { groupBy, get } from 'lodash'
 import { th } from '@pubsweet/ui-toolkit'
+import { compose, withState, withHandlers, withProps } from 'recompose'
 
-import { AuthorTag, AuthorWithTooltip } from 'pubsweet-component-faraday-ui'
+import {
+  Row,
+  Item,
+  Text,
+  AuthorTag,
+  ActionLink,
+  AuthorWithTooltip,
+} from 'pubsweet-component-faraday-ui'
+
+const parseAffiliationGroup = (authors = []) => {
+  const affiliationGroup = groupBy(authors, 'affiliation')
+  const affiliationList = Object.keys(affiliationGroup)
+  const list = affiliationList.reduce((acc, el, index) => {
+    const authorGroup = affiliationGroup[el].map(i => {
+      i.affiliationNumber = index + 1
+      return i
+    })
+    return [...authorGroup, ...acc]
+  }, [])
+
+  return {
+    list,
+    affiliationList,
+  }
+}
 
 const AuthorTagList = ({
   authors = [],
-  tooltip = false,
+  affiliationList,
   separator = ',',
   authorKey = 'email',
+  withTooltip = false,
+  withAffiliations = false,
+  showAffiliation = false,
+  toggleAffiliation,
 }) => (
   <Root>
     {authors
       .map(
         a =>
-          tooltip ? (
+          withTooltip ? (
             <AuthorWithTooltip author={a} key={a[authorKey]} />
           ) : (
             <AuthorTag author={a} key={a[authorKey]} />
@@ -27,10 +57,48 @@ const AuthorTagList = ({
             : [prev, separator, <span key={curr}>&nbsp;</span>, curr],
         [],
       )}
+    {withAffiliations && (
+      <Item ml={1}>
+        {showAffiliation ? (
+          <ActionLink icon="minus" onClick={toggleAffiliation(false)}>
+            Hide Affiliations
+          </ActionLink>
+        ) : (
+          <ActionLink icon="plus" onClick={toggleAffiliation(true)}>
+            Show Affiliations
+          </ActionLink>
+        )}
+      </Item>
+    )}
+
+    {withAffiliations &&
+      showAffiliation && (
+        <AffiliationRow>
+          {affiliationList.map((a, i) => (
+            <Item flex={1} key={a}>
+              <Superscript>{i + 1}</Superscript>
+              <Text>{a}</Text>
+            </Item>
+          ))}
+        </AffiliationRow>
+      )}
   </Root>
 )
-
-export default AuthorTagList
+export default compose(
+  withState('showAffiliation', 'setAffiliation', false),
+  withProps(({ authors = [], withAffiliations }) => ({
+    authors: withAffiliations
+      ? get(parseAffiliationGroup(authors), 'list', [])
+      : authors,
+    affiliationList:
+      withAffiliations &&
+      get(parseAffiliationGroup(authors), 'affiliationList', []),
+  })),
+  withHandlers({
+    toggleAffiliation: ({ setAffiliation }) => value => () =>
+      setAffiliation(value),
+  }),
+)(AuthorTagList)
 
 // #region styles
 const Root = styled.div`
@@ -40,4 +108,15 @@ const Root = styled.div`
 
   font-family: ${th('fontReading')};
 `
+const AffiliationRow = styled(Row)`
+  border-left: 1px solid ${th('colorBackgroundHue')};
+  padding-left: ${th('gridUnit')};
+  flex-direction: column;
+`
+const Superscript = styled.span`
+  position: relative;
+  top: -0.5em;
+  font-size: 80%;
+  font-family: ${th('fontInterface')};
+`
 // #endregion
diff --git a/packages/component-faraday-ui/src/AuthorTagList.md b/packages/component-faraday-ui/src/AuthorTagList.md
index f948cc048963e23861808937e68a0a7d09c91304..62cc3421ddc446e5d091424391a17a152cd20673 100644
--- a/packages/component-faraday-ui/src/AuthorTagList.md
+++ b/packages/component-faraday-ui/src/AuthorTagList.md
@@ -7,6 +7,7 @@ const authors = [
     email: 'john.doe@gmail.com',
     firstName: 'John',
     lastName: 'Doe',
+    affiliation: 'University of California',
     isSubmitting: true,
   },
   {
@@ -14,6 +15,7 @@ const authors = [
     email: 'michael.felps@gmail.com',
     firstName: 'Michael',
     lastName: 'Felps',
+    affiliation: 'US Presidency',
     isSubmitting: true,
     isCorresponding: true,
   },
@@ -22,38 +24,79 @@ const authors = [
     email: 'barrack.obama@gmail.com',
     firstName: 'Barrack',
     lastName: 'Obama',
-    affiliation: 'US Presidency'
+    affiliation: 'US Presidency',
   },
 ]
-
 ;<AuthorTagList authors={authors} />
 ```
 
-A list of author tags with tooltip
+A list of author tags with affiliation and tooltip
 
 ```js
 const authors = [
   {
+    id: 1,
     email: 'john.doe@gmail.com',
     firstName: 'John',
     lastName: 'Doe',
+    affiliation: 'University of California',
     isSubmitting: true,
+    affiliationNumber: 1,
   },
   {
+    id: 2,
     email: 'michael.felps@gmail.com',
     firstName: 'Michael',
     lastName: 'Felps',
+    affiliation: 'US Presidency',
     isSubmitting: true,
     isCorresponding: true,
+    affiliationNumber: 2,
   },
   {
+    id: 3,
     email: 'barrack.obama@gmail.com',
     firstName: 'Barrack',
     lastName: 'Obama',
+    affiliation: 'US Presidency',
+    affiliationNumber: 2,
+  },
+  {
+    id: 4,
+    email: 'barrack.obama@gmail.com',
+    firstName: 'Sebi',
+    lastName: 'Mihalache',
+    affiliation: 'US Presidency',
+    affiliationNumber: 2,
   },
 ]
+;<AuthorTagList authors={authors} withTooltip withAffiliations />
+```
 
-;<AuthorTagList authors={authors} tooltip />
+A list of author tags with tooltip
+
+```js
+const authors = [
+  {
+    email: 'john.doe@gmail.com',
+    firstName: 'John',
+    lastName: 'Doe',
+    isSubmitting: true,
+  },
+  {
+    email: 'michael.felps@gmail.com',
+    firstName: 'Michael',
+    lastName: 'Felps',
+    isSubmitting: true,
+    isCorresponding: true,
+  },
+  {
+    email: 'barrack.obama@gmail.com',
+    firstName: 'Barrack',
+    lastName: 'Obama',
+  },
+]
+;<AuthorTagList authors={authors} withTooltip />
 ```
 
 Use a different separator and key for mapping the authors.
@@ -78,6 +121,6 @@ const authors = [
     firstName: 'Barrack',
     lastName: 'Obama',
   },
-];
-<AuthorTagList separator="* * *" authors={authors} authorKey="firstName" />
+]
+;<AuthorTagList separator="* * *" authors={authors} authorKey="firstName" />
 ```
diff --git a/packages/component-faraday-ui/src/ManuscriptCard.js b/packages/component-faraday-ui/src/ManuscriptCard.js
index 97688bbcbd4cec6dccb0717cc5614106f222a0dc..40ea896cc0721b41f93658ddde628fe75d908562 100644
--- a/packages/component-faraday-ui/src/ManuscriptCard.js
+++ b/packages/component-faraday-ui/src/ManuscriptCard.js
@@ -45,7 +45,7 @@ const ManuscriptCard = ({
         </Row>
         {authors.length > 0 && (
           <Row alignItems="center" justify="flex-start" mb={1}>
-            <AuthorTagList authors={authors} tooltip />
+            <AuthorTagList authors={authors} withTooltip />
           </Row>
         )}
         <Row alignItems="center" justify="flex-start" mb={1}>
diff --git a/packages/component-faraday-ui/src/index.js b/packages/component-faraday-ui/src/index.js
index fd52de8c237374979db60d347a362abaadaec4dc..e8fb22e91094bd9a806c7aebc47a7745a753dca7 100644
--- a/packages/component-faraday-ui/src/index.js
+++ b/packages/component-faraday-ui/src/index.js
@@ -31,6 +31,5 @@ export { default as WizardAuthors } from './WizardAuthors'
 export { default as WizardFiles } from './WizardFiles'
 export { default as PreviewFile } from './PreviewFile'
 
-// Manuscript Details
 export * from './manuscriptDetails'
 export * from './contextualBoxes'
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
index ba3190e450b131c1e7a15d397502a421d2812891..b993e23453fce794a3d28779faf0c3b3cdf7e150 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js
@@ -33,26 +33,24 @@ const ManuscriptDetailsTop = ({
     </Item>
     <Item alignItems="center" justify="flex-end">
       {canOverrideTechChecks && (
-        <IconButton
+        <ActionLink
           data-test-id={`button-qa-manuscript-${fragment.id}`}
           icon="check-square"
-          iconSize={2}
-          mr={1}
           onClick={goToTechnicalCheck(collection)}
-          secondary
-          title="Technical Checks"
-        />
+          pr={2}
+        >
+          Technical Checks
+        </ActionLink>
       )}
       {canEditManuscript && (
-        <IconButton
-          data-test-id={`button-edit-manuscript-${fragment.id}`}
+        <ActionLink
+          data-test-id={`button-qa-manuscript-${fragment.id}`}
           icon="edit"
-          iconSize={2}
-          mr={2}
           onClick={goToEdit(collection, fragment)}
-          secondary
-          title="Edit Manuscript"
-        />
+          pr={2}
+        >
+          Edit
+        </ActionLink>
       )}
       <PreviewFile
         file={get(fragment, 'files.manuscripts[0]', {})}
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
index 005fe0b53b8f3647c62a326dce8b70891777349d..de3e08f01c8f260bdec2f279722f66c754baadc0 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
@@ -36,7 +36,12 @@ const ManuscriptHeader = ({
       </Row>
       {authors.length > 0 && (
         <Row alignItems="center" justify="flex-start" mb={1}>
-          <AuthorTagList authors={authors} tooltip />
+          <AuthorTagList
+            affiliations
+            authors={authors}
+            withAffiliations
+            withTooltip
+          />
         </Row>
       )}
       <Row alignItems="center" justify="flex-start" mb={1}>
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js
index 911feef484e5a25e9c96dcbd73e6e744b4879ee0..214588cdbb9ab854fbfe5d6298de569e6abda953 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js
@@ -11,12 +11,7 @@ import {
 const ManuscriptMetadata = ({
   getSignedUrl,
   currentUser: { token },
-  fragment: {
-    files = {},
-    authors = [],
-    conflicts = {},
-    metadata: { abstract = '' },
-  },
+  fragment: { files = {}, conflicts = {}, metadata: { abstract = '' } },
 }) => (
   <Fragment>
     {!!abstract && (