diff --git a/src/PhasedRollOut.js b/src/PhasedRollOut.js
deleted file mode 100644
index b17ed37974..0000000000
--- a/src/PhasedRollOut.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2018 New Vector Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-import SdkConfig from './SdkConfig';
-import {hashCode} from './utils/FormattingUtils';
-
-export function phasedRollOutExpiredForUser(username, feature, now, rollOutConfig = SdkConfig.get().phasedRollOut) {
-    if (!rollOutConfig) {
-        console.log(`no phased rollout configuration, so enabling ${feature}`);
-        return true;
-    }
-    const featureConfig = rollOutConfig[feature];
-    if (!featureConfig) {
-        console.log(`${feature} doesn't have phased rollout configured, so enabling`);
-        return true;
-    }
-    if (!Number.isFinite(featureConfig.offset) || !Number.isFinite(featureConfig.period)) {
-        console.error(`phased rollout of ${feature} is misconfigured, ` +
-            `offset and/or period are not numbers, so disabling`, featureConfig);
-        return false;
-    }
-
-    const hash = hashCode(username);
-    //ms -> min, enable users at minute granularity
-    const bucketRatio = 1000 * 60;
-    const bucketCount = featureConfig.period / bucketRatio;
-    const userBucket = hash % bucketCount;
-    const userMs = userBucket * bucketRatio;
-    const enableAt = featureConfig.offset + userMs;
-    const result = now >= enableAt;
-    const bucketStr = `(bucket ${userBucket}/${bucketCount})`;
-    if (result) {
-        console.log(`${feature} enabled for ${username} ${bucketStr}`);
-    } else {
-        console.log(`${feature} will be enabled for ${username} in ${Math.ceil((enableAt - now)/1000)}s ${bucketStr}`);
-    }
-    return result;
-}
diff --git a/test/PhasedRollOut-test.js b/test/PhasedRollOut-test.js
deleted file mode 100644
index f02411d78d..0000000000
--- a/test/PhasedRollOut-test.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright 2018 New Vector Ltd
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-    http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-import {phasedRollOutExpiredForUser} from '../src/PhasedRollOut';
-
-const OFFSET = 6000000;
-// phasedRollOutExpiredForUser enables users in bucks of 1 minute
-const MS_IN_MINUTE = 60 * 1000;
-
-describe('PhasedRollOut', function() {
-    it('should return true if phased rollout is not configured', function() {
-        expect(phasedRollOutExpiredForUser("@user:hs", "feature_test", 0, null)).toBeTruthy();
-    });
-
-    it('should return true if phased rollout feature is not configured', function() {
-        expect(phasedRollOutExpiredForUser("@user:hs", "feature_test", 0, {
-            "feature_other": {offset: 0, period: 0},
-        })).toBeTruthy();
-    });
-
-    it('should return false if phased rollout for feature is misconfigured', function() {
-        expect(phasedRollOutExpiredForUser("@user:hs", "feature_test", 0, {
-            "feature_test": {},
-        })).toBeFalsy();
-    });
-
-    it("should return false if phased rollout hasn't started yet", function() {
-        expect(phasedRollOutExpiredForUser("@user:hs", "feature_test", 5000000, {
-            "feature_test": {offset: OFFSET, period: MS_IN_MINUTE},
-        })).toBeFalsy();
-    });
-
-    it("should start to return true in bucket 2/10 for '@user:hs'", function() {
-        expect(phasedRollOutExpiredForUser("@user:hs", "feature_test",
-            OFFSET + (MS_IN_MINUTE * 2) - 1, {
-            "feature_test": {offset: OFFSET, period: MS_IN_MINUTE * 10},
-        })).toBeFalsy();
-        expect(phasedRollOutExpiredForUser("@user:hs", "feature_test",
-            OFFSET + (MS_IN_MINUTE * 2), {
-            "feature_test": {offset: OFFSET, period: MS_IN_MINUTE * 10},
-        })).toBeTruthy();
-    });
-
-    it("should start to return true in bucket 4/10 for 'alice@other-hs'", function() {
-        expect(phasedRollOutExpiredForUser("alice@other-hs", "feature_test",
-            OFFSET + (MS_IN_MINUTE * 4) - 1, {
-            "feature_test": {offset: OFFSET, period: MS_IN_MINUTE * 10},
-        })).toBeFalsy();
-        expect(phasedRollOutExpiredForUser("alice@other-hs", "feature_test",
-            OFFSET + (MS_IN_MINUTE * 4), {
-            "feature_test": {offset: OFFSET, period: MS_IN_MINUTE * 10},
-        })).toBeTruthy();
-    });
-
-    it("should return true after complete rollout period'", function() {
-        expect(phasedRollOutExpiredForUser("user:hs", "feature_test",
-            OFFSET + (MS_IN_MINUTE * 20), {
-            "feature_test": {offset: OFFSET, period: MS_IN_MINUTE * 10},
-        })).toBeTruthy();
-    });
-});