I’ve compiled additional exchange rate data for those wanting to top up using USA debit cards to perform the exchange (as opposed to paying Revolut 3% for a USD exchange). Capital One 360 (MasterCard) continues to provide the best foreign exchange rates. Schwab Bank (Visa) is second place. Ally Bank (MasterCard) is third. MasterCard rates consistently beats Visa’s but we are only talking about less than 60 cents per $100 dollars. Also the difference between the best and worst rates is almost always less than 1% ($1 per $100), not really that much unless you are exchanging thousands of dollars per year.
Capital One exchange rates are usually close to the rates shown by xe.com, google.com and Revolut. Amazingly, Capital One rates are sometimes better than all of them, sometimes by as much as 30 cents per $100. Occasionally Capital One is worse by 60 cents per $100. Sometimes Capital One gives a bargain rate for one currency but not another. If you are exchanging big amounts, it actually pays to top up to the best currency and then use Revolut to perform a second exchange.
Capital One claims they use MasterCard rates but this seems false as the two rates don’t seem to track. Ally Bank also says they use MasterCard rates PLUS 1%. So one would think Capital One is always 1% better than Ally but in fact this doesn’t hold true. Capital One is usually .2% to .8% better than Ally, not 1%.
There’s other considerations in choosing a card besides exchange rates. Schwab and Ally reimburse for ATM fees. Schwab and Ally offer 24x7 customer service but Capital One is only 8AM EST to 8PM. If your Capital One card becomes blocked outside of customer service hours, you’re screwed.
Which card do I recommend? Well, actually I suggest two. Right now I’d suggest Capital One and either Schwab or Ally. Even though Ally claims to take an additional 1%, it’s actually more like .2% to .8% plus Ally gives really good service 24x7. Don’t rely on just one top up card because they sometimes get blocked by fraud prevention false positives. Same thing for Revolut card, always have a backup.
Before exchanging large amounts, always test the conversion rate using a small amount such as 10 Euros or 10 GBP. Then check the transaction on your bank site to see what the actual USD charges were and comparing against xe.com to judge rate fairness.
BTW, I top up Revolut with these cards through Apple Pay. Android Pay should give the same results.
Update 24-Dec-2016: I tested 10 Euro top ups followed by 100 Euro top ups. Capital One and Schwab cards became refused/blocked on 100 Euro top up but Ally did not. At 5AM ET, Capital One customer service was closed, Schwab was infinite hold so perhaps their debit card operations were simply closed. [7AM: Schwab now claims the delay was due to Christmas rush. They are open 24x7.] I was unable to get Ally to refuse/block. I called Ally at 5AM ET anyway to see if they could be reached. Not only did an agent answer but he said they have full access to unblock cards 24x7. Kudos to Ally customer service. Ally cost .65% more on USD-GBP and .75% more on USD-EUR. For most people, that’s a small price to pay for excellent service.