Assume a ridesourcing market with platforms P = {p1, …, pn}, each offering ride-hailing (‘solo’ rides) or ride-pooling in area A. Platforms in P generate revenue by charging a commission on each transaction between travellers and drivers in the market. We assume constant pricing and commissions, both within-day (operational) and day-to-day (tactical). Demand for each platform follows from the mode choice decisions of traveller agents T = {t1, …, tb} which make a daily trip within the boundaries of A. The fleet size of ridesourcing platforms depends on the daily work decisions of potential drivers, which we from hereon refer to as job seekers J = {j1, …, jl}, who compare the utility derived from driving in the ridesourcing market to the utility of alternative opportunities.
We study the implications of ridesourcing market fragmentation using a simulation model designed to capture multiple day-to-day processes associated with ridesourcing supply and demand, as well as the within-day operations of such markets, as visualised in the conceptual framework in Fig. 2. Specifically, on each day in our day-to-day simulation model of the ridesourcing market the following five subsequent processes take place:
-
I.
Diffusion of market awareness — a precondition for platform registration — is captured through a peer-to-peer communication process for the aggregated ridesourcing market, i.e. agents learn about the existence of all platforms in P when (first) exposed to information about the ridesourcing market. The awareness diffusion speed depends on the number of unaware individuals as well as the number of market participants.
-
II.
Agents that are aware of the existence of the market make an occasional platform registration decision, in which they assess the trade off between expected benefits from participating in a platform and long-term costs associated with platform registration (e.g. leasing a vehicle). Here, we also model how they learn about system performance by communicating with agents about recent experiences in the market.
-
III.
Registered agents then make a daily platform participation decision, in which they compare the expected utility derived from platform participation to the utility of alternatives, i.e. alternative modes for travellers and alternative activities for job seekers. The expected utility derived from using the platform for travellers depends on the expected waiting time, in-vehicle time and ride fare. For job seekers, it depends on the expected financial return.
-
IV.
In representing the within-day ridesourcing operations following from previously mentioned participation decisions, we capture platforms’ matching of customers to drivers and in case of ride-pooling also to other customers, customers’ ride offer acceptance decisions, as well as drivers’ repositioning behaviour.
-
V.
Customers and drivers update their expected participation utility for the next day based on their individual experience participating in the ridesourcing market. Day-to-day learning is modelled using an exponential smoothing formulation.

Conceptual representation of the day-to-day simulation model.
Both traveller agents and job seeker agents in the model are either (inherently) unwilling or willing to multi-home. Specifically, travellers T are subdivided into two subsets: single-homing travellers \({T}^{{\prime} }\), who will only enter in exclusive arrangements with platforms, and multi-homing travellers T″ who will always register with all platforms in P if they decide to incur market registration costs. Similarly, single-homing job seekers \({J}^{{\prime} }\) will exclusively register with a single platform, whereas multi-homing job seekers J″ will register with all platforms in P. The probability that travellers and job seekers are open to multi-homing are denoted ρtrav and ρjs, respectively.
First, we describe previously mentioned day-to-day processes in the ridesourcing market in more detail for single-homing agents. Then, we elucidate the distinctions in these processes for agents engaged in multi-homing. Finally, we explain how market convergence is established based on double-sided platform participation levels, how we determine the number of replications for statistical significance, and how the computational complexity of the simulation model is kept low.
For the description of the different model components in the remainder of this section, we use set notations for relevant (single-homing) traveller and job seekers subpopulations. These notations are visualised in Fig. 3. First, the populations of single-homing travellers \({T}^{{\prime} }\) and job seekers \({J}^{{\prime} }\) are subdivided into those aware of the ridesourcing market on any given day k — \({({T}^{{\prime} })}_{k}^{{\rm{aware}}}\) and \({({J}^{{\prime} })}_{k}^{{\rm{aware}}}\), respectively — and those not aware — \({({T}^{{\prime} })}_{k}^{{\rm{unaware}}}\) and \({({J}^{{\prime} })}_{k}^{{\rm{unaware}}}\), respectively. Aware agents are further subdivided into individuals registered with platform p (for each p ∈ P) and individuals that are not registered with any platform on day k. Registered agents can be further classified depending on the result of their participation decision on this day. Following from the participation decisions in the day-to-day model, Travellers opting to (exclusively) use a ridesourcing platform p on day k are from hereon referred to as customers \({C}_{pk}^{{\prime} }\), job seekers working (exclusively) for this platform as \({D}_{pk}^{{\prime} }\). \({({T}^{{\prime} })}_{pk}^{{\rm{alt}}}\) denotes travellers registered with p that choose another mode, \({({J}^{{\prime} })}_{pk}^{{\rm{reject}}}\) registered job seekers with p that opt for another activity.
Tree diagrams visualising set notations. Each branch is related to one of the day-to-day processes in ridesourcing evolution, either awareness diffusion (first branch level in the tree), registration decisions (second level) or participation decisions (third level). a Notations associated with single-homing travellers. b Notations associated with single-homing job seekers.
Awareness diffusion (I)
Insufficient awareness during the initial stages of innovation adoption can impede innovation’s uptake, and for markets with strong network effects where scale directly influences service quality, accounting for awareness diffusion is essential because it allows initial market share differences to amplify through performance disparities, potentially leading to either market failure or monopolistic outcomes. There is generally limited empirical evidence regarding how potential users become aware of innovations, particularly within the context of the ridesourcing market. It is likely influenced by a complex interplay of factors, including peer-to-peer interactions, mass media communication, and platform marketing strategies. Due to the dearth of empirical underpinning for the awareness diffusion process in the ridesourcing market, especially concerning the impact of marketing strategies and global communication sources, we have chosen to employ a model based on peer-to-peer interactions.
Specifically, we adopt the diffusion model proposed by ref.1 in which the (aggregated) awareness diffusion rate on each side of the market depends on market participation levels. Each day, all travellers T = {t1, …, tb} and job seekers J = {j1, …, jl} communicate randomly with yawareness,trav and yawareness,js other individuals, respectively, who may be either aware or unaware of the existence of the market. Communication occurs only within groups: travellers with travellers, and job seekers with job seekers. During an interaction between someone unaware of ridesourcing and a ridesourcing market participant (a driver or customer), we assume a common probability Π of transmitting awareness about the ridesourcing market across travellers and job seekers, as no empirical evidence supports differentiating between the two. Let us denote \({C}_{k}^{{\prime\prime} }\) as the set of multi-homing customers and \({D}_{k}^{{\prime\prime} }\) as the set of multi-homing drivers on day k. Then, the probabilities that unaware travellers and unaware job seekers become aware of ridesourcing market P on this day, respectively, are:
$${\phi }_{tk}^{{\rm{inform,traveller}}}=\frac{\Pi \cdot {y}^{{\rm{awareness,trav}}}\cdot \left(| {C}_{k}^{{\prime\prime} }| +{\sum }_{p\in P}| {C}_{pk}^{{\prime} }| \right)}{b},\,\forall t\in {({T}^{{\prime} })}_{k}^{{\rm{unaware}}}$$
(1)
$${\phi }_{tk}^{{\rm{inform,js}}}=\frac{\Pi \cdot {y}^{{\rm{awareness,js}}}\cdot \left(| {D}_{k}^{{\prime\prime} }| +{\sum }_{p\in P}| {D}_{pk}^{{\prime} }| \right)}{l},\,\forall j\in {({J}^{{\prime} })}_{k}^{{\rm{unaware}}}$$
(2)
The preceding specification of the awareness diffusion model contains the following assumptions:
-
Individuals are either entirely unaware or aware of the entire ridesourcing market, i.e. of all or none of the platforms in P.
-
Travellers do not receive information about the ridesourcing market’s existence from job seekers, and vice versa.
-
Single-homing and multi-homing agents are treated identically in the information diffusion process.
-
Ultimately, all travellers and job seekers learn about the ridesourcing market, unless the market reaches an equilibrium in which no travellers or no job seekers participate in the ridesourcing market. This is in line with the widespread familiarity with ridesourcing platforms seen today, as exemplified in the Netherlands45.
Platform registration (II)
Since the process of (de-)registering with a platform can be time-consuming and comes with substantial medium- to long-term (financial) commitments, registration decisions have a more tactical nature compared to travellers’ and job seekers’ daily market participation decisions. Therefore, it is assumed that on a given day travellers and job seekers that are aware of the ridesourcing market reevaluate their registration status – being registered or unregistered—with a probability γ. In addition, we assume that they cannot deregister in the first ν days after registering with a platform.
Our model assumes two subsequent decision-making processes in the registration decisions of (single-homing) job seekers. The first one entails the choice between platforms, the second one the choice between being registered with the preferred platform and not being registered at all. Travellers in our model do not make the second decision, following the limited burden associated with demand-side registration, i.e. a few administrative procedures. In other words, we assume that they will always register with one of the platforms in P.
Prior to the registration decision, travellers seek information about waiting time and pooling detours when using ridesourcing platform p, while job seekers seek information about the earnings when driving for this platform. Specifically, we assume that travellers and job seekers are informed about the experiences of yregist agents participating on their side of the market in platform p on day k − 1, i.e. about their experienced travel time (travellers) and income (job seekers), where each observed experience is given equal weight. We apply exponential smoothing to represent a higher valuation of recent information in comparison to past information, considering possibly on-going evolution of ridesourcing platforms’ participation levels. Particularly, travellers and job seekers assign a weight κcomm to the average received information signal \({\widetilde{x}}_{tpk}\) and \({\widetilde{x}}_{jpk}\), respectively, based on yregist interactions, relative to their (personal) previous expectation for relevant indicator \({\widehat{x}}_{tp,k-1}\) and \({\widehat{x}}_{jp,k-1}\). Hence:
$${\widehat{x}}_{tpk}=(1-{\kappa }_{tpk}^{{\rm{comm}}})\cdot {\widehat{x}}_{tp,k-1}+{\kappa }_{tpk}^{{\rm{comm}}}\cdot {\widetilde{x}}_{tpk}$$
(3)
$${\widehat{x}}_{jpk}=(1-{\kappa }_{jpk}^{{\rm{comm}}})\cdot {\widehat{x}}_{jp,k-1}+{\kappa }_{jpk}^{{\rm{comm}}}\cdot {\widetilde{x}}_{jpk}$$
(4)
The assigned weight can vary between registered agents and unregistered agents, considering that the former group can accumulate personal experiences:
$${\kappa }_{tpk}^{{\rm{comm}}}=\left\{\begin{array}{ll}{\kappa }^{{\rm{comm,registered}}} & t\in {({T}^{{\prime} })}_{pk}^{{\rm{registered}}}\\ {\kappa }^{{\rm{comm,unregistered}}} & \,{\rm{otherwise}}\end{array}\right.$$
(5)
$${\kappa }_{jpk}^{{\rm{comm}}}=\left\{\begin{array}{ll}{\kappa }^{{\rm{comm,registered}}} & j\in {({J}^{{\prime} })}_{pk}^{{\rm{registered}}}\\ {\kappa }^{{\rm{comm,unregistered}}} & \,{\rm{otherwise}}\end{array}\right.$$
(6)
Specifically, the indicators travellers learn about are platforms’ waiting time wtpk, and relative detour factor ztpk when opting for pooling. Job seekers learn about income ijpk when spending a day driving for the platform.
When making a registration decision, (single-homing) travellers choose to register with one or none of the platforms in P. The utility derived from registering with platform p depends on the expected utility when travelling with this platform \({U}_{tpk}^{{\rm{travel}}}\), the composition of which is described in the subsection on market participation. We assume that unobserved variables are less prominent in (more tactical) registration decisions compared to daily participation decisions, which we account for by multiplying the travel (participation) utility associated with platform p with parameter θtrav, taking the value of 1 or more, when determining the utility of being registered with this platform:
$${U}_{tpk}^{{\rm{registered}}}={\theta }^{{\rm{trav}}}\cdot {U}_{tpk}^{{\rm{travel}}}$$
(7)
We apply a Logit model so that the probability of being registered with platform p at the end of day k is formulated as follows:
$${\phi }_{tpk}^{{\rm{registered}}}=\frac{\exp ({U}_{tpk}^{{\rm{registered}}})}{{\sum }_{p\in P}\exp ({U}_{tpk}^{{\rm{registered}}})}$$
(8)
Single-homing job seekers first decide on their preferred platform, assuming they need to register with one, followed by an actual registration decision for this platform. In the first decision, they compare, for all platforms in P, the expected daily surplus sjpk associated with being registered with platform p over not being registered at all. The definition of the (economic) surplus in our model is taken from ref.46. Specifically, the surplus depends on the expected utility \({U}_{jpk}^{{\rm{participate}}}\) derived from driving for the platform and the expected utility \({U}_{j}^{{\rm{alt}}}\) derived from alternative opportunities in the time otherwise spent working. The surplus value accounts for observed and unobserved variables in the participation decision by integration of income sensitivity parameter βinc:
$${s}_{jpk}=\frac{ln\left(\exp ({U}_{jpk}^{{\rm{participate}}})+\exp ({U}_{j}^{{\rm{alt}}})\right)}{{\beta }^{{\rm{inc}}}}$$
(9)
We refer the reader to the subsection on market participation for the definitions of \({U}_{jpk}^{{\rm{participate}}}\) and \({U}_{j}^{{\rm{alt}}}\).
We apply a Logit model with sensitivity parameter βreg,platform and error term εregistration. The utility of being registered with platform p on day k for job seeker j is defined as:
$${U}_{jpk}^{{\rm{registered,platform}}}={\beta }^{{\rm{reg,platform}}}\cdot {s}_{jpk}+{\varepsilon }^{{\rm{registration}}}$$
(10)
The probability that job seeker j prefers platform p ∈ P when being registered in the market on day k is then defined as:
$${\phi }_{jpk}^{{\rm{registered,platform}}}=\frac{\exp ({U}_{jpk}^{{\rm{registered,platform}}})}{{\sum }_{p\in P}\exp ({U}_{jpk}^{{\rm{registered,platform}}})}$$
(11)
We note that \({\phi }_{jpk}^{{\rm{registered,platform}}}\) represents the relative probability between platforms conditional on registration with any platform, rather than the absolute probability that job seeker j is registered with platform p, considering the option to be entirely unregistered from the market. Below, we explain the utilities and probabilities associated with the market registration decision.
First, we assume job seeker j draws platform p* as their preferred platform for market registration on day k based on probabilities \({\phi }_{jpk}^{{\rm{registered,platform}}},\forall p\in P\). We posit that job seekers incur a daily (non-operational) expense denoted as ϒ when they are registered in the ridesourcing market. With βreg,market as the monetary sensitivity parameter in the market registration decision, the utility of registering in the ridesourcing market – considering the previous choice for platform p*—is now denoted as:
$${U}_{jk}^{{\rm{registered,market}}}={\beta }^{{\rm{reg,market}}}\cdot ({s}_{j{p}^{* }k}-\Upsilon )+{\varepsilon }^{{\rm{registration}}}$$
(12)
As for the platform registration model, we assume a logit model specification for the market registration decision. We denote \({\phi }_{jk}^{{\rm{registered,market}}}\) as the probability of being registered in the ridesourcing market on day k for job seeker j making a (de)registration decision at the start of that day. With the utility of the alternative choice — not registering to the market — fixed to 0, this probability is formulated as:
$${\phi }_{jk}^{{\rm{registered,market}}}=\frac{\exp ({U}_{jk}^{{\rm{registered,market}}})}{\exp ({U}_{jk}^{{\rm{registered,market}}})+1}$$
(13)
Job seekers’ sensitivity to monetary gains may be different in platform choice compared to market registration choice. We therefore introduce two separate multipliers θjs,platform and θjs,market for converting job seekers’ income sensitivity βinc in participation choice to the monetary sensitivity parameter in registration choice:
$${\beta }^{{\rm{reg,platform}}}={\theta }^{{\rm{js,platform}}}\cdot {\beta }^{{\rm{inc}}}$$
(14)
$${\beta }^{{\rm{reg,market}}}={\theta }^{{\rm{js,market}}}\cdot {\beta }^{{\rm{inc}}}$$
(15)
Market participation (III)
Every day, travellers \({({T}^{{\prime} })}_{pk}^{{\rm{regist}}}\) registered with ridesourcing platform p decide to request a ride offer using this platform or to opt for another mode of transportation for their daily trip. In making their choices, travellers assess travel time, cost, and mode-specific preferences. Notably, in our model travellers’ value of time may vary across modes, and different time attributes, namely in-vehicle time, waiting time at a stop, and stop access time, may be perceived distinctively. Value of time and mode-specific attributes may also vary among individuals.
Hence, we specify time parameters \({\beta }_{tm}^{{\rm{ivt}}}\), \({\beta }_{tm}^{{\rm{wait}}}\), and \({\beta }_{tm}^{{\rm{access}}}\) to describe a traveller’s perception of in-vehicle time, waiting time and stop access time, respectively. Financial costs associated with the selection of mode m on day k are expressed as ftmk and allocated a weight of βcost in the utility function. Preferences associated with modes are accounted for by specifying ASCtm as the constant of traveller t related to mode m. If public transport is offered, transfers induce an above-and-beyond utility penalty denoted as βtransfer.
Mode attributes and consequently utilities are considered constant from day-to-day for all modes other than ridesourcing. In contrast, in the case of ridesourcing, the (expected) waiting time and in-vehicle time (for pooling) are endogenous variables, while all other variables remain constant.
To address attributes other than time, cost and mode-specific constants in mode choice, a random utility model is employed with error term εmode. We define \({\widehat{v}}_{tmk}\) as the (anticipated) time spent on-board a vehicle, atmk as the access time required to reach a pick-up location/stop, \({\widehat{w}}_{tmk}\) as the (anticipated) waiting time at a pick-up location/stop, and otmk as the number of transfers with mode m on day k. The set of modes is denoted Mk and includes platform p if a traveller is registered with this platform on day k. The utility associated with each mode in Mk for traveller t and the subsequent probability of choosing that particular mode are, respectively, determined as follows:
$$\begin{array}{rcl}{U}_{tmk}^{{\rm{travel}}} & = & {\beta }_{tm}^{{\rm{ivt}}}\cdot {\widehat{v}}_{tmk}+{\beta }_{tm}^{{\rm{access}}}\cdot {a}_{tmk}+{\beta }_{tm}^{{\rm{wait}}}\cdot {\widehat{w}}_{tmk}+{\beta }^{{\rm{transfer}}}\cdot {o}_{tmk}\\ & & +{\beta }^{{\rm{cost}}}\cdot {f}_{tmk}+AS{C}_{tm}+{\varepsilon }^{{\rm{mode}}}\end{array}$$
(16)
$${\phi }_{tmk}^{{\rm{travel}}}=\frac{\exp ({U}_{tmk}^{{\rm{travel}}})}{{\sum }_{m\in {M}_{k}}\exp ({U}_{tmk}^{{\rm{travel}}})}$$
(17)
Every day, registered job seekers decide whether they want to spend their day driving for the platform. We assume that they decide to work when the expected income, denoted as \({\widehat{i}}_{jk}\), surpasses the opportunity costs associated with their working time, represented as rj. This assumption is in line with the principles of the neoclassical theory of labour supply, as detailed in previous research47,48,49.
Similar to the previously described registration decision, we utilise a random utility model to account for various factors influencing the participation decision apart from income. These factors include day-to-day fluctuations in job seekers’ reservation wage due to varying activity schedules. We introduce an income sensitivity parameter βinc and an error term εparticipation to encompass income-related and random elements and imperfect knowledge in the decision-making process.
The utility associated with driving, the utility associated with alternative opportunities, and the resulting likelihood that registered job seeker \(j\in {({J}^{{\prime} })}_{pk}^{{\rm{registered}}}\) works for platform p on a given day k are, respectively, defined as:
$${U}_{jpk}^{{\rm{participate}}}={\beta }^{{\rm{inc}}}\cdot {\widehat{i}}_{jpk}+{\varepsilon }^{{\rm{participation}}}$$
(18)
$${U}_{j}^{{\rm{alt}}}={\beta }^{{\rm{inc}}}\cdot {r}_{j}+{\varepsilon }^{{\rm{participation}}}$$
(19)
$${\phi }_{jpk}^{{\rm{participate}}}=\frac{\exp ({U}_{jpk}^{{\rm{participate}}})}{\exp ({U}_{jpk}^{{\rm{participate}}})+\exp ({U}_{j}^{{\rm{alt}}})}$$
(20)
Within-day simulation (IV)
The within-day model captures the short-term decision-making of drivers, customers and platforms on day k in a time-based simulation. The goal is to model travel and driving experiences in the market to establish actual experienced attributes for ridesourcing customers and drivers, which likely differ from their expectations in pre-day participation decisions. For customers, these include fare, travel time, and waiting time; for drivers, revenue and cost. The within-day model’s outcomes for the most recent day, combined with historical data, inform travellers’ and job seekers’ decisions about future market registration and participation.
As an outcome of the day-to-day model, input to the within-day simulation are job seekers \({D}_{pk}^{{\prime} }\subset {J}^{{\prime} }\) that decided to work as drivers for platforms p ∈ P. Single-homing drivers have exclusive arrangements with platforms, i.e. \({\bigcap }_{p\in P}{D}_{pk}^{{\prime} }={\rm{\varnothing }}\). Likewise, travellers that seek to use ridesourcing service p on a given day are described by the set of customers \({C}_{pk}^{{\prime} }\subset {T}^{{\prime} }\). Each customer \(c\in {C}_{pk}^{{\prime} }\) is described by an origin location \({o}_{c}^{{\rm{req}}}\), destination location \({d}_{c}^{{\rm{req}}}\) and a request time \({t}_{c}^{{\rm{req}}}\). Again, single-homing customers are tied to a single platform, i.e. \({\bigcap }_{p\in P}{C}_{pk}^{{\prime} }={\rm{\varnothing }}\). During the simulation, the goal of each platform is to assign schedules (a sequence of stops) to drivers working for the platform that serve incoming customer requests.
A simulation time step, typically set in seconds or minutes, consists of three main steps: (1) Driver states (e.g. position, on-board customers) are updated according to the currently assigned plan. (2) Incoming customer requests are treated sequentially. Requests are replied by corresponding platforms with an offer consisting of estimated waiting time, travel time and fare, which is used by the customer to decide for (or against) a platform. (3) The platform centrally re-optimises currently assigned driver schedules.
A platform is here assumed to either offer only solo or only pooled rides. In this study, the trip assignment objective for both platforms is to minimise the total driving time for the platform. For a ride-hailing service, this will minimise the time deadheading to pick-up locations and for a ride-pooling service, two customers will share a trip unless the total vehicle time to perform both rides with a single vehicle is longer than two vehicles providing the service. For this study, time constraints are introduced to provide an attractive, yet operationally efficient service for customers. A maximum waiting time of σwait and a maximum relative detour/delay time of σdetour, compared to the direct route travel time, are imposed. The detour/delay time also includes boarding of other passengers, where each boarding process is modelled to last υ seconds.
Offers are created by the platform by inserting the pick-up and drop-off of a customer request into the current schedules of its drivers, and selecting the one with the best change in the above-mentioned criterion. If no feasible option is found, a request is rejected by the platform. From this schedule, expected waiting time and travel time for the customer is extracted. Platforms offering solo rides are operated based on a base fare fbase and a solo km fare fkm. Pooling is offered to travellers at a discount λ on the whole fare. If they receive an offer, single-homing customers will accept this offer, i.e. they do not wait for future offers or (re)consider alternative transport options. After a customer booked the service with one of the platforms, this platform will inform the assigned driver about the new plans. For simplicity, it is assumed that drivers accept all new assignments.
As the insertion procedure usually results in sub-optimal assignments of trip schedules to drivers, a global re-optimisation is triggered and performed by each platform. The algorithm is based on ref.50. As this algorithm is not the focus of this study, the reader is referred to ref.51 for details of its implementation.
Once drivers become idle, i.e. do not have a trip assigned by a platform, they might consider driving to network regions where they expect demand to increase the probability for a new assignment and therefore to increase revenue. It is assumed that these repositioning trips are not suggested by the platform, but rather — similar to platforms like Uber or Lyft — chosen by drivers themselves. Specifically, we assume that idle drivers at the end of each hour consider repositioning to neighbouring zones based on the anticipated (daily) demand (explained in the next subsection) in each of these zones and their current zone. The probability of repositioning to each zone equals the relative share of expected trips in the zone.
After the simulation, drivers evaluate their profit by subtracting driving costs from their revenue, which includes the sum of all fares of customers they served, while considering platform commission rate ψ.
Learning (V)
To capture learning from own experience travelling or working with a platform, we apply a similar exponential smoothing formulation as for learning from other people’s experience, i.e. the process which is described in the subsection on market registration. To be precise, a weight κprivate is assigned to personally experienced system performance indicators on day k relative to previously gathered information up to this day, including information from communicating with others when deciding about platform registration. Hence, if customer \(t\in {C}_{pk}^{{\prime} }\) experiences indicator xtk on day k, their expectation for the value of this indicator \({\widehat{x}}_{t,k+1,p}\) associated with platform p for the next day is defined as:
$${\widehat{x}}_{t,k+1,p}=(1-{\kappa }^{{\rm{private}}})\cdot {\widehat{x}}_{tpk}+{\kappa }^{{\rm{private}}}\cdot {x}_{tpk}$$
(21)
Similarly, if driver \(j\in {D}_{pk}^{{\prime} }\) experiences indicator xjk on day k, their expectation for the value of this indicator \({\widehat{x}}_{j,k+1,p}\) associated with platform p for the next day is defined as:
$${\widehat{x}}_{j,k+1,p}=(1-{\kappa }^{{\rm{private}}})\cdot {\widehat{x}}_{jpk}+{\kappa }^{{\rm{private}}}\cdot {x}_{jpk}$$
(22)
The indicators that customers learn about are waiting time and in-vehicle pooling detour times, whereas drivers learn about income. If a request is denied by the platform, waiting time is perceived to be Γ minutes.
In addition, job seekers also learn about the ridesourcing demand per zone, albeit not from own experience. Our model assumes that at the end of each day all (registered) job seekers are informed about the total ridesourcing demand per zone on that day, e.g. by a transport authority, information that (merely) guides their within-day repositioning decisions. We assume a similar learning process as for the other indicators, i.e. they assign a weight κdemand to the information provisioned on the last day as opposed to all previously provisioned information.
Multi-homing
In this subsection, we describe how the relevant day-to-day and within-day processes in the ridesourcing market are adapted for multi-homers, i.e. travellers and job seekers that are open to being matched on all platforms in P when they decide to participate in the ridesourcing market on any given day.
The market awareness diffusion process is independent of agents’ willingness to multi-home.
Considering limited demand-side registration costs, multi-homing travellers will choose to be registered with all platforms in P when making a registration decision. Accordingly, multi-homing travellers are not interested in platform-specific indicators and will inquire only about (recent) experiences of multi-homers participating in the ridesourcing market, information that is used to guide future mode choice decisions. We assume that single-homing agents only communicate with registered agents that single-home, specifically about the utility associated with individual platform usage (\({U}_{tpk}^{{\rm{participate}}}\), ∀ p ∈ P). Contrary to single-homing travellers, multi-homing travellers also learn about the expected fare when multi-homing, which in a market with a ride-hailing and a ride-pooling provider depends on whether they get assigned to a private or shared ride. Their platform-independent registration decision implies that they experience uncertainty in ride fares, given that solo and pooling providers offer different fares.
The same general principle applies for supplying labour to the ridesourcing market. Multi-homing job seekers do not make a platform decision, and hence are only interested in learning the aggregated market utility \({U}_{jk}^{{\rm{participate}}}\). Single-homing job seekers instead learn about individual platform utilities \({U}_{jpk}^{{\rm{participate}}}\) (∀ p ∈ P). However, contrary to multi-homing travellers, multi-homing job seekers do make a market registration decision, given (possibly substantial) costs ϒ associated with the ability to drive for ridesourcing platforms. These costs are equal for single-homers and multi-homers, i.e. they are only incurred for the first platform.
Similar to the registration decision, multi-homing agents either participate with all platforms or with none of them. To be precise, if multi-homing travellers opt for ridesourcing over other modes of transportation, they request offers on all platforms in P. Essentially, the entire ridesourcing market P is included in the available set of modes Mk, the utility of which depends on platform-independent performance indicators, learnt from other multi-homing agents as well as own experience. Similarly, multi-homing job seekers that choose to work are available to serve requests on all platforms in P. Hence, as opposed to single-homing agents, the participation decisions of multi-homing agents are based on aggregated ridesourcing market utilities \({U}_{jk}^{{\rm{participate}}}\) rather than platform-specific utilities \({U}_{jpk}^{{\rm{participate}}}\), ∀ p ∈ P.
When multi-homing is enabled, small adaptations for drivers and customers in the within-day model are made. In this case, multi-homing drivers \({D}_{k}^{{\prime\prime} }\) are available for work on all platforms in P. Similarly, multi-homing customers \({C}_{k}^{{\prime\prime} }\) request trips from all platforms in P.
For multi-homing drivers, it is assumed that they are available for service for all platforms p ∈ P only when they are idle and looking for new assignments. Once they receive a new assignment from platform \(\widetilde{p}\), they log off from all other platforms and are no longer available for driving tasks there until completing assignments from \(\widetilde{p}\). During this time, they can get subsequent assignments from \(\widetilde{p}\). Only when they become idle again, they log in again to the other platforms. It is additionally assumed that drivers always accept an assigned driving task immediately by any platform. In the model, driver j* is therefore complemented by a set \({\widetilde{P}}_{{j}^{* }}\) describing the set of currently logged in platforms, which is updated accordingly when a driver receives a new assignment or becomes idle. Before creating an assignment, a platform always checks the logged in drivers.
Multi-homing customers request trips from all platforms in P. The platforms then check feasible solutions, and compute the best solution according to their matching objective — minimising total driving time — and produce an offer based on this solution. If multiple platforms offer the service, the offer (and therefore platform) with the highest utility as given in Eq. (16)– with actual ride offer characteristics and without the error term – is chosen.
In our model, the way multi-homers learn from experience is similar to how single-homers learn from experience. There is again one key distinction: single-homers acquire insights into the service quality of individual platforms, while multi-homers gain knowledge about the collective ridesourcing market.
Convergence
We determine market convergence based on double-sided participation levels. For this purpose, we evaluate the evolution of the number of (single-homing) agents choosing each individual platform as well as the number of multi-homers participating in the market, for both sides of the market. Formally, we define the following two sets of participation indicators, the first set associated with market demand and the second set associated with market supply:
$${G}^{\mathrm{dem}}=\left(\mathop{\cup }\limits_{p\in P}\left\{\left|{({C}^{{\prime} })}_{pk}\right|\right\}\right)\cup \left\{\left|{({C}^{{\prime\prime} })}_{k}\right|\right\}$$
(23)
$${G}^{\sup }=\left(\mathop{\cup }\limits_{p\in P}\left\{\left|{({D}^{{\prime} })}_{pk}\right|\right\}\right)\cup \left\{\left|{({D}^{{\prime\prime} })}_{k}\right|\right\}$$
(24)
In determining convergence, we should neglect random — i.e. non-systematic — day-to-day variations in market participation levels following from random components in peer-to-peer communication and decision-making processes. Formally, we define that the simulation has converged on day k when the absolute day-to-day change in the μMA2-day Moving Average (MA) of the μMA1-day Moving Average (MA) — nested to further smoothen out random, short-term fluctuations — has been below ωdemand for all demand-side participation indicators g ∈ Gdem and below ωsupply for all supply-side participation indicators \(g\in {G}^{\sup }\), each for η days in a row:
$$\begin{array}{l}\left|M{A}_{{\mu }^{{\rm{MA2}}}}{\left(M{A}_{{\mu }^{{\rm{MA1}}}}(g)\right)}_{k-h}-M{A}_{{\mu }^{{\rm{MA2}}}}{\left(M{A}_{{\mu }^{{\rm{MA1}}}}(g)\right)}_{k-h-1}\right|\le {\omega }^{{\rm{demand}}}\\ \forall h\in \{0,\ldots ,\eta \},\forall g\in {G}^{{\rm{dem}}}\end{array}$$
(25)
$$\begin{array}{l}\left|M{A}_{{\mu }^{{\rm{MA2}}}}{\left(M{A}_{{\mu }^{{\rm{MA1}}}}(g)\right)}_{k-h}-M{A}_{{\mu }^{{\rm{MA2}}}}{\left(M{A}_{{\mu }^{{\rm{MA1}}}}(g)\right)}_{k-h-1}\right|\le {\omega }^{{\rm{supply}}}\\ \forall h\in \{0,\ldots ,\eta \},\forall g\in {G}^{\sup }\end{array}$$
(26)
Replications
In light of previously described stochastic processes pertaining to ridesourcing supply and demand, we need to run multiple replications to test and prove the statistical significance of our simulation results. In doing so, we utilise the same indicators that are used to determine convergence. We opt for a method previously applied in simulating monopolist ridesourcing markets1,52.
This method is based on the sample mean \(\overline{g}(q)\) and standard deviation sg(q) of convergence indicators \(g\in {G}^{{\rm{dem}}}\cup {G}^{\sup }\) based on q initial simulation runs. The number of simulation runs that are needed, depending on confidence level 1 − α and allowable error εrepl of each indicator estimate \(\overline{g}\) is determined by:
$$Z(q)=\mathop{\max }\limits_{g\in {G}^{{\rm{dem}}}\cup {G}^{\sup }}{\left(\frac{{s}_{g}(q)\cdot {t}_{m-1,\frac{1-\alpha }{2}}}{{\varepsilon }^{{\rm{repl}}}}\right)}^{2}$$
(27)
in which tm−1 refers to the Student’s t-distribution with m − 1 degrees of freedom, and the allowable error depends on the absolute value of indicator g and its convergence threshold ζ:
$${\varepsilon }^{{\rm{repl}}}=\left\{\begin{array}{ll}{\varepsilon }^{{\rm{repl,rel}}}\cdot \overline{g}(q) & \overline{g}(q)\ge \zeta \\ {\varepsilon }^{{\rm{repl,rel}}}\cdot \zeta & \,{\rm{otherwise}}\end{array}\right.$$
(28)
Computational complexity
Each day in our simulation model requires modelling numerous decision-making processes involving a substantial population of agents as well as accounting for computationally complex within-day matching between customers and drivers, particularly when ride-pooling is offered. We limit the computational complexity of the simulation model by applying a filter to the traveller population based on their propensity of selecting ridesourcing based on their individual mode choice preferences. Specifically, if traveller agents exhibit a probability lower than the threshold defined by parameter χ even in the ideal conditions — i.e. in a situation where they expect neither waiting time nor in-vehicle delays, while receiving (pooling) discount λ on their fare — then they are subsequently excluded from the initial pool of travellers, i.e. they are assumed to choose another mode on any given day.
Simulation framework
The day-to-day processes associated with ridesourcing supply and demand are implemented in MaaSSim53, and the within-day operational model in FleetPy54, both of which are open-source agent-based simulators of mobility-on-demand services programmed in Python. The overarching simulation framework (FleetMaaS) is available here: https://github.com/Arjan-de-R/FleetMaaS.
Experimental set-up
In this part, we outline the set-up of our experiments, which has been designed to mimic the city of Amsterdam, the Netherlands. This pertains to relevant aspects such as the potential ridesourcing market, the underlying road network, ridesourcing operations, and characteristics of alternative modes.
For the travel demand in Amsterdam, we employ a data set generated with the activity-based model Albatross55, selecting only trips of 2 km and longer. In terms of the number of trip requests, we sample one-tenth of the total estimated demand in Amsterdam during an 8-h window to limit the computation time of the day-to-day simulation. Similarly, we aim to represent one-tenth of all job seekers residing in Amsterdam. This relative sample size, 10%, aligns with prior research in the domain of agent-based modelling for transportation problems1,52,56,57. In absolute terms, this sampling yields a total of b = 100,000 travellers and l = 2500 job seekers. In the reference scenario, all of these agents single-home, i.e. ρtrav = 0% and ρjs = 0%. In our analysis, travellers with a likelihood of below 5% to select ridesourcing, even under ideal conditions, are assumed to completely disregard ridesourcing, i.e. we set χ to 0.05. This amounts to ~70% of travellers in the reference scenario, aligning with the cumulative share of travellers found in a latent class model to be unlikely to adopt ridesourcing for urban trips in the Netherlands45.
Ridesourcing vehicles utilise a road network with spatially heterogeneous yet static travel speeds. Concretely, we assume that drivers operate with a speed of 85% the speed limit. This value has been set so that the average travel speed based on the shortest paths for all origin-destination pairs in Amsterdam approximates the average observed traffic speed in Amsterdam on a working day in reality58. We set 30 s as the time needed for pick-ups and drop-offs in ride-hailing (υ = 30). In ride-pooling, each additional stop results in a 10-s delay. Each ride-pooling vehicle has capacity for 4 passengers.
Drivers incur per-kilometre operational costs δkm of €0.25. Pricing of solo ridesourcing rides is set following Uber’s approach in Amsterdam, omitting surge pricing. This entails charging a base fee fbase of €1.5 and a per-kilometre fee fkm of €1.5. We adopt a generous, guaranteed 33.3% pooling discount to ensure sufficient demand for studying competitive dynamics, significantly higher than typical practice where Uber offers up to 20% when shared with maximal inconvenience59. Given that in reality neither of the two ridesourcing providers in Amsterdam offer shared rides, this generous discount could be interpreted as a subsidy scenario that might be needed to make such services viable. Platforms withhold 25% of the fares transferred from travellers to drivers, i.e. ψ = 25%. The daily costs associated with being registered in the ridesourcing market for job seekers is set to €15. Market information about past demand that is communicated to job seekers to guide their repositioning decisions is provided per Gebied (area, majority of which are in the range of 2–10 km2) as established by the municipality of Amsterdam60. Platforms adopt a maximum allowed pooling delay σdetour of 40% the direct in-vehicle time when matching customers to other customers. The time interval between consecutive (re-)assignments is 1 min. Travellers with a ridesourcing request are willing to wait at most 10 min until pick-up, i.e. σwait = 10 min.
Beyond ridesourcing, the set of potential travel modes encompasses cycling, private vehicle usage and public transportation, the attributes of which are constant from day to day. The (in-vehicle) travel time with private car is the same as with a ride-hailing (private ride) provider. Access and egress take 5 min each. In addition to per-kilometre operational costs of 0.5 €/km, which are twice as high as those of ridesourcing drivers due to less frequent usage of their cars, private car users are charged a fixed fee of €15 for parking in the city centre — i.e. in areas Centrum-West and Centrum-Oost as specified by the municipality60 — and €7.50 elsewhere. Cyclists are assumed to use a private bike, i.e. this travel option is always free of charge. They travel using the same network as cars, yet, at a fixed speed of 15 km/h. Travellers’ travel time and the number of required transfers when travelling with public transport is based on the itinerary leading to the quickest arrival at the destination, queried using OpenTripPlanner for September 19th 2023, based on travellers’ origin, destination and trip request time. Public transport fares are determined based on the (full rate) fares as established by the transport authority of Amsterdam, i.e. a base charge of €1 and an additional €0.20 for every kilometre travelled.
Travellers’ in-vehicle time perceptions, cost perceptions and mode-specific constants are based on a mixed logit model estimated using a data set of stated preference choices45 for urban travel behaviour in the Netherlands. In the estimated choice model, in-vehicle time is distributed lognormally and mode-specific constants are distributed normally in the population of travellers. The ride-pooling constant equals the solo (ride-hailing) constant minus a uniformly distributed sharing penalty. We refer to Table 1 for the estimated values of the distributions of in-vehicle time, mode-specific constants and willingness to share.
We assume that all travellers perceive waiting time at a stop or pick-up location 2.5 times more negatively and walking time 2 times more negatively than in-vehicle time61. A minute spent on a bike is perceived 2 times more negatively than a minute spent in a motorised vehicle, accounting for required physical exertion and limited productivity otherwise62. Each transfer in public transport is perceived as 5 min of in-vehicle time63 by all travellers. Compared to daily mode choice decisions, we assume that unobserved variables are less dominant in registration decisions by assigning a value of 3 to registration utility multiplier θtrav.
Job seekers’ reservation wage is distributed lognormally, with a mean of 25 €/h — equal to the average hourly wage in the Netherlands64 — and chosen standard deviation so that the resulting Gini coefficient of reservation wage in the lognormal distribution equals 0.35 — close to the Gini coefficient of gross income in the Netherlands65. Income sensitivity parameter in participation βinc is set to 0.05. We set θjs,market to 20 and θjs,platform to 100 to represent that job seekers are more income sensitive in tactical registration decisions — particularly in the choice between platforms — than in daily participation decisions. The probability γ that job seekers (re)evaluate their ridesourcing registration status on a given day is set to 15%. They cannot deregister from a platform in the first 5 days after registering, i.e. ν = 5. Daily costs ϒ for being registered in the ridesourcing market add up to €20, based on (short-term) vehicle leasing costs in the Netherlands66.
In learning, travellers and job seekers assign a weight of 0.2 to their last private experiences, a weight of 0.2 to the most recent information provided by the platform about zonal demand, a weight of 0.2 to recent information from others based on communication with yregist = 50 agents when personally registered in the market, and of 0.333 when unregistered. These weights are formally set as κprivate = κdemand = κcomm,registered = 0.2 and κcomm,unregistered = 0.333. We configure Γ to be 30 min, i.e. we assume that travellers perceive denied service as 30 min of waiting time.
For the assigned parameter values in awareness diffusion, determining convergence—established empirically—and the required number of replications in our experiments, we refer to Table 2.
At the beginning of the simulation, registered job seekers expect to earn the average reservation wage, while informed travellers expect no waiting time and no detour when opting for pooling. Initially, 20% of all agents (job seekers and travellers) are informed. Each initially informed (single-homing) traveller is registered with one of the platforms, while each initially informed job seeker has a 50% probability to be registered with one of the platforms. The initial choice between platforms is random. Each day, job seekers who participate in the market start at a randomly selected location in the network.
Scenarios
In our first set of experiments, we evaluate and compare three duopolistic market structures with two providers at the start of the simulation, differentiated by the service types each platform offers: ride-hailing or ride-pooling. We compare the results to two monopolistic benchmark scenarios.
-
Solo-solo: Two platforms each offering a solo (ride-hailing) service (This scenario most closely resembles ridesourcing operations in Amsterdam (Feb. 2025), with two ride-hailing providers (Uber and Bolt) operating in the city, primarily offering private rides—with Bolt exclusively so. Real-world performance metrics for these platforms are lacking. The most recent relevant data comes from a report on Uber’s operations in Amsterdam in 202267. Analysis of the simulated market equilibrium reveals aggregate demand and supply volumes that exceed Uber’s indicators in Amsterdam by a factor of 2–3. These magnitudes are likely consistent with market structure, given that Uber in 2022 operated in a fragmented taxi market alongside Bolt and traditional taxi providers in Amsterdam. Our simulation yields supply-to-demand ratios and driver income patterns that closely parallel Uber’s observed data.).
-
Solo-pool: One platform offering a solo service, the other a ride-pooling service.
-
Pool-pool: Two platforms each offering a ride-pooling service.
-
Solo: Monopolistic platform offering solo (ride-hailing) service (benchmark).
-
Pool: Monopolistic platform offering ride-pooling service (benchmark).
The following set of experiments is focused on a market with two service providers each offering ride-hailing (solo-solo). We test the effect of multi-homing behaviour by simultaneously varying the share of travellers and the share of job seekers that are willing to multi-home. For each of the two, we test three values: 0% (only single-homing), 50% (half single-homing, half multi-homing) and 100% (only multi-homing).
The total set of experiments is summarised in Table 3.
link

