<figure><img src="image_1.png" /></figure>

HAL
open science

# Intercity ridesharing to the rescue: Capacity flexibility and price stability of BlaBlaCar during the 2018 French railway strike

Timothy Yu-Cheong Yeung, Dianzhuo Zhu

► To cite this version:

Timothy Yu-Cheong Yeung, Dianzhuo Zhu. Intercity ridesharing to the rescue: Capacity flexibility and price stability of BlaBlaCar during the 2018 French railway strike. Transportation Research Part A: Policy and Practice, 2022, 164, pp.270-290. 10.1016/j.tra.2022.08.015. hal-03893920

HAL Id: hal-03893920

https://hal.science/hal-03893920v1

Submitted on 13 Mar 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Intercity Ridesharing to the Rescue: Capacity Flexibility and Price Stability of
BlaBlaCar During the 2018 French Railway Strike

Timothy Yu-Cheong Yeung; Dianzhuo Zhu<fnref n="1" />

<footnote n="1">¹ KU Leuven, Leuven, Belgium; CEPS, Brussels Belgium. yu-cheong.yeung@kuleuven.be. University Paris-Dauphine, PSL, Paris, France. dianzhuo.zhu@dauphine.psl.eu. We thank the Governance Analytics financed by the IRIS (Interdisciplinary and Strategic Research Initiatives) of the PSL Research University. We are grateful to the support of Bruno Chaves and Faten Amama of Governance Analytics for computer programming. We also thank the Governance and Regulation Chair of Paris-Dauphine University, member of the PSL group, for the academic debates. We thank the researchers from various seminars and conferences for your comments to help improve the paper. All errors are ours. The authors have no interest to declare.</footnote>
The increased usage of alternative transportation modes during public transportation disruptions has been well documented in the literature. While many papers discuss the resilience of the disrupted mode or measure changes in the usage of various alternative modes, little research has addressed the capacity flexibility and the price fluctuations of the alternative modes—two important components of the quality of a transport mode. This paper documents the capacity and price resilience of BlaBlaCar during the nationwide French railway strike in 2018. We collected more than 1 million trip offers from the BlaBlaCar's API from April to July 2018, covering 82 representative intercity routes in France. Our empirical analysis shows that, on an average strike day, the number of offered seats increased by approximately 6%, while the number of booked seats rose by 33%. Despite the spikes in demand, prices remained stable during the strike. We argue that the price recommendation mechanism helped maintain the price stability on the platform during the strike. The mechanism is in fact an effective enforcement of the policy laid down by the French government to uphold the cost-sharing principle on ridesharing platforms. This paper presents a case of voluntary compliance by a private company to put in place a price recommendation mechanism that in effect stabilizes prices and contributes to the resilience of the whole transportation system against abnormal market conditions.

**Keywords: Intercity ridesharing, Railway strike, Recommended price, Resilience**
Introduction

Mass public transportation modes (subway, bus, train) are the backbone of urban and national transportation systems, but they face various sources of disruptions. Facing disruptions, passengers search for alternatives within both the same transportation mode and among others. The capability of the disrupted mode to offer alternative solutions without significantly compromising performance is referred to as the robustness or resilience of the system (Zhang et al., 2021). When passengers search for options outside of the disrupted mode, their ability to mitigate the impact of the disruption depends on the quality of the multimodal interactions. While the increase and decrease in usage of alternative modes has been widely discussed in the literature (Borowski et al., 2022; Tyndall, 2019), price stability, a key element of resilience, is rarely mentioned.

Recent years have witnessed a rapid emergence of platform-based transportation service providers. These platforms do not own cars themselves. They are intermediaries that facilitate and improve the quality of driver and passenger matchups. Although there is still controversy surrounding the typology and naming of these services in many places, the French government has legally distinguished ridesharing from ridehailing. Ridehailing is a profit-making activity. It allows, even encourages, drivers to drive professionally to make a living by finding passengers through the platform, whose services are concentrated in dense urban areas and focus on short daily trips. Ridesharing, on the other hand, is based on the cost-sharing principle. Drivers are supposed to go to the same destination as their passengers, share with them the ride and do not earn any more than the cost-sharing principle justifies.

Given this policy framework, the provision of intercity ridesharing is highly dynamic in France, led by BlaBlaCar. In the BlaBlaCar platform, drivers themselves set the price of the trip. However, the prices are regulated by the platform. BlaBlaCar shows a default recommended price for each trip, based on the cost-sharing principle required by the government. Drivers can deviate from the recommendation, but the upper and lower bounds are also fixed by the platform. This paper investigates the impact of this price recommendation on the price stability of BlaBlaCar during a period of substantial changes in demand and supply.

From April to June 2018, employees of SNCF (the French government-owned railway company) went on a three-month strike (withholding their labor two out of every five days) against the pension reform. Since SNCF is a monopoly, the strike impacted the entire French railway system. We collected daily, anonymized trip-level data for 82 selected routes (41
round trips) from the API of BlaBlaCar from April to July 2018, covering the entire strike period plus the following month. Our results show that compared to an average non-strike day, offered seats increased by 6% and booked seats increased by 33% on an average strike day. Both ridesharing supply and demand increased, but demand increased more than supply, implying that more empty seats were filled. The fact that demand increased over five times as much as supply during the strike could have triggered a price spike for passengers and caused a corresponding welfare loss had drivers driven by a profit-making motive to charge a higher price following a demand surge. However, we only observe a slight overall price increase (0.8%) on strike days compared to non-strike days. Furthermore, 40% of the drivers priced in line with the recommended price level regardless of whether it was a strike day or not. This work argues that the high level of price stability is a direct consequence of the price recommendation mechanism implemented by BlaBlaCar framed by the French legislation. It also shows that BlaBlaCar, as an intermediary, is able to quickly adjust seat supply capacity and absorb large demand increase during the strike period. This capacity flexibility is not shared by other long-distance modes such as coach and train, which are constrained by fleet and infrastructure capacity.

The price recommendation system and the shared mobility business model together ensure the price stability and capacity flexibility, making it not only an important alternative during the nationwide railway strike, but also an important operator in the transportation system. The policy framework laid by the French government together with the price recommendation system that limits the range of prices drivers can quote successfully maintains the cost-sharing principle in the industry, while compliance is almost guaranteed with no need of active interventions by the authority.

Price stability of alternative modes during major transport disruptions is a policy-relevant research question but has not drawn sufficient attention from scholars. Our research on BlaBlaCar's unique strategy has several policy implications. First, it provides solid empirical evidence on the mode switch from train to intercity ridesharing during a major train service disruption and on the capacity flexibility of shared mobility modes based on a non-professional driver pool. Second, it illustrates that a price recommendation system with a default price level is a successful strategy to ensure price stability of intercity ridesharing during abnormal market fluctuations. Third, our work highlights the harmony among the regulator, the platform, and the users regarding pricing. The policy framework set by the government and the willingly compliant platform to uphold the cost-sharing principle have
created a solid and assured foundation for the business to grow. Policymakers and transport operators could learn from the BlaBlaCar example and explore any self-regulating mechanisms. Finally, our work presents a strong case for a better integration of ridesharing into the overall transport design to benefit from its flexibility and resilience.

## Literature Review

The resilience of a transportation system is essential to the functioning of society (Bešinović, 2020). Transportation resilience is defined as the ability of the transportation system to relocate people around facing abnormal obstacles. Poor transportation resilience could be costly. Any disruptions to a transportation system could paralyze a society and result in significant economic costs, leading to traffic and behavioral impacts (Zhu and Levinson, 2012). When studying the transportation resilience in time of a disruption to one transportation mode, one should not neglect the induced impacts on other modes and the induced substitutions between modes. For instance, disruptions to one transportation mode would induce congestion of other modes (Mattsson and Jenelius, 2015). A transportation system as a whole is sufficiently resilient if other modes could absorb smoothly a shock due to a disruption to a particular mode. The absorption ability can be measured by two economic observations: how flexible the other modes are to provide additional capacity and how much they cost. Cox et al. (2011) studied the impacts of terrorist attacks and found that reductions on the attacked mode were offset by increases in substitute modes for months. Urban metro or subway disruptions are often mitigated by ad-hoc bus services and structured steps were developed (Kepaptsoglou and Karlaftis, 2009). Another mode with a substantial capacity to exploit during major disruptions is bicycle sharing (Fuller et al., 2012). A transportation disruption in London caused bicycle sharing trips to increase 85% (Saberi et al., 2018). With the development of transportation network companies, citizens have considered ridehailing (e.g., services provided by Uber and Lyft) as a major substitute during mass transportation disruptions. Hoffmann et al. (2019) showed that on average, a subway station closure induced roughly 3% increase in the use of ridehailing in New York City. Borowski et al. (2022) geographically matched trips by Uber and Lyft with 28 transit disruptions in Chicago during 2018 and 2019 and studied how ridehailing could fill the gap. To the best of our knowledge,
we have not come across research work that documents or estimates the magnitude of substitution between trains and long-distance ridesharing during a major strike of the railway system.

The literature on the price effect during transportation disruptions is however sparse. A possible reason is that the prices of many alternatives are not freely adjustable. In the case of ad-hoc substitute buses, bus fares are regulated by the governments. In the case of bicycle sharing, bike fares are pre-determined and do not adapt to a specific disruption. Uber has attracted researchers' concerns due to its flexible pricing mechanism that imposes a surge multiplier to the normal price when demand is high or supply is low (Chen & Sheldon, 2016; Garg & Nazerzadeh, 2022; Guda & Subramanian, 2019). Such a mechanism is believed to facilitate matching between passengers and drivers according to the market situation.<fnref n="2" /> In particular, the pricing strategy or algorithms of these ridehailing services following a disruption have been scrutinized. Uber fares tended to be lower than taxi fares except during rush hours and has increased slightly during taxi strikes in Madrid (Rangel et al., 2022). The surge pricing mechanism has received criticism because of its obscurity and lack of transparency (Jiao, 2018). BlaBlaCar is of particular interest as its pricing is not strictly regulated where individuals enjoy some degree of freedom in choosing their preferable price levels. Such a flexible setting allows us to measure the effect of a major disruption on individual pricing behaviors.

As the largest intercity ridesharing platform in Europe, research on BlaBlaCar is expanding. Initial research mostly focuses on user profile and on business model (Shaheen et al., 2017; Casprini et al., 2019). Some work investigated the pricing and booking behaviors during normal time and during the Covid-19 pandemic (Farajallah et al., 2019; Ivaldi and Palikot, 2020). Monchambert (2020) made the first attempt and used the discrete choice model to estimate drivers' choices of ridesharing or driving solo. Our work is the first, to the best of our knowledge, that studies dynamics between ridesharing and another mode during a transportation disruption.

<footnote n="2">² Please see the explanation by Uber: https://www.uber.com/us/en/drive/driver-app/how-surge-works/.</footnote>
# Background Information

## The 2018 SNCF Strike

In mid-March of 2018, the railway workers of SNCF decided to launch an unprecedented strike, which began on April 3rd and ended on June 28th. The labor union initiated the strike to oppose the French government's reform plan. The plan includes abolishing the "railway worker" status that provides many benefits,<fnref n="3" /> introducing competition into railways, and closing some unprofitable regional branch lines.<fnref n="4" /> All types of employees at SNCF were involved in the strike, but those working in the field (controllers, switchmen, etc.) were the most active since they were most affected by the changes. Their participation directly impacted the availability of train service.

The strike has several distinctive features compared to other strikes documented in the literature. First, it is a nationwide strike that lasted three months. Since SNCF is the state-operated railway monopoly, the strike impacted the long-distance intercity traffic throughout France. Of course, not all lines were shut down during the strike. Minimum services were guaranteed on most lines. SNCF also concentrated their workforce on the high-speed rails that transport most passengers. By the end of the strike, the overall participation rate had decreased.<fnref n="5" /> Nevertheless, train service was seriously impacted during the three months. Second, the strike plan for the entire three months was announced in mid-March, two weeks before the beginning of the strike. Railway workers would go on strike two out of every five days, guaranteeing service on the remaining three days. This strike/non-strike pattern was respected regardless of whether the planned strike days fell on weekdays, weekends, or holidays. Appendix 1 presents the calendar of the strike. Such a strike plan allows us to isolate day-of-week and holiday factors from strike factors.

## BlaBlaCar and Intercity Ridesharing in France

<footnote n="3">³ This status was created in the early 20th century to compensate for the difficult working conditions of railway workers at that time. Its benefits include a life-long job guarantee, more holidays, an earlier retirement, a better pension scheme, lower house rents, free train tickets for them and their close relatives.</footnote>

<footnote n="4">⁴ This proposal has been abandoned eventually.</footnote>

<footnote n="5">⁵ The participation rate of railway field workers (all types confounded) has decreased from 33.9% on the first strike day to 8.4% on the day before the last strike day.</footnote>
In 2018, the intercity coach service was deregulated in France, but it was not very competitive (Crozet and Guihéry, 2018). Domestic airlines only covered a few long routes. On the other hand, the intercity ridesharing sector has been very dynamic for some years and has become an important alternative to trains (Crozet and Guihéry, 2018). The market is led by the French unicorn company BlaBlaCar. In France, there exist other association-based intercity ridesharing websites, but their shares are negligible compared to BlaBlaCar. BlaBlaCar is also the largest intercity ridesharing platform in Europe and operates in more than ten countries.

BlaBlaCar provides a platform that specializes in matching drivers and passengers of long-distance intercity commutes, and thus the matching is done and validated well ahead of the trip. The driver first publishes a trip that contains basic information such as departure city, arrival city, departure date and time, number of seats available, and price per seat. The driver can also provide additional information on the trip and on his/her personal preferences. The passenger, when searching a trip, will be presented with all offered trips that satisfy the same itinerary (within several kilometers' radius from the departure and arrival places) and departure date. Back in 2018, trips were ordered by the departure time.<fnref n="6" /> The passenger has full information about all the available offers on the market when searching. The price that the passenger sees contains the price asked by the driver and a commission, which is based on the price asked by the driver (see Appendix 2). The passenger then sends a request to the driver, and the driver can decide whether to accept the passenger or not. Only after the driver has accepted has this match succeeded. Appendix 3 shows the trip search results page retrieved on February 2018⁷.

Unlike in the case of ridehailing platforms, drivers can set their own price per seat on BlaBlaCar when they publish trips. However, BlaBlaCar sets a price cap and floor for each trip based on distance. It also pre-fills the price field with a recommended price when drivers reach the price-setting page (See Appendix 4 for an illustration). Drivers can deviate from the recommended level but cannot exceed the boundaries.<fnref n="8" /> The platform's reason for softly

<footnote n="6">⁶ Among the trips departing at the same time, there is no single rule of ranking. The algorithm takes into account all the factors such as the closeness to the searched itinerary, the price, and the experience of the driver. The exact way of ranking these trips is not made public.</footnote>

<footnote n="7">⁷ BlaBlaCar has changed the trip search and trip information layouts after our data collection period. We put the historical version during the data collection period in the Appendix 3 to keep the paper coherent.</footnote>

<footnote n="8">⁸ If the driver wants to set the price higher than the recommended level, he/she will receive a pop-up message explaining that the recommended price is calculated based on cost-sharing and would help</footnote>
regulating the pricing behavior is to help drivers increase their chances to get booked, and to
comply with the cost-sharing principle.<fnref n="9" /> The platform does not want to encourage too much
price competition among drivers, since it might crowd out occasional drivers. Although lower
prices would benefit the passengers, in the long run, there might be fewer drivers
participating, which violates the vision of BlaBlaCar to encourage mass participation of
ordinary drivers and passengers in ridesharing. On the other hand, setting the price too high
harms the passengers and violates the cost-sharing principle imposed by the French
government. In France, there exists a clear legal distinction between cost-based ridesharing
and profit-based ridehailing. Ridesharing drivers should not be professional, and their
earnings per trip should not exceed the level defined by the cost-sharing principle.<fnref n="10" /> Soft price
regulation is a simple way for the company to exclude incompatible driver types and helps
drivers to comply even if they may not know their obligations.

## Data Collection

Our dataset combines three data sources: BlaBlaCar's API for basic trip information, BlaBlaCar's website with a driver account for regulated prices, and press releases of SNCF for strike information. Historical data is only stored on API for a few days so they can no longer be retrieved today. According to the term of use of BlaBlaCar, we cannot publicly share the historical raw data<fnref n="11" />.

## API Data Collection and Route Selection

increase the chance of booking. If the driver wants to set the price lower than the recommended level, there is no warning message.

<footnote n="9">⁹ See the explanation on the website. Note that back in 2018, BlaBlaCar has not tried large-scale dynamic recommended pricing setting. https://support.blablacar.com/hc/fr/articles/360014530379-Comment-fixer-le-prix-de-mon-trajet-</footnote>

<footnote n="10">¹⁰ According to article L. 3132-1 approved on 17 August 2015, Ridesharing is "the joint use of a land motor vehicle by a driver and one or more passengers, on a non-market basis in which payments are limited to cost sharing, within the framework of a journey that the driver makes for his/her personal requirements."</footnote>

<footnote n="11">¹¹ See Section 8.2 “Content Storage” in https://support.blablacar.com/hc/en-gb/articles/360014264699--Terms-of-Use</footnote>
BlaBlaCar's API publishes essential, anonymized information on trips. Variables collected include the departure and arrival cities, the departure date and time, the price charged by the driver, the commission level, the price seen by the passenger (the price charged by the driver plus the commission level), the number of seats offered and booked. No personal information such as the driver's name or age is available from the API.

In this paper, we use trip-level data of all trips of selected routes with departure dates between April 1st and July 31st, 2018. We extend the data collection period one month after the end of the strike to check the duration of the effect. During this period, we ran our data scraping program every day between 18:00 to 19:00 to maximize the chance of observing the final status of booked trips departing that day. More details about the data scraping protocol and the strategy for de-biasing supply and bookings can be found in Appendix 5.

<figure><img src="image_3.png" /><figcaption>Figure 1: Spatial Distribution of Selected Itineraries and Departure Cities</figcaption></figure>

To limit our daily data collection to a reasonable scope, we selected 82 routes (41 trip pairs) that are representative of intercity travel in France. Route selection follows three steps. The first is between two major cities. We chose the seven largest French cities as the major cities, namely, Paris, Lyon, Marseille, Bordeaux, Toulouse, Nantes, and Strasbourg. The second step
is between a major city and a nearby second-tier city. An example is Paris-Reims. The third step is between two second-tier cities that are close to each other. Second tier cities are selected based on the population of the employment basin that each city reaches. We also paid attention not to include two routes that overlap to avoid double counting. For example, Paris-Lyon and Paris-Lille are both in the route list, but Lille-Lyon is not, since there is high chance that the driver would passe by Paris. Appendix 6 lists the 41 trip pairs as well as their regulated prices. The regulated prices of the return trip are the same as the one-way trip. We can see from Figure 1 that the geographic distribution of selected departure cities covers the entire France, and that the selected routes vary in distances. The number of appearances of each departure city in the route list corresponds to its size. Unsurprisingly, Paris is the most popular city, followed by Lyon and Marseille.

Regulated Prices, SNCF Press Releases, and Control Variables

Regulated price levels (recommended prices, upper price caps, and lower price caps) are not available on the API, but they are directly observable by drivers when they publish trips. To observe these prices, we created a driver account and went through the process of publishing a trip for each of the 82 routes. Each time, we entered the city centers as departure and arrival points<fnref n="12" />. Once the chosen itinerary is validated, the website will show the recommended price, as in Appendix 3. We then tried to adjust the price level by clicking the “+” and the “-” buttons to find out the upper and lower price caps. We never published the trip in the end so that we did not bias the supply data. We repeated this process three times during the data collection period (in the beginning, during the middle, in the end) to trace the potential changes in regulated prices. There has not been changes during the data collection period<fnref n="13" />.

<footnote n="12">¹² Recommended price increases as the trip distance increases. The actual trip distance may differ from our estimated distance, resulting in a different recommended price. However, our data scraping protocol only includes trips that depart and arrive within a radius of the city center. The radius is fixed at 5% of the total estimated distance. The actual distance deviation will not be too different from the estimated one. According to our observation from the collected recommended prices, recommended price increases 1 euro as distance increases around 15 km. Most of the observed trips should have the same recommended price level as our collection. Even when the real recommended price differs from our collection, the difference should not exceed 1 euro for trips within 300 km and 2 euros for trips above 300 km.</footnote>

<footnote n="13">¹³ Our exchanges with the staff of BlaBlaCar also confirmed it. Furthermore, the company does not adjust regulated prices according to driver profiles nor to strike/non-strike days. The only relevant factor is the trip distance.</footnote>
The final piece of information is the strike participation rate announced by SNCF. On most strike days, SNCF published a press release with an overall strike participation rate.<fnref n="14" /> We collected all available strike participation rates and filled in the missing values by computing the average strike participation rate from the preceding and following strike dates. For non-strike dates, the strike participation rate is zero.

We also created dummy variables reflecting strike days, and national holidays. We also added a categorical variable for trip distance. We separated selected routes into three categories: less than 100 km, longer than 380 km, and between 100 and 380 km. Trips less than 100 km are likely to be regular intercity commute trips. Driver and passenger strategies may differ from those of farther travelers, whose trips may be occasional and related to personal matters. Another reason for the 100 km cut-off is that in France, intercity coaches are not allowed to freely operate on trips of less than 100 km. The approval of the regulator is necessary to avoid competition with regional railways (Crozet and Guihéry, 2018). These routes have fewer alternative choices compared to other routes, even if the coach service occupies a small market share. The reason for cutting at 380 km is that all routes above this level that are included in our sample have flight alternatives.

# Data Analysis

## Summary Statistics

Our dataset contains all trips available on the API for the 82 selected routes departing between April 1st and July 31st, 2018. In total, we had 1,022,160 trip offers, of which 499,680 trips had at least one booking. In terms of seats, during the four months, there are 1,825,850 seats offered and 753,177 seats were booked. The overall occupancy rate was 41.25%, lower than the occupancy rate claimed by the company in 2019¹⁵.

<footnote n="14">¹⁴ Source: https://www.sncf.com/fr/groupe-sncf/newsroom/communique-de-presse.</footnote>

<footnote n="15">¹⁵ The company claims that on average, 3.5 people are in a BlaBlaCar trip in France. A normal personal vehicle could offer 4 empty seats. With a 40% occupancy rate, there are 1.6 passengers, thus 2.6 people in a car.</footnote>

<footnote>Source: https://blog.blablacar.fr/blablalife/lp/zeroemptyseats#:~:text=Avec%20un%20taux%20d'occupation,contre%2058g%20pour%20le%20covoiturage).</footnote>
The top half of Figure 2 ranks the popularity of the 82 routes by the total number of seats offered per route from April 1st to July 31st, 2018. Rankings of routes of the same trip pair are often close or next to each other. The busiest route is Rennes-Nantes, reaching almost 60,000 seats in four months (500 seats per day, equivalent to 10 couches). The two cities are both economically dynamic and geographically close to each other (1.5 hours by car). There is also a strong ridesharing culture in the Brittany region where these two cities are located. Routes connecting two major cities are highly ranked in general. The least popular in our sample is the Cannes-Nice round trip and the Marseille-Aix round trip, probably due to the short travel time by car and the relatively abundant alternatives. The lower half of Figure 2 ranks the popularity of the 82 routes by the total number of seats offered per route during the same period. The ranking is similar to the ranking in supplied seats, indicating that the overall occupancy rates across routes do not vary a lot. The smooth decline in supply and in booking across routes indicate that our sample is well balanced in terms of variety of routes.

Figure 3 illustrates the evolution of the daily trip and seat offers. We take a representative route that connects the two largest cities, Paris-Lyon, as an example. Again, strike days are marked in blue and non-strike days in orange. Visually, there seems to be clear weekly patterns, combined with the effect of the strike, where some orange bars stand out and mask the weekly pattern. We also observe that offers in June and July declined compared to April and May, probably both due to the decreasing strike participation and fewer number of national holidays. The busiest day for Paris-Lyon is 4th May, with 593 trips offered.
<figure><img src="image_4.png" /><figcaption>Figure 2: Route Popularity Ranking by Seats Offer (Above) and Seats Booking (Below)</figcaption></figure>
<figure><img src="image_5.png" /><figcaption>Figure 3: Daily Trips Offer (Above) and Seats Offer (Below) of Paris-Lyon</figcaption></figure>

Table 1 shows the overall seat offer and booking differences. On average, all routes combined, a strike day has 16,382 seats offered, 14% more than a non-strike day, which has 14,373 seats offered. On the demand side, on average, a strike day has 7,128 seats booked, 23.5% more than a non-strike day, which has 5,774 seats booked. The strike seems to have a larger impact on seats booked (demand side) than on seats offered (supply side). Table 2 reports the break-down statistics of three route distance categories. Routes from 100 to 380 km are the main category in our sample, consisting of 46 routes out of 82 and contributing to around two-thirds of offered and booked seats. During an average strike day, offered and booked seats increased the most for routes below 100 km (+24% and +34% respectively). For the other two distance categories, the magnitudes of increase are similar. For routes in between 100 km and 380 km, offered and booked seats increased by 12% and 21% respectively. For routes longer than 380 km, offered and booked seats increased by 12% and 25% respectively.
<table><caption>Table 1: Number of Seats Offered and Booked per Day: Non-strike vs. Strike</caption><thead><tr><th></th><th>Mean</th><th>SD</th><th>Min</th><th>Max</th></tr></thead><tbody><tr><td colspan="5">Total Seats Offered</td></tr><tr><td>Non-Strike</td><td>14,373</td><td>5,855</td><td>3,923</td><td>29,746</td></tr><tr><td>Strike</td><td>16,382</td><td>7,145</td><td>8,493</td><td>35,222</td></tr><tr><td colspan="5">Total Seats Booked</td></tr><tr><td>Non-Strike</td><td>5,774</td><td>2,459</td><td>1,616</td><td>12,214</td></tr><tr><td>Strike</td><td>7,128</td><td>3,216</td><td>3,575</td><td>15,567</td></tr></tbody></table>

<table><caption>Table 2: Number of Seats Offered and Booked per Day: Non-Strike vs. Strike by Distance Category</caption><thead><tr><th></th><th colspan="3">Average Values</th></tr><tr><th></th><th>&lt;100 km</th><th>100-380 km</th><th>&gt;380 km</th></tr></thead><tbody><tr><td>Number of Routes</td><td>20</td><td>46</td><td>16</td></tr><tr><td colspan="4">Total Seats Offered</td></tr><tr><td>Non-Strike</td><td>1,993</td><td>9,653</td><td>2,728</td></tr><tr><td>Strike</td><td>2,474</td><td>10,854</td><td>3,054</td></tr><tr><td colspan="4">Total Seats Booked</td></tr><tr><td>Non-Strike</td><td>813</td><td>3,951</td><td>1,010</td></tr><tr><td>Strike</td><td>1,086</td><td>4,775</td><td>1,267</td></tr></tbody></table>
## Capacity Flexibility Facing the Strike: Changes in Offered and Booked Seats

The descriptive statistics show an increase in total offered and booked seats on an average strike day from an aggregate perspective compared to an average non-strike day, as well as differentiated changes by distance category. To empirically estimate the causal impact of the strike on offered and booked seats on BlaBlaCar, we need to estimate the supply and demand equations. For that, we need to understand the shapes of the supply and demand curves.

## Construction of the Supply Curve

Most of the existing datasets on transport mode usage either use survey information or observe aggregate transactions that have been realized. The rich trip-level data of BlaBlaCar allows us to observe the number of seats each driver offers to the market together with the price information, including the prices of non-booked seats. Each observation thus reveals a driver's willingness to supply. However, we do not observe the willingness to supply over a range of prices. To complete the construction of an individual supply curve, we assume that drivers are willing to offer the same number of seats at any price higher than the offered price but will offer no seat at a lower price.<fnref n="16" /> Over a short period, an individual can only offer a fixed number of seats, so the individual supply curve is perfectly inelastic over a range of prices. If we assume that drivers have no outside option and that they must take these trips, an individual supply curve is a vertical line starting from the price set by the driver and extending up to infinity, as shown in Figure 4.

The market supply is the horizontal summation of individual supply curves, as illustrated in a simplified way in Figure 5. We add up all the individual supply curves for each route daily and obtain a panel dataset of market supply of each route each day during the four months. Although trips on the same route during the same day are heterogeneous in terms of the departure hour, pick-up and drop-off locations, and on the unavailable information on driver profiles, for modeling supply we assume that passengers consider trips departing on the same day under the search results of the same route identical, except for prices.

<footnote n="16">¹⁶ According to the policy of the company, drivers can freely change seat prices before the first booking. After the first booking, drivers can no longer adjust price (unless they negotiate with the already booked passengers to cancel bookings, to change the price again, and to rebook). Thus, all passengers receive the same price. Since we observe each trip until the departure date, we do have the final prices fixed by drivers. Should drivers be willing to accept lower prices under the situation of no booking or of multiple booking, they should have already adjusted their prices before our observation.</footnote>
<figure><img src="image_6.png" /><figcaption>Figure 4: Illustration of An Individual Supply Curve</figcaption></figure>

Note: An individual driver *j* with *Q*<sub>j</sub> empty seats, setting the price per seat at *P*<sub>j</sub>, would accept any price equal to or higher than *P*<sub>j</sub> but refuse at any price lower than *P*<sub>j</sub>. In the short run, the individual supply *S*<sub>j</sub> is perfectly inelastic.
<figure><img src="image_7.png" /><figcaption>Figure 5: Simplified Illustration of The Horizontal Summation of Individual Supply Curves to Form the Market Supply Curve</figcaption></figure>

Note: There are only two individuals in the market, A and B. They offer $Q_a$ and $Q_b$ seats respectively for route i on day t at $P_a$ and $P_b$. The black solid lines $S_a$ and $S_b$ represent individual supply curves of driver A and B for route i and on day t. The red solid line $S_{Market}$ represents the aggregate market supply curve for route i on day t. When the price is below $P_a$, nobody is willing to supply. Between $P_a$ and $P_b$, only individual A is willing to supply and thus the market supply curve is the same as the individual supply curve of individual A. Beyond $P_a$, the market supply is horizontally extended to $Q_a + Q_b$.

Figure 6 shows an example of the observed market supply curve for the route Paris-Lyon on a typical non-strike day (April 17) and a typical strike day (April 18). We chose these two days because they are two consecutive days, in the beginning of the strike period, and not during the weekend nor any holiday, to keep the other factors the most comparable possible while keeping the effect of the strike the most salient. Despite the difference in number of supplied seats, the shapes of the two curves are quite similar. They are both upward sloping, and they both have a peak in supply close to €30, which is the default recommended price shown to drivers. This is clear evidence that most drivers comply with the recommended price. There are roughly equal number of seats that are priced below and above the recommended price. Appendix 7 shows the supply curves of all April strike and non-strike days. Despite the differences in daily supplies seats, the overall trend of each curve remains the same as the illustrated examples.
<figure><img src="image_8.png" /><figcaption>Figure 6: Illustration of Supply Curves:
Paris-Lyon on A Typical Non-Strike Day (April 17) and A Typical Strike Day (April 18)</figcaption></figure>

## Effect of Strike on Offered Seats

Our next step is to estimate the impact of the SNCF strike on offered seats quantitatively. We rely on the price-route-day information for estimation, based on the supply curves constructed above. The advantage of this approach over collapsing the supply curve into a combination of average price and quantity supplied is that it substantially increases the sample size and allows us to exploit information at each price level. Even though we have constructed the supply curve of each route each day, it is not straightforward to put different routes into one regression model, as absolute price levels are not directly comparable. Take a route with a recommended price of €10 and another with a recommended price of €9 as examples. As the recommended price is expected to distort the supply curve, comparing two routes' supplies at the same price, say, €10, is incorrect. To allow a meaningful comparison, we subtract the recommended price from the offered price and compare two routes at each adjusted price level.
We estimate the effect by the following regression:

$$lnQ_{it}^{s}(p) = \beta_{1}^{s} \text{Strike}_{t} + \beta_{2}^{s} p + \mathbf{x}_{t} \gamma + \mu_{i}^{s} + \varepsilon_{it}^{s}(p) \quad (1)$$

where $lnQ_{it}^{s}(p)$ is the log of the number of seats supplied at the adjusted price level $p$ for route $i$ on day $t$ based on the information of the constructed market supply curve. Vectors $\mathbf{x}_t$ and $\gamma$ are the control variables and their coefficients, respectively. These include week fixed effects, month fixed effects, day of week fixed effects, and national holidays fixed effects. The error term $\varepsilon_{it}^{s}(p)$ is assumed to be random with a zero mean and $\mu_i^s$ is the route fixed effect. The variable of interest is the binary strike indicator $\text{Strike}_t$.

Table 3 reports the results. The first column does not include price at all and the reported impact of strike on offered seats is as high as 11%.<fnref n="17" /> Column 2 includes adjusted price level (respective to the recommended price) as a continuous variable in the regression. The impact of strike falls to 6%. One-euro positive deviation from the recommended price will significantly increase supply by 27%. However, it is not the best approach as the impact of price on supply is non-linear, and the supply decreases quickly a few euros away from the recommended price. To capture the kinks along the supply curve and also the effect of the recommendation, we consider the adjusted price level as a discrete variable and include every adjusted price level in the regression, though we only report the coefficients of some selected levels. Column 3 reports the regression result. We only show coefficients of $P_{r-2}$, $P_{r-1}$, $P_r$ and $P_{r+1}$ (from two euros lower than the recommended price to one euro higher than the recommended price) so that we can compute the additional increase in supply by increasing a unit of price around the recommended price. The increases in quantity supplied at three price levels around the recommended price are the following:

* From $P_{r-2}$ to $P_{r-1}$, the increase in log points = -1.2763 + 2.1641 = 0.8878

* From $P_{r-1}$ to $P_r$, the increase in log points = -0.2024 + 1.2763 = 1.0739

* From $P_r$ to $P_{r+1}$, the increase in log points = 0.1213 + 0.2024 = 0.3237

The increase in seats supplied is the largest at the recommendation price level. One euro below the recommendation is also popular. One euro above the recommendation is

<footnote n="17">¹⁷ $e^{0.1010} - 1 = 0.106$</footnote>
associated with a much smaller increase in quantity supplied. Though not shown in the text, all other increases are smaller than the increase at the recommended price.

We then check the impact on each distance category. Strike effect is the highest on routes below 100 km (16%) and the lowest on routes beyond 380 km (not significantly different from zero). This phenomenon is intuitive. First, some routes connecting neighboring cities tend to be populated by daily commuters. They are less flexible in adjusting their routines when a strike hits the transportation system. Train passengers may then switch to driving and share their rides through ridesharing platforms. Moreover, there could be opportunistic drivers who have seldomly used the platform but offered seats on strike days. Considering the higher displacement cost of longer routes, it is intuitive to expect drivers of such a motive are much less abundant in routes longer than 380km.

<table><caption>Table 3: Effect of Strike on Driver Offered Seats Number (Log)</caption><thead><tr><th></th><th>(1)</th><th>(2)</th><th>(3)</th><th>(4)</th><th>(5)</th><th>(6)</th></tr><tr><th></th><th>All</th><th>All</th><th>All</th><th>&lt;100 km</th><th>100-380 km</th><th>&gt;380 km</th></tr></thead><tbody><tr><td>Strike</td><td>0.1068***<br>(0.0082)</td><td>0.0574***<br>(0.0099)</td><td>0.0646***<br>(0.0107)</td><td>0.1613***<br>(0.0263)</td><td>0.0728***<br>(0.0110)</td><td>0.0234<br>(0.0190)</td></tr><tr><td>Adjusted price<br>(continuous)</td><td></td><td>0.2719***<br>(0.0246)</td><td></td><td></td><td></td><td></td></tr><tr><td>Adjusted price<br>(discrete)</td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>P<sub>r-2</sub></td><td></td><td></td><td>-2.1641***<br>(0.1132)</td><td>-2.9519***<br>(0.3616)</td><td>0.3022***<br>(0.1453)</td><td>1.0253***<br>(0.1369)</td></tr><tr><td>P<sub>r-1</sub></td><td></td><td></td><td>-1.2763***<br>(0.0947)</td><td>-1.1959***<br>(0.3679)</td><td>1.3817***<br>(0.1378)</td><td>1.5259***<br>(0.1441)</td></tr><tr><td>P<sub>r</sub></td><td></td><td></td><td>-0.2024***<br>(0.0773)</td><td>0.5549**<br>(0.2464)</td><td>2.5177***<br>(0.1233)</td><td>1.9248***<br>(0.1667)</td></tr><tr><td>P<sub>r+1</sub></td><td></td><td></td><td>0.1213<br>(0.0878)</td><td>1.2541***<br>(0.2630)</td><td>2.7475***<br>(0.1297)</td><td>2.0601***<br>(0.1742)</td></tr><tr><td>Route FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr></tbody></table>
<table><tr><td>Week FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Month FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>DoW FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Holiday FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>No. of Obs.</td><td>73233</td><td>73233</td><td>73233</td><td>7134</td><td>38279</td><td>27820</td></tr><tr><td>No. of Routes</td><td>82</td><td>82</td><td>82</td><td>20</td><td>46</td><td>16</td></tr><tr><td>R-squared</td><td>0.883</td><td>0.949</td><td>0.973</td><td>0.962</td><td>0.982</td><td>0.983</td></tr><tr><td>AIC</td><td>260343</td><td>199956</td><td>152704</td><td>15410</td><td>66184</td><td>43489</td></tr></table>

Note: Standard errors are clustered in routes, shown in parentheses.

* significant at 10%, ** significant at 5%, and *** significant at 1%

## Construction of the Demand Curve

The construction of the market demand curve, using information of numbers of seats booked, is not as straightforward as the market supply curve. We only observe the actual price paid by passengers but not their maximum willingness to pay. It is unlikely that passengers always pay their highest acceptable price. In practice, most of the passengers book at prices that are inferior to their maximum willingness to pay. However, rational consumers will never book at a price that is higher than their maximum willingness to pay. Hence, the constructed “booking” curve by the method of horizontal summation is only the lower bound of the unobservable market demand curve. We will construct this lower bound and show how it relates to the unobservable market demand curve. To proceed, we assume that each passenger needs one and only one seat at a time, and they would accept all prices below the price that they paid. Thus, the lower bound of an individual demand curve is a straight line up from zero to the price the passenger paid. The lower bound of the market demand curve is the horizontal sum of the lower bounds of individual demand curve. By construction, it must be downward sloping. Figure 7 shows an example of such a curve of the route Paris-Lyon on a typical non-strike day (April 17) and a typical strike day (April 18), same days as in the previous section. Appendix 7 shows the curves of all April and demonstrates the same trend.
<figure><img src="image_9.png" /><figcaption>Figure 7: Illustration of Lower Bound of The Market Demand Curve for the Paris-Lyon Route on A Typical Non-Strike Day (April 17) and A Typical Strike Day (April 18)</figcaption></figure>

Next, we argue that, as long as the relationship between the lower bound and the market demand curve is stable in a specific way, estimating the impact of the strike on the demand curve is equivalent to estimating its impact on the lower bound. More precisely, we require that the strike-induced change in demand be independent of the difference between what the passenger paid and his/her maximum willingness to pay. Appendix 8 provides a proof.

Another limitation of this approach to constructing the lower bound is that we only observe successfully booked seats in our data. Real demand may exceed supply for some routes at some price levels on some days, leaving some passengers unable to find a seat. We acknowledge this but given the abundance of offered seats we argue that most of the quantities demanded within the allowed range of prices are served, especially around the recommended price where offers are concentrated. Again, by focusing on the change, this problem does not undermine our analysis.
Effects of the Strike on Demand

Using the same regression specifications but replacing quantities supplied by quantities demanded, we estimate the effect of strike using the following basic regression:

$$lnQ_{it}^{D}(p) = \beta_{1}^{D} Strike_{t} + \beta_{2}^{D} p + x_{t}\theta + \mu_{i}^{D} + \varepsilon_{it}^{D}(p) \quad (2)$$

where ln $Q_{it}^{D}(p)$ is the log of the number of quantity demanded of route i on day t at the adjusted price p. Vectors $x_t$ and $\theta$ are the same lists of control variables and their coefficients as in the previous section. These include week fixed effects, month fixed effects, day of week fixed effects, and national holiday fixed effects. The error term $\varepsilon_{it}^{D}(p)$ is assumed to be random with a zero mean and $\mu_i^D$ is the route fixed effect. Note that we are still using the driver's asking price to construct the deviation from the recommended price. The final price that the passenger sees has a commission added on. The commission is not linear to the driver's asking price but is a one-to-one mapping to the asking price (see Appendix 4).

As in the previous section, we also test using the discrete adjusted price and study different distance categories. Slightly different from the previous section, we control for the log of quantity supplied in the regression. Since drivers post trips first and passengers send booking requests afterwards, passengers' decisions may be impacted by the availability of seats. Table 4 reports the regression results. According to Column 2, when taking adjusted price as continuous, on a strike day booked seats increases by 33%.<fnref n="18" /> Column 3 takes the adjusted price as a discrete variable. The impact of strike is similar, standing at 32%. Including supply gives similar results (Column 4, 32%), indicating that, as expected, the increase in booking is driven by the strike rather than simply the increase in supply.

The differences in route categories show different trends than the previous section. The increases in demand is the least pronounced in <100 km and 100-380 km route categories, at around 27%. The booked seats increased the most for routes that are longer than 380 km, with a 38% increase. A passengers of a long route might be more willing to be a ridesharing passenger rather than a ridesharing driver to avoid fatigue. Another factor that we cannot account for is the SNCF rearrangement of workforce across different types of routes. The increase in demand for BlaBlaCar for some better

<footnote n="18">¹⁸ $e^{0.2835} - 1 = 0.33$. This formula applies to other percentages calculated in this section.</footnote>
maintained routes was believed to be weaker. We do not go deeper to avoid unsupported speculations, especially when the operational data of SNCF is not available.

When adjusted price is treated as a continuous variable in Column 2, one-euro negative deviation from the recommended price increases demand by 20%. Moving onto Column 3 to 7 where discrete price levels replace the continuous price, we find that the largest increase in demand is found at the recommended price, while controlling for supply.<fnref n="19" /> We show the coefficients of $P_{r-1}$, $P_r$, $P_{r+1}$ and $P_{r+2}$ and compute the additional increase in seats booked by reducing a unit of price around the recommended price, while other levels are not shown for brevity. According to Column 4, the increases in quantity booked at three price levels around the recommended price are the following:

* From $P_{r+2}$ to $P_{r+1}$, the increase in log points = -1.5216 + 2.2068 = 0.6852

* From $P_{r+1}$ to $P_r$, the increase in log points = -0.6481 + 1.5216 = 0.8735

* From $P_r$ to $P_{r-1}$, the increase in log points = -0.3264 + 0.6481 = 0.3217

This result is interesting as it suggests that some distortion is also found on the demand side, net of the effect of supply. Passengers' booking behaviors are affected by offers available and, thus, there is a tendency to demand or book a seat around the recommended price.

<table><caption>Table 4: Effect of Strike on Passenger Booked Seats Number (Log)</caption><thead><tr><th></th><th>(1)<br>All</th><th>(2)<br>All</th><th>(3)<br>All</th><th>(4)<br>All</th><th>(5)<br>&lt;100 km</th><th>(6)<br>100-380 km</th><th>(7)<br>&gt;380 km</th></tr></thead><tbody><tr><td>Strike</td><td>0.2426***<br>(0.0134)</td><td>0.2835***<br>(0.0152)</td><td>0.2814***<br>(0.0154)</td><td>0.2763***<br>(0.0157)</td><td>0.2368***<br>(0.0235)</td><td>0.2388***<br>(0.0181)</td><td>0.3186***<br>(0.0295)</td></tr><tr><td>Supply</td><td></td><td></td><td></td><td>0.0786***<br>(0.0167)</td><td>0.3413***<br>(0.0331)</td><td>0.1787***<br>(0.0186)</td><td>0.1497***<br>(0.0199)</td></tr><tr><td>Adjusted price<br>(continuous)</td><td colspan="7">-0.2253***</td></tr></tbody></table>

<footnote n="19">¹⁹ The increase in demand can be easily computed by subtracting the coefficient of $P_r$ from that of $P_{r+1}$.</footnote>
(0.0180)

Adjusted price
(discrete)

<table><tbody><tr><td>P<sub>r-1</sub></td><td>-0.3264***<br>(0.0777)</td><td>-0.2261***<br>(0.0829)</td><td>0.5799***<br>(0.1687)</td><td>0.8236***<br>(0.0948)</td><td>0.7247***<br>(0.1443)</td></tr><tr><td>P<sub>r</sub></td><td>-0.6481***<br>(0.0720)</td><td>-0.6322***<br>(0.0709)</td><td>-0.3064**<br>(0.1298)</td><td>0.3087***<br>(0.0958)</td><td>0.2959*<br>(0.1474)</td></tr><tr><td>P<sub>r+1</sub></td><td>-1.5216***<br>(0.0661)</td><td>-1.5311***<br>(0.0638)</td><td>-1.3384***<br>(0.1445)</td><td>-0.7359***<br>(0.0902)</td><td>-0.3196**<br>(0.1446)</td></tr><tr><td>P<sub>r+2</sub></td><td>-2.2068***<br>(0.0797)</td><td>-2.2136***<br>(0.0803)</td><td>-2.8080***<br>(0.2140)</td><td>-1.4850***<br>(0.1041)</td><td>-0.6960***<br>(0.1577)</td></tr><tr><td>Route FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Week FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Month FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>DoW FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Holiday FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>No. of Obs.</td><td>73233</td><td>73233</td><td>73233</td><td>73233</td><td>7134</td></tr><tr><td>No. of Routes</td><td>82</td><td>82</td><td>82</td><td>82</td><td>32</td></tr><tr><td>R-squared</td><td>0.882</td><td>0.948</td><td>0.976</td><td>0.976</td><td>0.981</td></tr><tr><td>AIC</td><td>232900</td><td>172640</td><td>117007</td><td>116269</td><td>8805</td></tr></tbody></table>

Note: Standard errors are clustered in routes, shown in parentheses.

* significant at 10%, ** significant at 5%, and *** significant at 1%
## Price Stability Facing the Strike: The Role of Price Recommendation

In this section, we focus on the price-setting behavior to better understand the price stabilizing effect of the price recommendation system. Based on the data and our analysis above, demand increased by roughly 33% on an average strike day while the increase in supply was only around 6%. It reveals that for BlaBlaCar, the demand shock is much larger than the supply shock. As a result, we should expect the average price of proposed seats and booked seats to go up during strike days, and the magnitude depends on the shape of the supply curve. As we explained in the Introduction, the price recommendation nudges drivers to set price close to the recommended level, inducing a price-stabilizing effect. The 2018 SNCF Strike provides us a sample period during which abnormal demand increases were recorded regularly so that we can empirically estimate the price-stabilizing effect, or how effective the BlaBlaCar price recommendation mechanism is.

We construct an intuitive measure of route-day price deviation from the recommended price as follows:

$$ \delta_{it} = \frac{\sum_{j}^{l}(p_{jit} - p_{ri})/p_{ri}}{J}, $$

$\delta_{it}$ denotes the average price deviation level of route $i$ on day $t$, $p_{jit}$ denotes the price of each seat offered for route $i$ and day $t$, $p_{ri}$ denotes the recommended price of route $i$ and is time-invariant. The average deviation level is the average of the percentage of price deviation of each offered seat for route $i$ on day $t$. Note that we allows positive and negative deviations to cancel out to give the overall deviation level. Nevertheless, for different recommended price levels, a one-euro deviation will result in different percentage changes. As a result, it is necessary control route-specific characteristics in the analysis.

We then regress route-day deviation level on the strike dummy and other controls. Table 5 reports the regression results. In all regressions, we include week fixed effects, month fixed effects, national holiday fixed effects and day of week fixed effects to capture any time-specific factors. We also include route fixed effects as discussed above. Column 1 shows that on average, on a strike day, the price deviation in percentage increased by 0.84% compared to a non-strike day, which is statistically significant. Considering the 33% increase in booked seats, 0.84% increase in deviation is relatively small. Column 2-4 again gives break down analysis for different distance categories. The impact of strike is larger for under 100 km and above 380 km categories, but the scales of coefficients are still small.
<table><caption>Table 5: Price-Stabilizing Effect of the Recommended Price Mechanism</caption><thead><tr><th></th><th>(1)</th><th>(2)</th><th>(3)</th><th>(4)</th></tr><tr><th></th><th>All</th><th>&lt;100km</th><th>100-380km</th><th>&gt;380km</th></tr></thead><tbody><tr><th>Strike</th><td>0.0084***<br>(0.0011)</td><td>0.0117***<br>(0.0038)</td><td>0.0064***<br>(0.0009)</td><td>0.0107***<br>(0.0017)</td></tr><tr><th>Route FE</th><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><th>Week FE</th><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><th>Month FE</th><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><th>DoW FE</th><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><th>Holiday FE</th><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><th>No. of Routes</th><td>82</td><td>20</td><td>46</td><td>16</td></tr><tr><th>No. of Obs.</th><td>9863</td><td>2307</td><td>5604</td><td>1952</td></tr><tr><th>Within R2</th><td>0.0231</td><td>0.0511</td><td>0.0478</td><td>0.143</td></tr><tr><th>Between R2</th><td>0.0685</td><td>0.0211</td><td>0.0079</td><td>.</td></tr><tr><th>Overall R2</th><td>0.0052</td><td>0.0167</td><td>0.0062</td><td>0.0844</td></tr></tbody></table>

Note: Standard errors are clustered in routes, shown in parentheses.

* significant at 10%, ** significant at 5%, and *** significant at 1%

Measuring price deviation from recommendation by percentage deviation has its flaw. As a driver can only adjust the price level by a unit of euro, an increase of the price by a unit may imply very different changes in terms of percentage for short and long routes. A unit higher than the recommendation implies 25 percent increase for a route with a recommended price equal to €4 but only 10 percent if the recommendation price is €10. To enhance comparability, we propose another measure of deviation that considers only the numerical deviated value:

$$ \delta_{it} = \frac{\sum_{j}^{J} p_{jit} - p_{ri}}{J} $$
$\delta_{it}$ denotes the average price deviation level of route $i$ on day $t$, $p_{jit}$ denotes the price of each seat offered for route $i$ and day $t$, $p_{ri}$ denotes the recommended price of route $t$ and is time-invariant. The drawback of this measure is that drivers of longer routes can set price at a much larger range, since the values of the upper bound and the lower bound prices are proportional to the recommended price. Table 6 reports the fixed effect panel estimations using the alternative deviation measure on all routes (Column 1) and on the three distance categories (Columns 2-4). Strike caused prices to go up on average by 12.7 cents with all routes included. Longer routes show a larger price increase, with an increase of 3.5 cents for routes shorter than 100 km, 7.5 cents for routes in between 100 and 380 km, and 38.7 cents for routes longer than 380 km. In short, prices on the platform are arguably stable, despite the sharp increase in demand due to the SNCF strike.

<table><caption>Table 6: Price-Stabilizing Effect of the Recommendation System (Alternative Measure)</caption><thead><tr><th></th><th>(1)</th><th>(2)</th><th>(3)</th><th>(4)</th></tr><tr><th></th><th>All</th><th>&lt;100km</th><th>100-380km</th><th>&gt;380km</th></tr></thead><tbody><tr><td>Strike</td><td>0.1267***<br>(0.0214)</td><td>0.0349**<br>(0.0084)</td><td>0.0745***<br>(0.0112)</td><td>0.3874***<br>(0.0748)</td></tr><tr><td>Route FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Week FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Month FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>DoW FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>Holiday FE</td><td>YES</td><td>YES</td><td>YES</td><td>YES</td></tr><tr><td>No. of Routes</td><td>82</td><td>20</td><td>46</td><td>16</td></tr><tr><td>No. of Obs.</td><td>9863</td><td>2307</td><td>5604</td><td>1952</td></tr><tr><td>Within R2</td><td>0.0465</td><td>0.0788</td><td>0.0566</td><td>0.1264</td></tr><tr><td>Between R2</td><td>0.0319</td><td>0.0005</td><td>0.0359</td><td>.</td></tr><tr><td>Overall R2</td><td>0.0142</td><td>0.0165</td><td>0.0093</td><td>0.0680</td></tr></tbody></table>

Note: Standard errors are clustered in routes, shown in parentheses.

* significant at 10%, ** significant at 5%, and *** significant at 1%
Discussion and Conclusion

During a nationwide railway strike, passengers look for alternatives. Switching to driving may be unpleasant, environmental-unfriendly, and only possible for car owners. The capacities of other alternatives, such as coaches and planes, are relatively inflexible during a short period of the time. Shared modes, such as intercity ridesharing, benefits from their untapped capacity and their flexibility and serve as an important alternative during a major transportation disruption. Meanwhile, facing huge demand increases, BlaBlaCar maintained the price stability on its platform thanks to the price recommendation system based on the guideline and legislation laid down by the French government. BlaBlaCar thus presents an interesting case for both policymakers and researchers who are interested in constructing a more resilient transportation system.

BlaBlaCar has been operating under a very specific policy framework initiated by the French government, which is built upon the cost-sharing principle of ridesharing. BlaBlaCar translates this regulation into a company-level price regulation that includes a default recommended price, as well as the corresponding upper and lower price limits. The recommended price is set to uphold the cost-sharing principle, which helps drivers avoid potential disputes with the tax department. Meanwhile, it allows BlaBlaCar to clarify its position in the ridesharing market with non-professional drivers, which is different from the ridehailing market with professional drivers, thus avoiding controversies regarding the employment status of drivers. The smart design by BlaBlaCar that proposes a default price when a driver posts an offer softly manipulates the market supply schedule and keeps prices close to the recommended price. The entire policy framework, together with the price recommendation system, maintains the price stability on the platform and BlaBlaCar ridesharing as a low-cost and stable alternative for passengers. Even when the 2018 SNCF strike hit the French transportation system severely, causing supplied seats on BlaBlaCar to increase by 6% and booked seats to increase by 33%, the price increase was arguably small, roughly at 0.8%. Although we are unable to construct a counterfactual without the price recommendation mechanism to compare how much higher or lower than the current level drivers would have set their prices, the fact that a spike of seats offered at the recommended price exists in the market supply curve shows that the mechanism has distorted the price mechanism. Such a price stabilizing effect keeps the platform immune to sudden price spikes that would reduce transactions. As a result, the platform is highly absorbent and resilient in times of shocks and prevented a significant social welfare loss during the 2018 SNCF Strike.
Economics predicts that a price control that keeps prices low and aims to increase transactions may not work as the price control discourages suppliers from joining the market. However, this effect is negligible, if exists at all, on the BlaBlaCar platform, since supply is relatively abundant with a lot of unfilled seats available across France. Besides, the cost-sharing principle, although imposed by the government, is also shared among ridesharing drivers in France. Zhu (2021) found strong pro-social motivations among rural ridesharing drivers. As a platform-based service, BlaBlaCar is concerned about the well-being of both drivers and passengers. Allowing free rein to price competition between drivers may crowd out non-professional drivers, replace them by professional drivers who charge their prices according to the market condition. Unconstrained price competition may not be an appropriate long-term strategy for maintaining a vivid non-professional driver pool and a community spirit.

Our findings have several implications for both policymakers and shared mobility service providers. The price recommendation system plays two roles. First, it is a policy intermediary translating the government regulation that aims at maintaining the cost-sharing principle into suggestions for drivers that they can easily comply with. Second, it is a fair and resilient mechanism to maintain the price stability of the service even under considerable supply and demand fluctuations. While the economic and environmental benefits of ridesharing have been on the policy agenda, policymakers have also started to be interested in the role of ridesharing in a multi-modal transport system and for less-connected areas. Our paper provides empirical evidence of the capacity flexibility of intercity ridesharing in the event of a nationwide railway disruption. Moreover, we demonstrate the price stabilizing effect of the price recommendation system, offering insights to the construction of a resilient transportation system, one of the priorities of the EU sustainable and smart mobility strategy.<fnref n="20" />

Our paper has several limitations. We do not have access to the information about the strike or the operation level of each train line, nor do we know the pricing strategy or the capacity of trains. We lack information on other alternatives to trains, such as personal cars, coaches, and planes, and thus are unable to obtain a full picture of the substitutability between transport modes. Moving away from the typical research question about cross-elasticity and substitutability, our work exploits the rich information on BlaBlaCar and illustrates the price stabilizing effect of the BlaBlaCar's price recommendation system during a major nationwide

<footnote n="20">²⁰ https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A52020DC0789</footnote>
railway disruption, which highlights the importance of ridesharing platforms within a transportation system.

Reference

Bešinović, N. (2020). Resilience in railway transport systems: A literature review and research agenda. *Transport Reviews*, 40(4), 457–478.
https://doi.org/10.1080/01441647.2020.1728419.

Borowski, E., J. Soria, J. Schofer, and A. Stathopoulos. 2022. "Does ridesourcing respond to unplanned rail disruptions? A natural experiment analysis of mobility resilience and disparity." *arXiv preprint*. DOI: arXiv:2202.09466.

Casprini, E., A. Di Minin, and A. Paraboschi. 2019. "How do companies organize nascent markets? The BlaBlaCar case in the inter-city shared mobility market." *Technological Forecasting and Social Change* 144: 270-281.
https://doi.org/10.1016/j.techfore.2018.01.012.

Chen, M. K., and Sheldon, M. (2016). Dynamic pricing in a labor market: Surge pricing and flexible work on the uber platform. *Working Paper, University of California, Los Angeles*.
Retrieved from
https://www.anderson.ucla.edu/faculty_pages/keith.chen/papers/SurgeAndFlexibleWork_Wor
kingPaper.pdf.

Cox, A., Prager, F., and Rose, A. (2011). Transportation security and the role of resilience: A foundation for operational metrics. *Transport Policy*, 18(2), 307–317.
https://doi.org/10.1016/j.tranpol.2010.09.004.

Crozet, Y., and L Guihéry. 2018. "Deregulation of long distance coach services in France." *Research in Transportation Economics* 69: 284-289.
https://doi.org/10.1016/j.retrec.2018.07.021.

Farajallah, M., R. G. Hammond, and T. Pénard. 2019. "What drives pricing behavior in peer-to-peer markets? Evidence from the carsharing platform BlaBlaCar." *Information Economics and Policy* 48: 15-31. https://doi.org/10.1016/j.infoecopol.2019.01.002.

Fuller, D., Sahlqvist, S., Cummins, S., and Ogilvie, D. (2012). The impact of public transportation strikes on use of a bicycle share program in London: Interrupted time series design. *Preventive Medicine*, 54(1), 74–76. https://doi.org/10.1016/j.ypmed.2011.09.021.
Garg, N., and Nazerzadeh, H. (2022). Driver surge pricing. *Management Science*, 68(5), 3219–3235. https://doi.org/10.1287/mnsc.2021.4058.

Guda, H., and Subramanian, U. (2019). Your Uber is arriving: Managing on-demand workers through surge pricing, forecast communication, and worker incentives. *Management Science*, mnsc.2018.3050. https://doi.org/10.1287/mnsc.2018.3050.

Hoffmann, K., Ipeirotis, P. G., and Sundararajan, A. (2019). Ridesharing and the use of public transportation. *SSRN Electronic Journal*. https://doi.org/10.2139/ssrn.4099122.

Ivaldi, M., and E. Palikot. 2020. "Sharing when stranger equals danger: Ridesharing during Covid-19 pandemic." *Covid Economics* 46: 68-93. Retrieved from https://cepr.org/content/covid-economics-vetted-and-real-time-papers-0.

Jiao, J. (2018). Investigating Uber price surges during a special event in Austin, TX. *Research in Transportation Business & Management*, 29, 101–107. https://doi.org/10.1016/j.rtbm.2018.02.008.

Kepaptsoglou, K., and Karlaftis, M. G. (2009). The bus bridging problem in metro operations: Conceptual framework, models and algorithms. *Public Transport*, 1(4), 275–297. https://doi.org/10.1007/s12469-010-0017-6.

Mattsson, L.-G., and Jenelius, E. (2015). Vulnerability and resilience of transport systems – A discussion of recent research. *Transportation Research Part A: Policy and Practice*, 81, 16–34. https://doi.org/10.1016/j.tra.2015.06.002.

Monchambert, G. 2020. "Why do (or don't) people carpool for long distance trips? A discrete choice experiment in France." *Transportation Research Part A: Policy and Practice* 132: 911-931. https://doi.org/10.1016/j.tra.2019.12.033.

Rangel, T., Gonzalez, J. N., Gomez, J., Romero, F., and Vassallo, J. M. (2022). Exploring ride-hailing fares: An empirical analysis of the case of Madrid. *Transportation*, 49(2), 373–393. https://doi.org/10.1007/s11116-021-10180-w.

Saberi, M., Ghamami, M., Gu, Y., Shojaei, M. H. (Sam), and Fishman, E. (2018). Understanding the impacts of a public transit disruption on bicycle sharing mobility patterns: A case of Tube strike in London. *Journal of Transport Geography*, 66, 154–166. https://doi.org/10.1016/j.jtrangeo.2017.11.018.

Shaheen, S., A. Stocker, and M. Mundler. 2017. "Online and app-based carpooling in France: Analyzing users and practices — A study of BlaBlaCar." In *Disrupting mobility*, 181-196. Cham: Springer. Retrieved from https://link.springer.com/chapter/10.1007/978-3-319-51602-8_12.
Tyndall, J. 2019. "Free-floating carsharing and extemporaneous public transit substitution." *Research in Transportation Economics* 74: 21-27.
https://doi.org/10.1016/j.retrec.2019.01.005.

Zhang, S., H. K. Lo, K. F. Ng, and G. Chen. 2021. "Metro system disruption management and substitute bus service: a systematic review and future directions." *Transport Reviews* 41 (2): 230-251. https://doi.org/10.1080/01441647.2020.1834468.

Zhu, D. 2021. "The limits of money in daily ridesharing: Evidence from a field experiment in rural France." *Revue d'économie industrielle* 173 (1): 161-202.
https://doi.org/10.4000/rei.9984.

Zhu, S., & Levinson, D. M. (2012). Disruptions to transportation networks: A review. *Network reliability in practice*, 5-20. https://doi.org/10.1007/978-1-4614-0947-2_2.

# Appendices

## 1. SNCF Strike Calendar

<figure><img src="image_10.png" /></figure>

Note: Strike dates are marked in red. Retrieved from https://faq trainline eu/article/674-sncf-french-rail-strikes-2018 on January 14th, 2019.
## 2. BlaBlaCar Trip Search Page

<figure><img src="image_11.png" /></figure>

Note: Demonstration of the trip searching results. Retrieved in July 2018 from BlaBlaCar.fr.
The web page design changed in summer 2018, after our data collection period.

## 3. Demonstration of the Default Price

<figure><img src="image_12.png" /></figure>
Note: Here, we use Paris-Lyon as an example. If a driver wishes to raise the price from the default level, then he/she will receive an alert that most other rides are cheaper, and that staying with the default price improves the likelihood of being booked. If he/she still wishes to increase the price level, the color of the price switches from green to orange and eventually to red. On the other hand, setting the price lower than the default level does not trigger any warning message or change of color. Note that the mobile application has a different interface. The color of the price never changes, but the driver receives a warning message when deviating from the default level. Deviating from the default price level is even more complicated on a mobile device because drivers need to confirm twice to adjust the price up or down.

## 4. BlaBlaCar Commission Levels in 2018

<table><thead><tr><td>Price charged by driver</td><td>Commission level</td></tr></thead><tbody><tr><td>1-6</td><td>1.0</td></tr><tr><td>7-8</td><td>1.5</td></tr><tr><td>9-11</td><td>2.0</td></tr><tr><td>12-13</td><td>2.5</td></tr><tr><td>14-16</td><td>3.0</td></tr><tr><td>17-18</td><td>3.5</td></tr><tr><td>19-21</td><td>4.0</td></tr><tr><td>22-23</td><td>4.5</td></tr><tr><td>24-26</td><td>5.0</td></tr><tr><td>27-28</td><td>5.5</td></tr><tr><td>29-32</td><td>6.0</td></tr><tr><td>33-35</td><td>6.5</td></tr><tr><td>36-37</td><td>7.0</td></tr><tr><td>38-40</td><td>7.5</td></tr><tr><td>41-42</td><td>8.0</td></tr></tbody></table>
43-46 8.5

47-50 9.0

>51 18% of price, rounded to the nearest 0.5 euro

Note: The commission policy did not change during the strike period. Information collected in 2018 from https://blog.BlaBlaCar.fr/blablalife/lp/ nouvelle-grille-de-frais-de-reservation. This page is no longer accessible since BlaBlaCar changed their commission policy in 2019 with a slight increase. The new policy is explained here: https://www.BlaBlaCar.fr/faq/question/comment-sont-calcules-les-frais-de-reservation

## 5. BlaBlaCar API Data Collection and Cleaning Details

### The scraping protocols

Data collection started on April 1st, 2018, two weeks after SNCF's announcement of the strike and two days before the strike started (April 3rd). The scraping ended on August 3rd, 2018. We extended the collection period one month after the strike to use the post-strike month as the control period. In this paper, we used data from April to July 2018.

During this period, we ran the scraping program every day at the end of day, usually between 6:00 and 7:00 p.m. Since most of the trips depart before 7:00 p.m., scraping at the end of the day increases the chance of capturing the final status of trips after departure. The decision to collect data on a daily basis is a balance of accuracy and convenience. Scraping several times per day would give a more complete sample and would trace changes more accurately, but the incremental benefit would not compensate the difficulty of managing a much larger dataset, and we would also need to reduce route numbers to not exceed the daily API query limit. Scraping once every few days may cause daily booking changes to be overlooked and changes in trip information to be confounded with changes to date-specific effects, such as day of week.

We traced each trip up to 14 days before departure. In practice, on day t, we collected information about trips departing not only on day t, but also on day t+1, t+2, up to t+14. There were several reasons for this. First, we were able to trace most changes to the trips, including the date of each seat being booked or canceled, and modifications to trip information on the drivers' side. Very few trips are published or booked more than 14
days before departure. Second, canceled and fully booked trips would be wiped out from
the API shortly, so information on fully booked trips would be missed if only same-day
trips were scraped. Before the first booking, drivers can freely modify any trip
information, including cities, available seats, and price. Once a booking has been made,
drivers can no longer modify the price unless the only passenger cancels the seat. For the
final analysis, we only need one observation per trip. We kept the final statuses of price
and booking, and generated supplementary variables on changes in trip, price, and
booking information. For example, for booking, we generated variables on the date of
booking for the first, second, third, and forth seat. Not all variables were exploited in the
current paper, but they provide opportunities for future research.

Dealing with API biases

Even though the API returns correct information for all trips that satisfy the query and are
available on the API at the moment of the collection, our data could be biased in two
ways. First, trip information may evolve after the last collection, but the evolution may
fail to be traced if the trip would have been deleted from the API before the next collect
session. This failure would create a downward bias of the supply and demand estimation
if drivers had put more seats available or more passengers had booked seats between the
two collections. An upward bias of supply and demand estimation would occur in the
reverse case.<fnref n="21" /> The second bias is that, when a trip disappears from the API, it could
either have been deleted by the driver or fully booked.<fnref n="22" /> Sometimes it is difficult to
decide between the two. If we interpret a cancelation as a full booking, we will
overestimate the impact, and vice versa. We distinguished three scenarios and detailed
the protocol of assignment under each scenario.

Scenario 1: At day *t+1*, we still observe trips departing at day *t*.

This is the ideal situation. We can take the trip information of the last scraping date as the
final status.

<footnote n="21">²¹ An extreme case is that a trip could be published, fully booked, and deleted from API between two collections. We have no way of tracing these trips. However, such cases would cause us to underestimate the impact of the strike on demand and supply. Since the impacts are already significant, it would not change the direction of the results.</footnote>

<footnote n="22">²² We learned anecdotally from an experienced BlaBlaCar driver that driver cancelation can be strategic. To maximize the chance of being booked, some drivers publish multiple trips on different time of day for the same route. If they get a booking from one offer, they will cancel the other trips. We have no information on how common the practice is among drivers. In terms of the platform policy, during the data collection period, drivers can cancel their trips at any time, even if the trip already has bookings. No penalty will be applied except for drivers who often cancel at the last minute - they may not be able to publish new trips.</footnote>
### Scenario 2: The last scraping date of the trip is the same as its departure date.

This situation is not ideal but still gives us trustworthy data in most cases, since we scrape late in the evening, when most trips have departed. For trips departing later, their pricing and booking information is less likely to change in the last minute. As in scenario 1, We can take trip information at the last scraping date as the final status.

### Scenario 3: The last scraping date of the trip is before its departure date.

This is the most complex situation with many possibilities, thus impossible to perfectly de-bias. We applied a simple, straightforward but efficient rule based on two rationales. First, the earlier the trip disappears from the API compared to the departure date, the more likely it's a cancelation. Second, the fewer seats booked when the trip disappears from the API, the more likely it's a cancelation, especially when the trip disappears with zero bookings. In practice, we took a balance of the two rationales and adjusted the offered and booked seat numbers as follows:

If a trip has four unbooked seats before being deleted from the API, we assign it to the cancelation case, even if it is deleted only one day before departure. If a trip has three unbooked seats before being deleted while the total available seat number is also three, we also assign it to the cancelation case. However, if a trip has three unbooked seats before being deleted and the total available seat number is larger than three, meaning that the trip has at least one booking before being deleted, we assign it to the full booking case. If a trip has only one or two unbooked seats before being deleted, we assign it to the full booking case despite the total available seat number, because it is common to have one or two bookings in the last minute.

## 6. Information About the 41 One-Way Routes

<table><thead><tr><th>Route</th><th>Upper Bound</th><th>Lower Bound</th><th>Recommended Price</th><th>Distance (km)</th></tr></thead><tbody><tr><td colspan="5"><em>Major to major cities</em></td></tr><tr><td>Paris Lyon</td><td>37</td><td>13</td><td>30</td><td>469</td></tr><tr><td>Paris Marseille</td><td>62</td><td>22</td><td>50</td><td>775</td></tr><tr><td>Paris Bordeaux</td><td>47</td><td>17</td><td>38</td><td>585</td></tr><tr><td>Paris Toulouse</td><td>54</td><td>20</td><td>44</td><td>679</td></tr></tbody></table>
<table><tr><td>Paris Strasbourg</td><td>39</td><td>14</td><td>31</td><td>492</td></tr><tr><td>Paris Nantes</td><td>30</td><td>11</td><td>24</td><td>385</td></tr><tr><td>Lyon Marseille</td><td>25</td><td>9</td><td>20</td><td>314</td></tr><tr><td>Lyon Bordeaux</td><td>45</td><td>16</td><td>36</td><td>556</td></tr><tr><td>Marseille Toulouse</td><td>33</td><td>12</td><td>26</td><td>403</td></tr><tr><td>Marseille Montpellier</td><td>14</td><td>5</td><td>11</td><td>170</td></tr><tr><td>Bordeaux Toulouse</td><td>19</td><td>7</td><td>15</td><td>246</td></tr><tr><td>Toulouse Montpellier</td><td>19</td><td>7</td><td>15</td><td>243</td></tr><tr><td>Paris Rennes</td><td>28</td><td>10</td><td>23</td><td>354</td></tr></table>

Major to secondary cities

<table><tr><td>Paris Lille</td><td>18</td><td>6</td><td>14</td><td>219</td></tr><tr><td>Paris Amiens</td><td>12</td><td>4</td><td>9</td><td>144</td></tr><tr><td>Paris Reims</td><td>11</td><td>4</td><td>9</td><td>144</td></tr><tr><td>Paris Rouen</td><td>11</td><td>4</td><td>8</td><td>136</td></tr><tr><td>Paris Le Mans</td><td>16</td><td>6</td><td>13</td><td>213</td></tr><tr><td>Lyon Grenoble</td><td>8</td><td>3</td><td>7</td><td>111</td></tr><tr><td>Lyon Clermont-Ferrand</td><td>13</td><td>5</td><td>10</td><td>165</td></tr><tr><td>Lyon Dijon</td><td>16</td><td>6</td><td>12</td><td>196</td></tr><tr><td>Lyon Chambéry</td><td>8</td><td>2</td><td>7</td><td>108</td></tr><tr><td>Marseille Aix-en-Provence</td><td>3</td><td>1</td><td>2</td><td>33.2</td></tr><tr><td>Marseille Avignon</td><td>8</td><td>3</td><td>6</td><td>105</td></tr><tr><td>Marseille Toulon</td><td>5</td><td>1</td><td>4</td><td>66.3</td></tr><tr><td>Bordeaux Poitiers</td><td>20</td><td>7</td><td>16</td><td>258</td></tr><tr><td>Bordeaux Pau</td><td>17</td><td>6</td><td>14</td><td>217</td></tr><tr><td>Toulouse Carcassonne</td><td>7</td><td>2</td><td>6</td><td>94.1</td></tr><tr><td>Montpellier Nîmes</td><td>4</td><td>1</td><td>3</td><td>56</td></tr><tr><td>Strasbourg Metz</td><td>13</td><td>4</td><td>10</td><td>165</td></tr><tr><td>Nantes Rennes</td><td>9</td><td>3</td><td>7</td><td>113</td></tr><tr><td>Nantes Angers</td><td>7</td><td>2</td><td>5</td><td>91.6</td></tr></table>

Secondary to secondary cities
<table><tr><td>Lille Calais</td><td>9</td><td>3</td><td>7</td><td>111</td></tr><tr><td>Rennes Saint-Malo</td><td>5</td><td>2</td><td>4</td><td>69.5</td></tr><tr><td>Rennes Caen</td><td>15</td><td>5</td><td>12</td><td>186</td></tr><tr><td>Nice Cannes</td><td>3</td><td>1</td><td>2</td><td>33.1</td></tr><tr><td>Le Havre Rouen</td><td>7</td><td>2</td><td>6</td><td>92.6</td></tr><tr><td>Nancy Metz</td><td>4</td><td>1</td><td>3</td><td>56.7</td></tr><tr><td>Tours Le Mans</td><td>7</td><td>2</td><td>6</td><td>104</td></tr><tr><td>Tours Poitiers</td><td>8</td><td>3</td><td>6</td><td>112</td></tr><tr><td>Dijon Besançon</td><td>7</td><td>2</td><td>6</td><td>96</td></tr></table>

Note: Prices are in euros. Return routes are not listed here. They belong to the same category as their pairs and share the same reference distance.

## 7. Supply Curves (Above) and Lower Bound of Demand Curves (Below) of All April Days

<figure><img src="image_13.png" /></figure>
<figure><img src="image_14.png" /></figure>

## 8. Proof of Equivalence Between Change in the Lower Bound of the Demand Curve and Change in the Demand Curve

Let $p$ and $x$ denote value and quantity. On a non-strike day, the equations of the lower bound of the demand curve and the demand curve are as follows:

$$L_1: x = c - f(p)$$

$$D_1: x = h(c) - g(p)$$

We assume that the difference between the demand curve and its lower bound is managed by the function $h(.)$. This function captures the relationship between the booking price (shown by the lower bound) and the maximum willingness to pay (shown by the demand curve). A strike causes the demand to shift to the right horizontally (on a usual price-quantity diagram), which cannot be observed. What we can observe is the change in the lower bound of the demand curve. Suppose the observed change in the lower bound is $d$ while the strike does not change the function $f(.)$, the difference between a strike day and a non-strike day is straightforward:

$$L_2 - L_1 = c + d - f(p) - c + f(p) = d$$

The change in demand is thus:
$$D_2 - D_1 = h(c + d) - g(p) - h(c) + g(p) = h(c + d) - h(c)$$

This shows us the condition that the observed change in the lower bound is equivalent to a shift in the demand curve. If the change caused by the strike is independent of the relationship between the booking price and maximum willingness to pay, the change in demand is:

$$D_2 - D_1 = h(c) + d - h(c) = d.$$

In words, the strike should have no impact on the difference between what a passenger pays and his or her maximum willingness to pay.