Geographic analysis of access to ATMs in Paraguay

This text is about the times and distances that a financial user invests to be able to use an ATM. If you have information that could enrich this text, please leave it as a comment at the end with a link to the data, how to use the information and your assessment of why you consider it relevant.

To go straight to the heart of the matter, a financial user who wishes to withdraw cash through an ATM must travel an average of 35.99 kilometers with an approximate displacement of 38 minutes by car. 56.57% of the population has an ATM at a distance of less than 1 km and 16.66% take more than half an hour to reach the location.

You can access the spreadsheet with detailed information by clicking here.

When comparing the access in Central and Asunción with respect to the other departments, we find that on average the distance to travel is 1.36 kilometers and it takes about 3 minutes to get there; versus the rest of the country that has to travel about 39.04 kilometers and takes approximately 41 minutes.

To help us understand the impact of this difference, we must consider that Central and Asunción represents about the 37.59% of the population, while 62.40% of the inhabitants are found in the rest of the country.

In order to better understand the situation, let us consider the following graphs:

When coloring the map by total population by district, we see this centralization effect towards Asunción and Central.

On this map I put the point where Google Maps takes me if I ask it to take me to each district, and we get this map. These are the points from where we are going to calculate the distance to the closest ATMs.

And now we place on the map the 2262 geolocated ATMs that we collected. In this map we again see this centralization effect in Asunción and Central. An interesting fact is that the time spent going to an ATM is 13 times higher for the rest of the country.

In fact, when exclusively analyzing the times between districts within the same department, we are going to find a great variation. Let’s take the department of Concepción as an example, we see that it has travel times on average of 55 minutes, a minimum time of less than one minute and a maximum of almost 4 hours (236 minutes) varying according to each district within the department. To a large extent, this gives us the guideline that if we focus on the average travel times by department, we will not obtain a complete vision of reality for that department; where, in the case of Concepción, more than 18,000 people spend more than an hour just traveling to an ATM.

This information gains context when compared using the indicator proposed by the IMF, which is the Number of ATMs per 100,000 adults.

The scope of this analysis is quite small, we only take the closest ATMs in travel time, ignoring a lot of conditions that we do not take into account because we do not have information about it. For example, we do not take into account the time that an ATM is out of service for repairs or refilling, we do not take into account the time it takes to operate it or the occupancy level of each ATM that we imagine must be high on salary dates. I think, however, that it can help us to have a brief look at the current state of affairs.

The use of cash is central to our daily economy, in fact the paper used as an example for this post analyzes the access of ATMs in Austria where they still highlight the importance of access to cash (I save you the reading, they take on average almost 3 munutes and travel 1.2 km). In our case, we can see the use of cash is high, but not abnormal if we compare it with other more developed economies such as Mexico, Germany or Canada, as stated in this report from the Central Bank of Paraguay (BCP).


The first step was to collect geolocated information from ATMs, which luckily both Bancard and Dinelco make available to the public on their websites.

Then we get district information directly from the website of the National Institute of Statistics (INE) and with this data we begin to query Google Maps.

Already having a point within the district, we calculate using geopandas (python library for geographic data) that provides us with a list of the three ATMs closest geometrically to the point we consider for each district. Here it is worth clarifying that we take the three closest ATMs for each district in order to calculate travel time and distance in case a specific ATM is inaccessible. This should help us get to the ATM with the shortest travel time possible.

Having identified the three closest ATMs to each location in the district, we ask Google Maps to calculate the route to each ATM and save the distance of each route and the estimated travel time by car.

Now that we have the travel times and distances of the three closest ATMs to each district, we only have to select the one with the shortest travel time. This is already done directly with a pivot table within the spreadsheet that we linked to at the beginning of the post.

From here we already have the closest ATM in travel time and distance, we only copy the values to a sheet within the spreadsheet and I begin to make observations that seemed interesting to me.

If you find interesting observations in the spreadsheet, please share them in a comment.

For the calculation of distance and travel time, the information provided by Google Maps was used, considering that it corresponds to a traffic on Monday at 11:10 AM. To obtain the districts of Paraguay, the data provided by Google Maps through its API was used. ATM location data was obtained from the DINELCO and BANCARD websites, respectively.

If you are interested in seeing the raw data, you can access the spreadsheet with the information in greater detail.

Sources and recommended reading:

Georeferenced Bancard ATMs

Georeferenced Dinelco ATMs

Departments and Districts of Paraguay

A spatial analysis of access to ATMs in Austria

Central Bank Digital Currency: Implications for Financial Stability and Monetary Policy in Paraguay