X axis losing steps on positive X move reversal

I have a head scratcher. I was getting skewed layer passes and have gone thru the usual suspects(belts, pulleys,& hardware). I removed the motor marked the pulley and still have the following issue. If I run a looping program moving the x axis only a distance of 20mm then return to 0 cycling thru this 50 times. . At the end of the run the stop position will actually be at -0.38mm. If I change this to 100mm at 50 cycles I still stop at -0.38 . If I run a single cycle of 1000mm and return to zero I am dead nuts. looking at ideas on how to isolate this drift.

Is your -0.38 in mm or inches?
I am going to assume if you can move 1000mm you do not have a stock X Carve. What machine do you have?