diff --git a/lib/workers/repository/process/lookup/bucket.ts b/lib/workers/repository/process/lookup/bucket.ts
index 3c50a95f67ec43dd7854dc7ec1a9afd9023095b7..ba12098d001249833a924788e4a704b9dffd8a3b 100644
--- a/lib/workers/repository/process/lookup/bucket.ts
+++ b/lib/workers/repository/process/lookup/bucket.ts
@@ -19,23 +19,60 @@ export function getBucket(
   }
   const fromMajor = versioning.getMajor(currentVersion);
   const toMajor = versioning.getMajor(newVersion);
-  // istanbul ignore if
+
+  // istanbul ignore if: error case
   if (toMajor === null) {
     return null;
   }
+
+  // Check for major update type first
   if (fromMajor !== toMajor) {
     if (separateMultipleMajor) {
-      return `major-${toMajor}`;
+      return `v${toMajor}`;
     }
+    // default path for major updates is not to separate them
     return 'major';
   }
-  if (separateMinorPatch) {
-    if (
-      versioning.getMinor(currentVersion) === versioning.getMinor(newVersion)
-    ) {
-      return 'patch';
+
+  // If we reach here then we know it's non-major
+
+  const fromMinor = versioning.getMinor(currentVersion);
+  const toMinor = versioning.getMinor(newVersion);
+
+  // istanbul ignore if: error case
+  if (fromMinor === null || toMinor === null) {
+    return 'non-major';
+  }
+
+  // Check the minor update type first
+  if (fromMinor !== toMinor) {
+    /* future option
+    if (separateMultipleMinor) {
+      return `v${toMajor}.${toMinor}`;
     }
-    return 'minor';
+    */
+
+    if (separateMinorPatch) {
+      return 'minor';
+    }
+    // default path for minor updates is not to separate them from patch
+    return 'non-major';
+  }
+
+  // If we reach here then we know it's a patch release
+
+  /* future option
+  if (separateMultiplePatch) {
+    const toPatch = versioning.getPatch(newVersion);
+    if (toPatch !== null && separateMultiplePatch) {
+      return `v${toMajor}.${toMinor}.${toPatch}`;
+    }
+  }
+  */
+
+  if (separateMinorPatch) {
+    return 'patch';
   }
+  // default path for patch updates is not to separate them from minor
   return 'non-major';
 }