Right! I did not think that shift was negative too. So either:

    value = abs(shift) * (lower / central - 1) + 1

or

    value = shift * ( central / lower - 1) + 1

Like it was before.