Grab’s business is built on finding the best matches on its marketplace.

For ride-hailing, we match driver-partners and passengers looking for a ride. For food deliveries, it’s a three-way match between people ordering, F&B vendors, and delivery-partners who can pick up and deliver those orders.

An efficient allocation network will ensure that our driver-partners won’t have to stay idle waiting for jobs, and passengers get a ride when they want one. Food orders are similar; we need to get dishes picked up just as they’re ready, and sent to consumers quickly.

But with driver-partners constantly on the move and dozens of end-users making booking requests at any given time within the same area, how should these matches be made?

What happens when you start looking for a ride

When a passenger makes a booking request, the system generates a list of available driver-partners within the allocation radius.

Grab pinpoints the location of driver-partners and passengers through geohashes—a geocoding system that allows us to identify the area of a map a user is in. Following latitude and longitude lines, the algorithm divides areas into many smaller zones.

(Here’s a deep dive we did into geohashing tech.)

This allows passengers who are checking for fares to be matched to available driver-partners based on distance. A driver-partner is considered more available to nearer passengers compared to further ones—seems logical enough.

In reality, however, there are many factors at play—over 40 others, to be exact.

A passenger who is the closest to the driver may not necessarily be the best match.
Over 40 factors that are weighed to get the best match 

For transport rides, the system starts by identifying driver-partners in the vicinity. After that, the list gets further narrowed based on the driver-partners’ estimated time of arrival. 

Our systems then perform fraud checks. An example of this is where a driver-passenger pair of phones turns out to be the same person trying to trick the system.

Here’s a snapshot of the allocation process:

The system also attempts to match our driver-partners to rides that they prefer based on the type of bookings they tend to accept and decline.

Driver-partners are also able to set a preferred destination for their last trip of the day, and will be matched to suitable trips that take them home.

The level of customisation goes deeper in many of our Southeast Asian markets. For instance, Jakarta has an odd-even licence plate policy meant to reduce traffic congestion; we factor this in and only select cars that are allowed for the day through the routed path and toll gates.

Getting more granular for food deliveries

With Southeast Asia’s roads and the intricacies of food delivery, our ride algorithm gets even more granular. 

Driver-partners who demonstrate a higher level of familiarity with navigating a city’s one-way streets, or two-wheelers for narrow motorcycle-only roads may be prioritised for jobs that pass through these routes. 

This is partially influenced by historical data on how these driver-partners had successfully completed such trips.

Grab’s algorithms also aim to allocate driver-partners who are best-suited to each type of request. 

For deliveries, the algorithm logically assigns larger vehicles to larger orders or longer distances if they are available. In contrast, smaller vehicles like motorcycles or bicycles are typically assigned to smaller orders and shorter trips.

Batching helps to stretch our driver supply further

There will also be times where we do not have enough delivery-partners to pick up all the incoming food orders. The algorithm will then find ways to batch orders together, to ensure that as many requests can be fulfilled as possible within the promised delivery time frame. 

Batching is a complex process that takes into account factors beyond simply assigning orders in the same area to a single driver-partner. 

We weigh out different factors such as the type of items to be delivered, how much they weigh and how long they take to prepare. Our system then routes the sequence of orders to guide a rider through a batch of pickups and drop-offs efficiently.

(One of our service types called Saver delivery relies on batching. Read all about that here.)

Our machine learning systems continue to refine how matching is performed. This is aided by having a wealth of ride data to tap on, learned over billions of completed jobs.

Komsan Chiyadis

GrabFood delivery-partner, Thailand

Komsan Chiyadis

GrabFood delivery-partner, Thailand

COVID-19 has dealt an unprecedented blow to the tourism industry, affecting the livelihoods of millions of workers. One of them was Komsan, an assistant chef in a luxury hotel based in the Srinakarin area.

As the number of tourists at the hotel plunged, he decided to sign up as a GrabFood delivery-partner to earn an alternative income. Soon after, the hotel ceased operations.

Komsan has viewed this change through an optimistic lens, calling it the perfect opportunity for him to embark on a fresh journey after his previous job. Aside from GrabFood deliveries, he now also picks up GrabExpress jobs. It can get tiring, having to shuttle between different locations, but Komsan finds it exciting. And mostly, he’s glad to get his income back on track.