shift planning candidate shift logic