In my experience ATM's from reputable global banks (e.g. Citi, HSBC) are more predictable compared to money changers. In many places of the world money changers can employ various tricks and you always have to double check them. For example a common trick is that the exchange rate varies based on amount of money being exchanged. An advertised rate could be for 1000+ usd with a small print informing you about that.