does anyone know what kinds of factors affect the body fat testers that send an electric signal through you and according to how it passes tells how much body fat you have?

i think its about +/- 6% accuracy, but im wondering if retaining water affects it, or having a cheat day the day before testing affects it, or if the food in your stomach affects, etc