cross-posted from: https://slrpnk.net/post/11375008

Whoever designed the OSM db either never uses ATM machines or they have never experienced anything like the ATM disaster in Netherlands. The OSM db has most ATM brands incorrect for Netherlands and seriously needs more fields so travelers can actually find a functioning ATM.

brands are mostly incorrect

Pick any Dutch city. Search » Categories » custom search » Finance » ATM. The brands are mostly misinfo. These ATM brands do not exist anywhere in Netherlands:

  • Rabobank
  • ABN AMRO
  • Ing
  • SNS

All those banks removed all their ATM machines and joined a monopolistic consortium called “Geldmaat”. There is generally an ATM at those locations but it’s always a Geldmaat ATM. So a simple find and replace is needed on all the Dutch maps.

For indoor ATMs, the brand is often incorrectly named after the shop it’s in. That’s useful for finding it but still missing important info: the actual ATM brand. ATM brand is very important because different ATM brands give differing degrees of shitty treatment. If brand X refuses your card, all instances of that ATM brand will likely refuse your card. So the “brand” field should always reflect the ATM operator. Having a separate shop name field would be useful for locating the machine.

missing key attributes

Travelers should not have to spend hours running from one ATM to another until they find one that works. There are lots of basic variables that need to be accounted for in the db:

  • (real or fixed point) ATM fee
  • (enum set) currencies other than local (a rare but very useful option is to e.g. pull out GBP or USD in the eurozone)
  • (enum set) card networks supported (visa, amex, discover, maestro, etc)
  • (enum set) UI languages supported
  • (integer) transaction limit for domestic cards
  • (integer) transaction limit for foreign cards
  • (integer set) denominations in the machine (Netherlands quietly removed all banknotes >€50 from all ATMs IIUC)
  • (boolean) whether customers can control the denominations
  • (boolean) indoor/outdoor (if the txn limit field is empty, indoor machines often have higher limits)
    • (string) hours of operation (if indoor)
    • (string) name of shop the ATM is inside (if indoor)
  • (enum) whether a balance check is supported: [no | only some cards | any card]; this feature is non-existent in Belgium but common in Netherlands. Note that some ATMs only give balance on their own cards.
    • (enum) whether the balance is on screen or printed to the receipt, or both
  • (boolean) insertion style – whether the card is sucked into the machine (this is very important because if the card is sucked in by a motor there is a real risk that the machine keeps the card [yes, that’s deliberate]). Motorised insertion is more reliable but carries the risk of confiscation. Manual insertion can be fussy and take many tries to get it to read the card but you never have to worry about confiscation.
  • (boolean) dynamic currency conversion (DCC)
  • (boolean) whether there is an earphone port for blind people (not sure if that’s always there)