ATM cash dispenser mechanism distributing banknotes

ATMs are very important transaction points that allow customers to carry out their financial transactions without going through a bank branch. While being able to offer customers 24/7 service is important for customer satisfaction, ensuring the continuity of this service matters to banks. For this reason, banks take certain actions to reduce both operational cost and the cost of cash.

Among these, the most important algorithm is the cash dispensing algorithm. The algorithm used varies from bank to bank. The reason is that the cash-holding capacity of the ATMs in use and the transaction volume carried out at those ATMs differ.

For example, at a bank where all ATMs are dual-tower (meaning both units — recycler and dispenser — hold cash), the criticality of using the Greedy algorithm is lower, since a higher amount of cash is stored in the ATMs. However, at a bank whose ATMs have low cash-holding capacity and high transaction volume, using the Greedy algorithm would be beneficial.

Below are a few algorithms used in the cash-dispensing step of withdrawal transactions:

  • Equal Distribution Algorithm
  • Max. Variety Algorithm
  • Minimum Banknote Algorithm (Greedy Algorithm)

Equal Distribution Algorithm:

In this algorithm, all the denominations given to the customer are kept as equal as possible. For example, when withdrawing 1000 TL from an ATM;

  • 6 x 100 TL
  • 5 x 50 TL
  • 5 x 20 TL
  • 5 x 10 TL notes are given.

Max. Variety Algorithm:

In this algorithm, the withdrawal is carried out by giving the customer notes from every denomination. For example, when withdrawing 1000 TL from an ATM;

  • 9 x 100 TL
  • 1 x 50 TL
  • 2 x 20 TL
  • 1 x 10 TL notes are given.

Minimum Banknote Algorithm (Greedy Algorithm):

In this algorithm, the customer is given the minimum number of banknotes possible. For example, when withdrawing 1000 TL from an ATM;

  • 10 x 100 TL notes are given. (Once the 100 TL notes run out, it proceeds with the other denominations.)

In short, it is more useful to apply a mixed algorithm rather than a single one for ATM cash dispensing.

My recommendation on this topic would be to use the algorithm described below.

It is more appropriate to first calculate the smallest-denomination portion that can be given to the customer (for example, the last 100 TL), dispense that portion in smaller notes, and dispense the remaining amount in the highest-value notes.

For example, when a customer wants to withdraw 1000 TL;

  • 4 x 200 TL
  • 1 x 100 TL
  • 1 x 50 TL
  • 2 x 20 TL
  • 1 x 10 TL — the customer is paid out with this kind of distribution.

In short, although banks' rules on this subject vary, every bank's goal is to increase customer satisfaction and keep that satisfaction level high.