I understand that Rick and many others recommend changing money at ATMs for "the best rates", and just to confirm that, here is my math:
My bank charges 5 dollars per international ATM transaction plus 3% of the amount withdrawn. So, for example, if I withdraw my maximum daily allowance of 300 USD, they will charge me 5 dollars plus the 3%=9 dollars, for a total of 14 dollars. 14 dollars is 4.7% of the total. That seems like a pretty good rate, right?
I can also order currency online through the bank at about 4.5% (1.76 USD for 1 GBP versus today's rate of 1.68 USD per 1 GBP, or eight cents extra per GBP "purchased"). They also add a 15 dollar shipping fee, no matter how much I order, which is a much higher overall percentage even if I withdraw a large amount of cash before the trip.
The ATM is much better for the small amounts I'll probably be withdrawing.