What makes being overcharged due to errors more common than being undercharged? If anything I would expect it to be the other way around as it is easier to accidentally fail to scan an item than to accidentally double-scan an item, and personally I'm much more likely to double-check everything when the total comes out surprisingly high than when it comes out surprisingly low.