Dynamic pricing for shared mobility: Zoba’s approach
Tags: Transportation, Mobility, Startup, Scooters, Data Science

In our previous post, we laid out how natural user preferences result in imbalances between supply and demand in shared mobility systems. Because users decide where to leave the supply — often an order of magnitude more frequently than the operator — there is a natural, entropic tendency toward demand-supply imbalance that leaves demand unserviced and supply idle. Without any intervention, this imbalance reduces the revenue potential of the fleet and makes it unlikely an operator will ever achieve profitability.

There are two primary ways an operator can counterbalance the natural entropic forces at work in a shared mobility system. They can either incentivize users to move vehicles into more optimal locations or they can physically move the vehicles themselves. Both levers, used correctly, can dramatically increase the profitability of shared mobility. Using a poorly designed dynamic pricing or rebalancing model may be worse than doing nothing — each will add costs without meaningful performance contributions.

Zoba develops market-leading optimization software used to automate key operational decisions by mobility operators in dozens of cities on four continents. In this post, we’ll explore our use of dynamic pricing as an operational lever; in the next, we’ll explain our approach to rebalancing.

Note: At Zoba, we broadly refer to mobility operators that own their assets as ‘fixed asset mobility,’ including but not limited to micromobility (kick scooters or moped shares), carsharing, autonomous mobility, and demand responsive transit. Services that match independent contractors to users (like ride-hailing or on demand delivery), but do not themselves operate any assets, do not fit this category.

Dynamic Pricing in Shared Mobility

Mobility operators are in a perishable asset business. An operator makes money by renting their assets and bears the full costs of those assets regardless of whether they produce revenue. For these businesses to work, it is critical that an operator optimizes marketplace operations around maximizing utilization when demand is present. Many businesses with perishable assets — hotels and airlines are classic examples — use pricing levers to ensure they do not have their assets perish unused.

Today, it’s almost unheard of for fixed asset mobility operators to leverage dynamic pricing, despite its ubiquity in two-sided marketplaces for ride-hailing. Where it does exist, it’s very basic — neither forward-looking nor market responsive. The most common approach involves discounting vehicles a set amount only after they sit unused for 24–48 hours; other setups reward or penalize users for dropping vehicles in static geofences.¹ Such basic models have become the status quo because certain foundational aspects of shared mobility make more robust, user-friendly models difficult to design.

First of all, in fixed asset shared mobility supply is fixed — no price point will change supply levels in the near term. A user willing to pay $100 for a moped ride will not make a vehicle available within walking distance; and an autonomous ride-hailing fleet cannot increase its fleet size in response to an evening demand spike. This means pricing cannot be used to adjust total supply levels. Demand-supply patterns in fixed asset mobility play out over cycles that last hours and vary dramatically according to conditions like weather.

Complicating efforts to dynamically price, one-way service operators do not have advanced signals from the user of where they intend to go. Users are free agents, able to start the trip and leave a vehicle at any point within the service zone. A user may take a vehicle to a subsequently high demand area where it immediately gets another ride or to a dead zone where it sits idle for days. To counteract this freedom requires meaningful changes to the user experience that makes these services popular in the first place.

In short, to operate a truly dynamic pricing mechanism requires the ability to answer the following questions at all times:

What is the optimal spatial distribution of vehicles in the marketplace? Where do users want to start rides, and how many rides do they want to start? If an incentive can increase rides in some areas, where would those vehicles likely end their trips?

It is precisely because these questions are so difficult to answer dynamically that robust and market responsive dynamic pricing models are rare in shared mobility.

The Zoba Approach

Zoba’s unique modeling capabilities in these areas, the product of years of research and development, positioned us to rethink dynamic pricing from the ground up. Our system accounts for the underlying physics of the marketplaces we are optimizing while preserving the core user experience. We will now introduce our approach, sharing examples of the microservices feeding into our pricing optimization using previously available open data from Austin.

Zoba’s dynamic pricing model increases the revenue potential of a mobility fleet by reducing supply-demand imbalance. Essentially, we nudge the users to adjust the network towards a more optimal distribution at all times. The revenue upside from the more optimized fleet distribution will far outweigh the relatively modest incentive budget.

We designed our pricing engine to proactively apply discounts to vehicles before a ride rather than retroactively rewarding or punishing users who drop a vehicle in certain locations. Discounted vehicles are easy for users to identify and understand, whereas destination-based discounts create a hostile user flow by requiring users to adjust their behavior once already on a ride. Vehicle-based discounts are harder to implement than other systems: they require a careful understanding of demand conditions and user movement patterns.² On both fronts, Zoba has spent years developing the core infrastructure to handle these nuances effectively and at scale.

When we say demand at Zoba, we mean where users would want vehicles if they were always available to them. We do not mean ride histories, utilization heat maps, app opens, etc. We use a proprietary model to estimate demand in rides wanted per hour. Trying to build dynamic pricing models on top of a demand estimation system that confounds ridership for demand, or leverages app opens as a primary demand proxy will not be effective as using a method that accounts for true demand. Worse, building one purely off of long vehicle idle times means responding with price changes often days after the actual conditions called for it.

Zoba’s demand models are sensitive to the changing factors in a market at all times. They capture the ebb and flow of demand — the concentrated, intuitive spikes as well as the more hidden clusters well outside of downtowns. The following is an example of how demand moves in a from 8a to 10p in Austin (height proportional to degree of demand).

Demand in Austin from 8a to 10p

Predicting demand at any given time is necessary but not sufficient for executing effective market interventions. We must also anticipate how the vehicles will move over the same period — and how, as a result, demand and supply will interact. Zoba accomplishes this by running large simulation models that estimate the probability that a trip started in any given area will end in all other areas. Without the ability to model supply network evolution in this way, price interventions are accounting for a far too narrow view of market conditions (i.e. the right now).

To demonstrate, we visualize the highest probability trips in Austin (probability is represented by line width; red is source and yellow destination).

The probability that a ride starting in Austin will end in any other area of the city

Small changes in vehicle locations and resultant trips starts can have large impacts downstream. As an example, consider the two locations on the University of Texas campus. A trip originating from the point in the left image — just around 750 meters to the west of the image at right — is significantly more likely to be driven south towards downtown on weekday mornings. Though hard to intuit, these sort of subtle patterns exist across all mobility markets. Anticipating them is key to driving desired outcomes. If our intended goal was to shift vehicle supply towards downtown, we’d be better off discounting trips from the westward (on left) vehicles vs. the eastward (on right) vehicles. For either position, vehicles are very likely to remain around the university if ridden.

The difference in the probable end of two rides starting just 750m apart

With these two pieces of information as the core building blocks — we are running other services in tandem, like competition inference — we can set up an objective function that maximizes returns in ridership by selectively manipulating the prices of specific vehicles. At a high level, our system works as follows:

Estimate how demand will evolve over some period of time and the optimal vehicle volume in each area. Forecast how the supply network will develop over time and where vehicles are likely to end up, should they get a ride. Discount vehicles that are (i) unlikely to generate rides in their current position but (ii) if ridden, would end their trip in an area of higher relative value (higher demand, lower supply). Refresh the discounted (or surged) vehicles at a regular interval to account for the constant market evolution.

The end result is a set of vehicles that need price interventions. To demonstrate in Austin, we have flagged all vehicles set to receive a discount for the current period in red and all other vehicles in blue.

Example output from Zoba’s dynamic pricing API

The exact user incentive can vary: a free unlock, a fixed credit, or some percentage off the trip. If the incentive is credit-based (e.g. 10 free minutes), it also creates some lock-in effect vis-à-vis competitive services for future rides. Zoba refreshes the discounts at a regular interval — typically, every 30 minutes. Our models respond in near real-time to new developments in the market, such as shifting weather conditions or random demand fluctuations. After integration, there is essentially no work on the side of the operator to maintain the system.

One of the primary benefits of our approach is it is seamless for the user — there are no parking requirements or penalties that interrupt the normal user experience. Zoba’s selection of vehicles to discount actively keeps the overall fleet in demand-supply balance to increase the fleet’s utilization. All of this takes place without the user having to change their behavior or even being aware of their role in correcting the imbalances.³

Over time, Zoba will offer variations of this framework. Eventually, we plan to offer a surge pricing variant that targets willingness to pay instead of reducing fleet imbalance. We are developing frameworks for both dynamic budgeting of discount spend as well as iterative modeling of demand elasticity to better account for the price sensitivity of a given user base. Price elasticity of demand, like most things in mobility, varies both between and within markets.

The entire engine is accessible via a Zoba API endpoint for easy integration into an operator’s backend. Using the pricing engine is as simple as querying the Zoba API to receive the list of vehicles to change prices for (typically at a regular cadence). The operator then flags then signals the status change — say by changing a vehicle icon’s color or adding some symbol — to the users. We will also partner with select fleet management providers to bring Zoba’s dynamic pricing engine to their systems as a turnkey integration.

To learn how dynamic pricing could impact your mobility service, reach us at info@zoba.com. In our next piece, we’ll explore Zoba’s approach to fleet repositioning.