How UBER surge price works

Omar Faroque
Software System Design
6 min readSep 21, 2018

This is article has been published here originally.

FYI: I will design the whole system in a different blog soon.

How Uber’s Surge Pricing Algorithm Works

Uber Technologies Inc. is an American multinational online transportation network company headquartered in San Francisco, California. It develops, markets and operates the Uber mobile app, which allows consumers with smartphones to submit a trip request which is then routed to Uber drivers who use their own cars. This blog post is about Uber’s Surge Pricing Algorithm. Any regular Uber user is familiar with Uber’s use of dynamic surge pricing — its practice of charging more when demand for rides is higher than the supply of cars.

Uber’s market can be compared to the one-sided markets that we discussed during lecture. The agents here are the riders, and the items that are assigned to them are the rides — under the assumption that the drivers themselves have no preferences regarding riders. Uber’s pricing algorithm automatically detects situations of high demand and low supply and, depending on how much the shortage is, hikes the price in increments. Uber has claimed that these higher prices are supposed to make drivers more likely to bite, putting more Uber cars on the road when they’re most needed. If the Uber system works as advertised, price surges come into effect to keep estimated waiting times in check as demand increases. In this blog post I will analyze how this algorithm works to maintain a matching between the agents and the items, and I will also discuss the strategy proofness of this algorithm.

An ideal scenario is when the number of agents and the number of items are equal. If there are x agents and x items, they can be easily mapped to one another. But when these two numbers are unequal there is a problem (since one item can still only be assigned to one agent). Let us consider the example of x agents and x-y items. Uber’s surge pricing algorithm increases the prices at such a time, to ideally motivate y more Uber drivers to get on the roads. This would make the number of agents and items equal once again.

We can also think about this from another angle: when Uber’s prices surge, the demand decreases, dropping the number of agents by y (to x-y agents). Once again, the number of agents and items become equal and the agent-item matching can be maintained. In reality, a combination of these two scenarios helps to maintain a demand-supply balance in the market. This is how Uber’s pricing algorithm maintains a matching in this one-sided market.

I would now like to discuss another aspect of Uber’s surge pricing algorithm — its strategyproofness. We learned during lecture that a mechanism is strategyproof “if agents cannot benefit by lying about their preferences, no matter what other agents report.” I recently read a study about how Uber’s surge pricing is far from perfect: It appears that in dense areas that have patchy demand, like Times Square in Manhattan, there can be two people standing on either side of a street that may get an Uber at a different price from each other [the study can be viewed through the first link in the sources section below]. Wilson, the lead author of the study, drew the conclusion that, by knowing the boundaries of surge areas or by waiting for short periods to find opportune times, it would be possible for the riders to avoid paying more. This definitely means that this algorithm is not strategyproof, a flaw that Uber has not yet managed to address successfully.

Here is more details:

As some of us know, Uber is a company that created a network which connects people with trip requests and drivers. Currently, Uber is becoming a very popular company based on the value of its network. However, what most of us don’t know is how Uber determines prices. Uber has something called a “surge pricing algorithm,” which is what Uber uses to determine the prices of rides based on the laws of supply and demand. (Interesting note — this algorithm is so important to Uber that the company has filed a patent for it.)

The exact details of the algorithm isn’t known but what the general idea of the “surge pricing algorithm” is that this algorithm is ran every 5–10 minutes to determine the prices of rides for places of high demand. For example, if someone is looking for a Uber ride in New York City during rush hour, the surge pricing algorithm tries to determine the supply that is available at this time in NYC and the demand (every other person who needs a ride at this time in NYC) and the algorithm uses these factors to determine the price of such a ride to the user. The goal of such an algorithm is to maximize the number of rides that can be provided (especially of times with low supply and high demand).

This “market” is similar to the one-sided markets we have discussed in class. (I consider this more similar to the one-sided market than the two-sided market because for drivers, it doesn’t really matter who they drive because they have no preferences about riders — assuming they don’t know the riders and that the money they get is the same regardless. In this market, the agents are the people looking for rides and the items are the rides themselves.) However, in class, we often assumed that there are N agent and N items. In real life, as seen above, there will be times where the number of agents exceed the number of items and Uber tries to deal with such a case.

As always, we cannot assign the same item to two different people and Uber’s algorithm reflects that. However, what Uber does is limit the scope to N agents and N items (what we learned in class) through increasing the price to lower demand. Effectively, if we start with N + M agents and N items, what the surge pricing algorithm does essentially is reduce the N + M agents to N agents, so we will have a market that have N agents and N items. In this case, money is involved. As discussed in class, sometimes when money is used in a market and people are unhappy with the item they are matched with, they get money as compensation. In this case, when Uber prices are high (call it price P) and the alternate is to take public transport (with price T), potential riders who find Uber prices too high may opt out and be “compensated” with P — T amount.

The algorithm is quite effective in such a sense. However, in a recent article where researchers try to determine how the surge pricing algorithm worked, they discovered that there are times where two people standing across the street in NYC may get different prices given by the surge pricing algorithm. As stated in the article, “the lesson is that sometimes by waiting awhile or by knowing the boundaries of surge areas (especially in a place like Times Square), it’s possible to avoid paying more” [1]. This implies that while the surge pricing algorithm does a good job of reducing the problem to N agents and N items, the algorithm allows for users to “deviate” by going to other places or waiting for a certain time to get different rates. This reminds me of “strategy-proof” and what we have learned in class. In the future, it may be worthwhile to consider what is considered “strategy-proof” in such a condition as this one.

Sources:

http://www.ccs.neu.edu/home/cbw/pdf/chen-imc15.pdf

http://www.fastcoexist.com/3052703/the-secrets-of-ubers-mysterious-surge-pricing-algorithm-revealed

http://time.com/3633469/uber-surge-pricing/

https://www.washingtonpost.com/news/wonk/wp/2015/04/17/how-uber-surge-pricing-really-works/

http://www.telegraph.co.uk/technology/uber/11964956/Can-Ubers-surge-pricing-be-gamed.html

https://en.wikipedia.org/wiki/Uber_(company)

--

--