diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js
index 925aac7a881fce50bf971f765a560042755bf468..4f258fa4436f16ae850c98ba02d1b201cd61e634 100644
--- a/packages/component-faraday-selectors/src/index.js
+++ b/packages/component-faraday-selectors/src/index.js
@@ -53,6 +53,7 @@ const cannotViewReviewersDetails = [
   'submitted',
   'heInvited',
 ]
+
 export const canViewReviewersDetails = (state, collection = {}) => {
   if (cannotViewReviewersDetails.includes(get(collection, 'status', 'draft'))) {
     return false
@@ -60,6 +61,41 @@ export const canViewReviewersDetails = (state, collection = {}) => {
   return canViewReports(state, collection.id)
 }
 
+const canHeViewEditorialCommentsStatuses = [
+  'revisionRequested',
+  'rejected',
+  'accepted',
+  'inQA',
+]
+export const canHeViewEditorialComments = (state, collection = {}) => {
+  const isHE = isHEToManuscript(state, collection.id)
+  const status = get(collection, 'status', 'draft')
+  return isHE && canHeViewEditorialCommentsStatuses.includes(status)
+}
+
+const canEICViewEditorialCommentsStatuses = ['rejected', 'accepted', 'inQA']
+export const canEICViewEditorialComments = (state, collection = {}) => {
+  const isEIC = currentUserIs(state, 'adminEiC')
+  const status = get(collection, 'status', 'draft')
+  return isEIC && canEICViewEditorialCommentsStatuses.includes(status)
+}
+
+export const canViewEditorialComments = (
+  state,
+  collection = {},
+  fragmentId,
+) => {
+  const editorialRecommentations = getFragmentEditorialComments(
+    state,
+    fragmentId,
+  )
+  return (
+    (canHeViewEditorialComments(state, collection) ||
+      canEICViewEditorialComments(state, collection)) &&
+    editorialRecommentations.length > 0
+  )
+}
+
 export const getUserToken = ({ currentUser }) =>
   get(currentUser, 'user.token', '')
 
@@ -254,6 +290,10 @@ export const getFragmentReviewerRecommendations = (state, fragmentId) =>
   getFragmentRecommendations(state, fragmentId).filter(
     r => r.recommendationType === 'review',
   )
+const getFragmentEditorialComments = (state, fragmentId) =>
+  getFragmentRecommendations(state, fragmentId).filter(
+    r => r.recommendationType === 'editorRecommendation',
+  )
 
 const getOwnRecommendations = (state, fragmentId) =>
   chain(state)
diff --git a/packages/component-faraday-ui/src/EditorialReportCard.js b/packages/component-faraday-ui/src/EditorialReportCard.js
index a294c039795914fe5e5333e95b395f938ee4f187..a89ca77499af8c0d0a6b6ceff3b6b5af97c617d5 100644
--- a/packages/component-faraday-ui/src/EditorialReportCard.js
+++ b/packages/component-faraday-ui/src/EditorialReportCard.js
@@ -9,26 +9,32 @@ import { Label, Item, Row, Text, Tag } from './'
 import { getReportComments } from './helpers'
 
 const EditorialReportCard = ({
+  publicLabel,
+  privateLabel,
   journal,
   publicReport,
   privateReport,
   recommendation,
-  reviewerName,
-  reviewerRole,
+  editorName,
+  editorRole,
   report: { createdOn, reviewer },
 }) => (
   <Root>
     <Row justify="space-between" mb={2}>
       <Item vertical>
-        <Label mb={1 / 2}>Decision</Label>
+        {editorRole === 'HE' ? (
+          <Label mb={1 / 2}>Recommendation</Label>
+        ) : (
+          <Label mb={1 / 2}>Decision</Label>
+        )}
         <Text>{recommendation}</Text>
       </Item>
 
       <Item justify="flex-end">
         {reviewer && (
           <Fragment>
-            <Text mr={1 / 2}>{reviewerName}</Text>
-            <Tag mr={2}>{reviewerRole}</Tag>
+            <Text mr={1 / 2}>{editorName}</Text>
+            <Tag mr={2}>{editorRole}</Tag>
           </Fragment>
         )}
         <DateParser timestamp={createdOn}>
@@ -40,7 +46,7 @@ const EditorialReportCard = ({
     {publicReport && (
       <Row mb={2}>
         <Item vertical>
-          <Label mb={1 / 2}>Message For Author</Label>
+          <Label mb={1 / 2}>{publicLabel}</Label>
           <Text>{publicReport}</Text>
         </Item>
       </Row>
@@ -49,7 +55,7 @@ const EditorialReportCard = ({
     {privateReport && (
       <Row mb={2}>
         <Item vertical>
-          <Label mb={1 / 2}>Message For Editorial Team</Label>
+          <Label mb={1 / 2}>{privateLabel}</Label>
           <Text>{privateReport}</Text>
         </Item>
       </Row>
@@ -85,8 +91,8 @@ export default compose(
       recommendation: getRecommendationLabel(),
       publicReport: getReportComments({ report, isPublic: true }),
       privateReport: getReportComments({ report, isPublic: false }),
-      reviewerName: getReviewerName(),
-      reviewerRole: getReviewerRole(),
+      editorName: getReviewerName(),
+      editorRole: getReviewerRole(),
     }),
   ),
 )(EditorialReportCard)
diff --git a/packages/component-faraday-ui/src/EditorialReportCard.md b/packages/component-faraday-ui/src/EditorialReportCard.md
index 26fd9dce55e7c917e5944b6baf617a3384c50407..0c81711ef2c425f242e7f7b7433347f78de2aa15 100644
--- a/packages/component-faraday-ui/src/EditorialReportCard.md
+++ b/packages/component-faraday-ui/src/EditorialReportCard.md
@@ -47,7 +47,12 @@ const journal = {
     },
   ],
 }
-;<EditorialReportCard report={report} journal={journal} />
+;<EditorialReportCard 
+    report={report} 
+    journal={journal} 
+    publicLabel="Message For Author" 
+    privateLabel="Message For Editorial Team" 
+  />
 ```
 
 Card with message for the editorial team
@@ -97,7 +102,12 @@ const journal = {
     },
   ],
 }
-;<EditorialReportCard report={report} journal={journal} />
+;<EditorialReportCard 
+    report={report} 
+    journal={journal} 
+    publicLabel="Message For Author" 
+    privateLabel="Message For Editorial Team"  
+  />
 ```
 
 Card with message for the editorial team and for the author
@@ -152,5 +162,11 @@ const journal = {
     },
   ],
 }
-;<EditorialReportCard report={report} journal={journal} />
+
+;<EditorialReportCard 
+    report={report} 
+    journal={journal} 
+    publicLabel="Message For Author" 
+    privateLabel="Message For Editorial Team" 
+  />
 ```
diff --git a/packages/component-manuscript/src/components/EditorialCommentCard.js b/packages/component-manuscript/src/components/EditorialCommentCard.js
index aa9187971fa82db28b3a3896b7fafb78c4520622..077073dbe235136c41641f1aac1a72656b929a88 100644
--- a/packages/component-manuscript/src/components/EditorialCommentCard.js
+++ b/packages/component-manuscript/src/components/EditorialCommentCard.js
@@ -9,7 +9,13 @@ import {
 const EditorialCommentCard = ({ journal, reports = [] }) => (
   <ContextualBox label="Editorial Comments" mb={2}>
     {reports.map(report => (
-      <EditorialReportCard journal={journal} key={report.id} report={report} />
+      <EditorialReportCard
+        journal={journal}
+        key={report.id}
+        privateLabel="Message For Editorial Team"
+        publicLabel="Message For Author"
+        report={report}
+      />
     ))}
   </ContextualBox>
 )
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index f3bfdbb744fc13812e5afdf256cfd53c34584276..b054b71e438ae82970fbfbfe8680a231e5e8782e 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -102,13 +102,12 @@ const ManuscriptLayout = ({
           getSignedUrl={getSignedUrl}
         />
 
-        {get(currentUser, 'permissions.canViewReports', true) &&
-          !!editorialRecommendations.length && (
-            <EditorialCommentCard
-              journal={journal}
-              reports={editorialRecommendations}
-            />
-          )}
+        {get(currentUser, 'permissions.canViewEditorialComments', true) && (
+          <EditorialCommentCard
+            journal={journal}
+            reports={editorialRecommendations}
+          />
+        )}
 
         {submittedOwnRecommendation && (
           <ReviewerReportCard
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index c9ccfc3fa85c03e131d556fd1480e572d821d2f7..1ed05f930396ebf4f38f6ccafec63e9661f885c3 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -48,6 +48,7 @@ import {
   currentUserIsReviewer,
   parseCollectionDetails,
   canMakeHERecommendation,
+  canViewEditorialComments,
   canViewReviewersDetails,
   pendingReviewerInvitation,
   canOverrideTechnicalChecks,
@@ -166,6 +167,11 @@ export default compose(
           }),
           canAssignHE: canAssignHE(state, match.params.project),
           canViewReports: canViewReports(state, match.params.project),
+          canViewEditorialComments: canViewEditorialComments(
+            state,
+            collection,
+            match.params.version,
+          ),
           canInviteReviewers: canInviteReviewers(state, collection),
           canMakeRecommendation: !isUndefined(pendingOwnRecommendation),
           canMakeRevision: canMakeRevision(state, collection, fragment),
diff --git a/packages/xpub-faraday/config/authsome-helpers.js b/packages/xpub-faraday/config/authsome-helpers.js
index 718190c444db9b5404cec625cf3109db0abea80e..c97f8b89a8f9acb1b7b626e5fc5b79636889bf65 100644
--- a/packages/xpub-faraday/config/authsome-helpers.js
+++ b/packages/xpub-faraday/config/authsome-helpers.js
@@ -184,7 +184,11 @@ const stripeFragmentByRole = ({
       return {
         ...fragment,
         recommendations: recommendations
-          ? recommendations.filter(r => r.submittedOn)
+          ? recommendations.filter(
+              r =>
+                r.submittedOn ||
+                r.recommendationType === 'editorRecommendation',
+            )
           : [],
       }
     default: