I have also tried just using the in-built Excel-esque if statements, as follows:
IF(fieldname2<=20833, 625, IF(20833<fieldname2<=50000,fieldname2*0.03,IF(50000<fieldname2<=100000,(fieldname2-50000)*0.03+1500)))
and so on
However, I still have the same issue – it can deal with values up to 50,0000 but above that it still gives a 3% answer