diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts
index 83147c58ad716fac7b43b7333f4df598ab531a6d..d641e8a96a39f302ede705a3c060181961e2ceca 100644
--- a/lib/platform/github/index.ts
+++ b/lib/platform/github/index.ts
@@ -767,8 +767,16 @@ async function getOpenPrs(): Promise<PrList> {
         const canMergeStates = ['BEHIND', 'CLEAN'];
         const hasNegativeReview =
           pr.reviews && pr.reviews.nodes && pr.reviews.nodes.length > 0;
-        pr.canMerge =
-          canMergeStates.includes(pr.mergeStateStatus) && !hasNegativeReview;
+        // istanbul ignore if
+        if (hasNegativeReview) {
+          pr.canMerge = false;
+          pr.canMergeReason = `hasNegativeReview`;
+        } else if (!canMergeStates.includes(pr.mergeStateStatus)) {
+          pr.canMerge = false;
+          pr.canMergeReason = `mergeStateStatus = ${pr.mergeStateStatus}`;
+        } else {
+          pr.canMerge = true;
+        }
         // https://developer.github.com/v4/enum/mergestatestatus
         if (pr.mergeStateStatus === 'DIRTY') {
           pr.isConflicted = true;
@@ -877,6 +885,9 @@ export async function getPr(prNo: number): Promise<Pr | null> {
     pr.sha = pr.head ? pr.head.sha : undefined;
     if (pr.mergeable === true) {
       pr.canMerge = true;
+    } else {
+      pr.canMerge = false;
+      pr.canMergeReason = `mergeable = ${pr.mergeable}`;
     }
     if (pr.mergeable_state === 'dirty') {
       logger.debug({ prNo }, 'PR state is dirty so unmergeable');
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index f577f4ea9df24fb7cc343f8cba167ffee8ffcf14..4559a2a5cc398535387658a29846f5f02fdc7dc0 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -471,7 +471,10 @@ export async function checkAutoMerge(pr: Pr, config): Promise<boolean> {
       return false;
     }
     if (requiredStatusChecks && pr.canMerge !== true) {
-      logger.info('PR is not ready for merge');
+      logger.info(
+        { canMergeReason: pr.canMergeReason },
+        'PR is not ready for merge'
+      );
       return false;
     }
     const branchStatus = await platform.getBranchStatus(
diff --git a/test/platform/github/__snapshots__/index.spec.ts.snap b/test/platform/github/__snapshots__/index.spec.ts.snap
index 15d00a595cb00601d2d719d40cd9b9487fff54b2..d95c4fbf08ae40e83e6e989c7f96aa5e751eaa8f 100644
--- a/test/platform/github/__snapshots__/index.spec.ts.snap
+++ b/test/platform/github/__snapshots__/index.spec.ts.snap
@@ -170,6 +170,8 @@ Object {
     "sha": "1234",
   },
   "branchName": "somebranch",
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 1,
   "deletions": 1,
   "displayNumber": "Pull Request #91",
@@ -224,6 +226,8 @@ Object {
     "sha": "1234",
   },
   "branchName": "somebranch",
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 1,
   "deletions": 1,
   "displayNumber": "Pull Request #90",
@@ -268,6 +272,7 @@ exports[`platform/github getPr(prNo) should return PR from graphql result 1`] =
 Object {
   "branchName": "renovate/jest-monorepo",
   "canMerge": false,
+  "canMergeReason": "mergeStateStatus = DIRTY",
   "displayNumber": "Pull Request #2500",
   "isConflicted": true,
   "isModified": false,
@@ -298,6 +303,8 @@ Object {
     "sha": "1234",
   },
   "branchName": undefined,
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 1,
   "displayNumber": "Pull Request #1",
   "isConflicted": true,
@@ -333,6 +340,8 @@ Object {
     "sha": "1234",
   },
   "branchName": undefined,
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 1,
   "displayNumber": "Pull Request #1",
   "isConflicted": true,
@@ -350,6 +359,8 @@ Object {
     "sha": "1234",
   },
   "branchName": undefined,
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 2,
   "displayNumber": "Pull Request #1",
   "isConflicted": true,
@@ -367,6 +378,8 @@ Object {
     "sha": "1234",
   },
   "branchName": undefined,
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 1,
   "displayNumber": "Pull Request #1",
   "isConflicted": true,
@@ -384,6 +397,8 @@ Object {
     "sha": "1234",
   },
   "branchName": undefined,
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 2,
   "displayNumber": "Pull Request #1",
   "isConflicted": true,
@@ -401,6 +416,8 @@ Object {
     "sha": "1234",
   },
   "branchName": undefined,
+  "canMerge": false,
+  "canMergeReason": "mergeable = undefined",
   "commits": 2,
   "displayNumber": "Pull Request #1",
   "isConflicted": true,