This summer Tel Aviv was bustling with live performances by the world’s most successful and popular artists. Whether you prefer Britney Spears, Guns N’ Roses or Radiohead, everyone enjoys an electrifying concert with great music and top-tier showmanship. However, when more than 50,000 people congregate in one place in a densely populated area like Tel Aviv, it can cause a serious disruption to the entire city.


When there is a big concert in town, or any large get-together, there are two critical points in which there is a spike in demand for rides. As you can imagine, these spikes occur right before the concert and right after the concert, when thousands of people wish to be transported at the same time to the same place. This causes pressure on the specific section of the city in which the concert is held, but the disruption doesn’t stop there. Since cabs flow from all over the city to fulfill the increase in demand, other sections of the city are left underserviced. Someone trying to hail a ride in a nearby neighborhood might have to wait for quite a while.

Supplying the demand in the most efficient way possible takes some analysis. Gett’s car service and rideshare app receives an enormous amount of data which feed the algorithms that determine which driver to send to which customer. Getting the nearest and most suitable ride to the right user quickly and efficiently means solving some pretty complex problems. Our matching algorithms consider time, distance and compatibility of the car and driver with the needs and preferences of the user for each dispatch.

But what about using that data to predict a surge in demand and reroute the taxis in the area to prevent a shortage in real time?

Reinforcement Learning for More Effective Dispatch

Gett’s algorithms need to anticipate these spikes to achieve more effective coverage throughout the city and make sure that all the users get optimal service.  To achieve this, we look at the city as a collection of cells by dividing it geographically. Each cell gets a city-related loading number. This number is a weighted index that factors in the number of orders per hour in the cell. Other data values that are taken into account are the number of available and busy drivers in the cell, the median speed in the cell and a representation of the number of recent orders. This is shown in the following figure.


Using machine learning techniques, we can identify recurring patterns that occur immediately before there is a surge in demand in a specific area. This signals with high probability that there is some sort of get-together in that cell. This information allows us to redistribute the available taxis to wherever they are needed most. This detection gives ample time to anticipate the end of the get-together, when there will be an additional surge in demand for people leaving the get-together. Reinforcement learning enables us to learn from previous events and actions taken in the past to better act and constantly improve our service. Below you can see a live example of a normal reference evening versus the night of the Britney Spears Concert at the Exhibition Grounds of Yarkon Park. The red cells show the irregular loading indices. As shown, starting at the end of the concert (20:58), the red values spread to all the adjacent cells, until going back to normal values an hour-and-a-half later (22:28).


Carefully monitoring and analyzing these values gives us the ability to understand transportation needs and act accordingly. This can also help in rerouting public transportation, which has helped us take part in revolutionizing the way Londoners commute or to automatically bring more taxis to a certain section of the city. Getting ahead of these bottleneck situations makes transportation smoother and more effective, and increases productivity and convenience for our millions of users.

Never stop rocking, we’ll keep you rolling.

Learn more

Think you’ll fit in perfectly to the Gett team? See if something matches your skills in our job openings.