diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js
index ae27459df20bf64225c3a0ee827c21ccc73f9ff4..eecdbeb4e47f37b26d6f793d4ee268b086137426 100644
--- a/lib/util/package-rules.js
+++ b/lib/util/package-rules.js
@@ -17,6 +17,7 @@ function applyPackageRules(inputConfig) {
     currentValue,
     fromVersion,
     updateType,
+    isBump,
   } = config;
   const packageRules = config.packageRules || [];
   logger.trace(
@@ -66,7 +67,9 @@ function applyPackageRules(inputConfig) {
       negativeMatch = negativeMatch || !isMatch;
     }
     if (updateTypes.length) {
-      const isMatch = updateTypes.includes(updateType);
+      const isMatch =
+        updateTypes.includes(updateType) ||
+        (isBump && updateTypes.includes('bump'));
       positiveMatch = positiveMatch || isMatch;
       negativeMatch = negativeMatch || !isMatch;
     }
diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js
index 54205c6d6af7019ba08d58ab6c0ea29dde973795..32ce512ff5fcd82963f8fde2835d4b9e8887f7f5 100644
--- a/lib/workers/repository/process/lookup/index.js
+++ b/lib/workers/repository/process/lookup/index.js
@@ -190,6 +190,19 @@ async function lookupUpdates(config) {
       }
     }
   }
+  for (const update of res.updates) {
+    const { updateType, fromVersion, toVersion } = update;
+    if (updateType === 'bump') {
+      update.isBump = true;
+      if (getMajor(toVersion) > getMajor(fromVersion)) {
+        update.updateType = 'major';
+      } else if (getMinor(toVersion) > getMinor(fromVersion)) {
+        update.updateType = 'minor';
+      } else {
+        update.updateType = 'patch';
+      }
+    }
+  }
   // Strip out any non-changed ones
   res.updates = res.updates
     .filter(update => update.newDigest !== null)
diff --git a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
index 2b079c41461b344f36b9956f8240805fef33741e..e8bd7a702f69c0e207774664bf334ffef11fc04d 100644
--- a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
+++ b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
@@ -819,6 +819,7 @@ Array [
   Object {
     "canBeUnpublished": false,
     "fromVersion": "1.0.0",
+    "isBump": true,
     "isRange": true,
     "isSingleVersion": false,
     "newMajor": 1,
@@ -826,7 +827,7 @@ Array [
     "newValue": "^1.4.1",
     "releaseTimestamp": "2015-05-17T04:25:07.299Z",
     "toVersion": "1.4.1",
-    "updateType": "bump",
+    "updateType": "minor",
   },
 ]
 `;
@@ -836,6 +837,7 @@ Array [
   Object {
     "canBeUnpublished": false,
     "fromVersion": "1.0.0",
+    "isBump": true,
     "isRange": true,
     "isSingleVersion": false,
     "newMajor": 1,
@@ -843,7 +845,7 @@ Array [
     "newValue": ">=1.4.1",
     "releaseTimestamp": "2015-05-17T04:25:07.299Z",
     "toVersion": "1.4.1",
-    "updateType": "bump",
+    "updateType": "minor",
   },
 ]
 `;
@@ -853,6 +855,7 @@ Array [
   Object {
     "canBeUnpublished": false,
     "fromVersion": "1.0.0",
+    "isBump": true,
     "isRange": true,
     "isSingleVersion": false,
     "newMajor": 1,
@@ -860,7 +863,7 @@ Array [
     "newValue": "~1.0.1",
     "releaseTimestamp": "2014-03-11T18:47:17.560Z",
     "toVersion": "1.0.1",
-    "updateType": "bump",
+    "updateType": "patch",
   },
   Object {
     "canBeUnpublished": false,
@@ -877,6 +880,24 @@ Array [
 ]
 `;
 
+exports[`manager/npm/lookup .lookupUpdates() supports majorgte updates 1`] = `
+Array [
+  Object {
+    "canBeUnpublished": false,
+    "fromVersion": "0.9.0",
+    "isBump": true,
+    "isRange": true,
+    "isSingleVersion": false,
+    "newMajor": 1,
+    "newMinor": 4,
+    "newValue": ">=1.4.1",
+    "releaseTimestamp": "2015-05-17T04:25:07.299Z",
+    "toVersion": "1.4.1",
+    "updateType": "major",
+  },
+]
+`;
+
 exports[`manager/npm/lookup .lookupUpdates() supports minor and major upgrades for ranged versions 1`] = `
 Array [
   Object {
diff --git a/test/workers/repository/process/lookup/index.spec.js b/test/workers/repository/process/lookup/index.spec.js
index 98f1822ed1cbe605aa73885a757e4a5b16a67e31..7be07b707dfccea2a6b0aa4ac662824abbc4fa63 100644
--- a/test/workers/repository/process/lookup/index.spec.js
+++ b/test/workers/repository/process/lookup/index.spec.js
@@ -756,6 +756,16 @@ describe('manager/npm/lookup', () => {
         .reply(200, qJson);
       expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot();
     });
+    it('supports majorgte updates', async () => {
+      config.rangeStrategy = 'bump';
+      config.currentValue = '>=0.9.0';
+      config.depName = 'q';
+      config.purl = 'pkg:npm/q';
+      nock('https://registry.npmjs.org')
+        .get('/q')
+        .reply(200, qJson);
+      expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot();
+    });
     it('rejects in-range unsupported operator', async () => {
       config.rangeStrategy = 'bump';
       config.currentValue = '>1.0.0';