Simulating Stability of an Uber-Esque Transit System

IEOR 131 (Discrete Event Simulation) is a core course in the department of IEOR at UC Berkeley. The course requirements include a term project to model and analyze a system of one’s choice. I worked with a group of 4 fellow IEOR students to model and analyze a simple system meant to resemble the dynamics of a decentralized transportation system like Uber.

System of Interest and Motivation for Modeling

For those unfamiliar, Uber is a SaaS company that develops and maintains a mobile application by the same name. The app enables users to request service from crowd-sourced taxi drivers in real time. The taxi drivers are independent contractors who set their own hours, operate their own vehicles, and route all transactions through the Uber app (1). Uber markets itself a service that enables everyone to have a “private driver.”

Our group found Uber particularly interesting because the system is highly stochastic. Both the number of customer requests and the number of drivers on the road are random variables. When demand spikes, Uber raises a “surge pricing” price multiplier (PM) with the intent of stabilizing the system.  An excerpt from Uber’s website is below (2):

Uber rates increase to ensure reliability when demand cannot be met by the number of drivers on the road.

Our goal is to be as reliable as possible in connecting you with a driver whenever you need one. At times of high demand, the number of drivers we can connect you with becomes limited. As a result, prices increase to encourage more drivers to become available.

From this statement, it seems that the PM is adjusted with the intent of increasing supply, rather than both increasing supply and decreasing demand. Whether or not drivers are actually motivated to come “online” based on the PM is a subject of debate. Professor Nick Diakopoulus (University of Maryland, College Park) has analyzed a sample of Uber data trying to answer this question. (His results suggest that surge pricing serves primarily to redistribute drivers already on the road.)

In order to make the topic in line with project requirements for IEOR 131, my group chose to create a simplified model of a system in which demand and supply are stochastic, with a centralized price multiplier as a means of stabilizing the system.

The Model

The Price Multiplier (PM) is central to our model. PM is given by max{1, B * Q / (D + 1)}, where B, Q, and D are defined below. Customers arrive less frequently as PM increases, and drivers come into service more frequently as PM increases.

Key Variables:

  • Q : The number of customers with unassigned requests for service.
  • D : The number of drivers on the road.
  • DMU : Mean time for a driver to arrive with PM = 1.
  • LMU : Mean length of a driver’s shift in minutes.
  • C : Mean time for a customer to arrive with PM = 1.
  • B : Our decision variable and means of enforcing system stability. A high B (  > > D ) will cause demand to drop and supply to increase significantly whenever Q is nonzero. A small B (about 1) will result in more stable prices, but may also result in poor service.

Arrival processes:

  • Inter-arrival times for a customer request for service are exponential with mean C * PM.
  • Inter-arrival times for drivers to become active are exponential with mean DMU / PM.

Service process:

  • Time from [service accepted] to [customer picked up] is max{1, Norm{5, 1}}, where “Norm{m, d}” denotes a normally distributed random variable with mean “m” and standard deviation “d.”
  • Time from [customer picked up] to [customer dropped off] is Uniform{5, 15}.

Departure process:

  • Time from [driver becomes active] to [driver shift ends] is max{30, Norm{LMU, 0.2 * LMU}}

Analysis and Results

One set of input parameters for our
One set of input parameters for our “Uber” simulation.

The image above shows the first set of inputs fed into our “Uber” model. A Java program computed the cartesian product of these inputs and wrote the result to a text file (for batch processing by the simulation engine (Sigma). Sigma output was imported into MATLAB where we performed the following analysis.

Initially, we measured system stability by variation in PM- we thought that a stable system was characterized by stable prices. To quantify variation in PM, we choose the coefficient of variation. The figure below shows significant tendency toward B = 1. But while developing the model it seemed as though higher values of B resulted in Q closer to zero and more stable number of drivers on the road. We considered minimizing Q as an alternate metric and see a complete shift in the prefered value for B (near B = 19).

Input-Output Relationships (including optimal "B") for Average Q and Coefficient of Variation of PM
Input-Output Relationships (including optimal “B”) for Average Q and Coefficient of Variation of PM

Citations

(1) https://get.uber.com/drive/

(2) https://help.uber.com/h/6c8065cf-5535-4a8b-9940-d292ffdce119