A non-transitory computer readable medium executable on an external controller configured to communicate with a spinal cord stimulator comprising an implantable pulse generator, IPG, and a plurality of electrodes implantable in a patient, wherein the non-transitory computer readable medium comprises instructions, which when executed by the external controller, configure the external controller to: use a graphical user interface, GUI, on a screen of the external controller to determine an indication of efficacy of stimulation provided to the patient by the IPG, based on the indication of efficacy, automatically determine via an evaluation algorithm in the external controller, whether to perform a reprogramming algorithm in the external controller to adjust one or more stimulation parameters, wherein the reprogramming algorithm: changes stimulation from sub-perception stimulation to supra-perception stimulation, obtains an indication from the patient indicating the patient's satisfaction with the supra-perception stimulation, if the patient is dissatisfied with the supra-perception stimulation, enables the IPG to move the supra-perception stimulation from a first location to a new location, obtains an indication from the patient of the patient's satisfaction with the supra-perception stimulation at the new location, and if the patient is satisfied with the supra-perception stimulation at the new location, changes stimulation from supra-perception stimulation to sub-perception stimulation at the new location. use a graphical user interface, GUI, on a screen of the external controller to determine an indication of efficacy of stimulation provided to the patient by the IPG, based on the indication of efficacy, automatically determine via an evaluation algorithm in the external controller, whether to perform a reprogramming algorithm in the external controller to adjust one or more stimulation parameters, wherein the reprogramming algorithm: changes stimulation from sub-perception stimulation to supra-perception stimulation, obtains an indication from the patient indicating the patient's satisfaction with the supra-perception stimulation, if the patient is dissatisfied with the supra-perception stimulation, enables the IPG to move the supra-perception stimulation from a first location to a new location, obtains an indication from the patient of the patient's satisfaction with the supra-perception stimulation at the new location, and if the patient is satisfied with the supra-perception stimulation at the new location, changes stimulation from supra-perception stimulation to sub-perception stimulation at the new location. changes stimulation from sub-perception stimulation to supra-perception stimulation, obtains an indication from the patient indicating the patient's satisfaction with the supra-perception stimulation, if the patient is dissatisfied with the supra-perception stimulation, enables the IPG to move the supra-perception stimulation from a first location to a new location, obtains an indication from the patient of the patient's satisfaction with the supra-perception stimulation at the new location, and if the patient is satisfied with the supra-perception stimulation at the new location, changes stimulation from supra-perception stimulation to sub-perception stimulation at the new location.