In order to maximize rewards, JPool's algorithm mostly optimizes stake distribution when new stake is received from delegators or existing stake is withdrawn by them.
Actual movement of stake is only performed in case a validator experiences a significant dip in performance or raises its fee, as the losses related to stake redistribution are smaller than losses incurred by inaction.