Marketplace Pricing Simulator
Elasticity estimation for pricing systems and marketplace supply-demand equilibrium modeling for Uber, DoorDash, and Airbnb-style platforms.
Use this simulator to connect demand curves, price elasticity, promotion impact, dynamic pricing, matching frictions, and market-clearing equilibrium in one place.
Scenario Setup
Choose a marketplace preset and stress-test your price, promotion, and supply assumptions.
Presets change the default assumptions and interpretation text while keeping the same underlying model.
Use the one-shot market-clearing view or switch to a multi-step surge-control simulation for Uber-like and DoorDash-like operating shocks.
Demand and promotion
A baseline gross consumer price such as average fare, delivery basket fee, or nightly rate.
Use rides per day, orders per day, or booked nights per day depending on the marketplace.
In a log-log model, this is the magnitude of the elasticity. The simulator reports it with a negative sign.
Percent discount, subsidy, or coupon applied to the consumer-facing price.
Captures extra conversion beyond the pure price effect, such as urgency, merchandising, or reminder effects.
Percent shift from weather, seasonality, rush hour, events, or holidays. In dynamic mode this is the initial shock that can decay over time.
Supply, matching, and take rate
Average payout per trip, order, or booked night used to anchor the supply curve.
Think active driver hours converted into trips, dasher capacity, or bookable host nights.
Higher values imply supply comes online more quickly when payouts improve.
Percent of gross price retained by the platform before supplier payout.
Accounts for geographic frictions, batching, acceptance behavior, and other matching losses.
Use this for regulation, weather, host blocking, or driver availability shocks. In dynamic mode this is the initial disruption before recovery.
Supplier incentives
Switch between a simple per-trip or per-order top-up and a richer quest / guarantee approximation.
Extra payout per completed trip, order, or booked night paid on top of the base supplier payout.
Completed units needed to unlock the quest bonus in the reduced-form approximation.
Lump-sum supplier bonus associated with hitting the target.
Percent probability that an eligible supplier treats the quest as attainable enough to respond.
Minimum effective payout per completed unit. The model only applies a top-up when base payout falls below this floor.
Dynamic surge controls
The simple mode only adjusts price from shortages. The richer mode also targets service quality and adds supplier top-ups tied to surge.
How many intervals to simulate after the initial shock.
Maps the simulation horizon to short marketplace windows such as 5-minute or 10-minute control loops. The simulator prorates the daily demand and supply inputs into each interval.
Higher values make price react faster to shortages, fill-rate misses, or missing supply buffer.
Caps how far above the base price the controller can move.
Percent of the gap between current and target supply that closes each interval.
Lets the weather, rush, or outage shock gradually fade instead of staying fixed the whole time.
Service quality target for the richer controller.
Desired extra effective supply as a percent of demand to protect ETAs and cancellations.
Extra supplier payout per unit for each additional 1.0x of surge above the base price.
Prevents the richer controller from using unbounded supplier top-ups.
Model Outputs
These are directional planning metrics. In production, validate them with experiments, switchbacks, or defensible quasi-experimental variation.
Demand Curve
Shows how the price assumption and promotion change expected demand at a market-day level.
Supply-Demand Equilibrium
Market clearing occurs when promoted demand meets effective supply after take rate, matching frictions, and any supplier incentive program.
Service Quality Path
Dynamic mode adds a third view for fill rate, shortage pressure, or operating targets over time.
| Gross price | Demand | Effective supply | Imbalance | Completed volume | Net platform revenue |
|---|
How to use this simulator
- Start with a local market-hour or market-day baseline rather than a platform-wide average.
- Use static equilibrium mode for planning benchmarks, then switch to dynamic surge mode when you want to stress-test how Uber-like or DoorDash-like control loops react over time.
- Change price elasticity and promotion lift separately so you can tell whether coupons are shifting real demand or just discounting infra-marginal users.
- Use the per-unit incentive mode for clean counterfactuals, then pressure-test the threshold / guarantee mode when operations teams actually run quests or earnings floors.
- In dynamic mode, the simple controller is the lightweight benchmark. The fill-rate-targeted controller is closer to how operations teams think about ETAs, cancellations, and supplier activation.
- Read the equilibrium price as a market-clearing benchmark, not a universal pricing recommendation.
- For Uber and DoorDash, tightness usually appears as ETAs, batching, and cancellations. For Airbnb, it shows up as occupancy, booking lead time, and host availability.
Elasticity estimation for pricing systems
1. Demand curves
For pricing systems, a practical starting point is a log-log demand model:
$$ \log Q_t = \alpha - \epsilon_d \log P_t + \beta , \mathrm{Promo}_t + X_t^\top \gamma + u_t $$
where $Q_t$ is demand, $P_t$ is consumer price, $\epsilon_d$ is the own-price elasticity, and $X_t$ includes controls such as geography, hour of week, weather, events, inventory, and competitor conditions.
In practice:
- Uber-style markets often estimate demand at the city-hour or zone-hour level and include rain, commute windows, airport flows, and special events.
- DoorDash-style markets often work at the market-hour or store-hour level and control for basket composition, restaurant availability, ETA, and fee mix.
- Airbnb-style markets often use listing-day or market-day panels with lead time, seasonality, local events, and occupancy controls.
The simulator uses a constant-elasticity demand curve:
$$ D(P, d) = D_0 \left(\frac{P(1-d)}{P_0}\right)^{-\epsilon_d} \left(1 + h \cdot \frac{d}{0.10}\right) (1 + s_D) $$
where $d$ is promotion depth, $h$ is the extra lift from a 10% promotion beyond the mechanical price cut, and $s_D$ is a demand shock.
2. Price elasticity
The point elasticity is
$$ \frac{\partial Q}{\partial P} \cdot \frac{P}{Q} $$
and in the log-log specification it is simply the coefficient on $\log P$.
Applied guidance:
- Use randomized price experiments when feasible. That is the cleanest way to separate willingness to pay from correlated market conditions.
- When experiments are impossible, use quasi-experimental variation such as tax changes, weather-driven supply shocks, or cost pass-through that moves price but not demand directly.
- Estimate elasticity by segment. Riders with urgent trips, diners during dinner rush, and travelers booking months ahead can have very different elasticities.
3. Promotion impact
Promotion impact is not just price elasticity in disguise. A coupon or subsidy can change ranking, salience, urgency, and conversion even after controlling for the net price. A useful regression is:
$$ \log Q_t = \alpha - \epsilon_d \log P_t + \theta , \mathrm{Discount}_t + \phi , \mathrm{Merchandising}_t + X_t^\top \gamma + u_t $$
What to watch:
- Randomize promos or keep holdout groups so you can measure incremental lift instead of gross redemptions.
- Separate short-run conversion lift from longer-run habit formation or cannibalization.
- For DoorDash-like systems, track whether promos pull forward orders from later time slots.
- For Airbnb-like systems, promotions can interact with lead time and occupancy, so estimate by booking window.
Marketplace supply-demand equilibrium modeling
Supply response
On marketplaces, supply responds to payout rather than the full consumer price. A simple supply curve is
$$ S(P) = S_0 \left(\frac{(1-\tau)P}{W_0}\right)^{\epsilon_s} (1 + s_S) $$
where $\tau$ is the platform take rate, $W_0$ is a reference payout, $\epsilon_s$ is the supply elasticity, and $s_S$ is a supply shock.
Adding supply-side incentives
For a simple per-unit incentive, the effective supplier payout becomes
$$ W(P, I_u) = (1-\tau)P + I_u $$
where $I_u$ is an extra payout per completed trip, order, or booked night.
For a threshold bonus or guaranteed-earnings regime, the simulator converts the program into an expected per-completed-unit equivalent:
$$ I_{\mathrm{eff}}(P) = \rho \left[q \frac{B}{T} + \max{0, G - (1-\tau)P}\right] $$
where $\rho$ is the eligible supplier share, $q$ is the expected attainment probability, $B$ is the quest bonus, $T$ is the threshold, and $G$ is the guaranteed payout floor.
The incentive-augmented supply curve is therefore
$$ S(P, I) = S_0 \left(\frac{(1-\tau)P + I_{\mathrm{eff}}(P)}{W_0}\right)^{\epsilon_s} (1 + s_S) $$
This is a reduced-form approximation. Real quest and guarantee programs are path-dependent, but converting them into expected per-unit equivalents makes the trade-off between consumer pricing and supplier incentives easier to reason about.
The simulator then applies a matching-efficiency term $m$ to reflect geographic mismatch, acceptance behavior, batching, and routing losses:
$$ \widetilde{S}(P, I) = m \cdot S(P, I) $$
Dynamic pricing
Dynamic pricing on platforms like Uber or DoorDash is usually trying to reduce excess demand, protect service quality, and improve fill rate. In reduced form, you can think of it as nudging price upward when demand exceeds effective supply:
$$ P_{t+1} = P_t \left[1 + \lambda \frac{D_t - \widetilde{S}_t}{\max{D_t, 1}}\right] $$
where $\lambda$ controls how aggressively the pricing system responds.
That is the simple dynamic mode in the simulator. It moves price from shortage pressure alone and treats surge as a fast feedback controller rather than an immediate jump to the market-clearing solution.
For the richer control mode, the simulator also targets service quality and a small supply buffer:
$$ \mu_{t+1} = \min!\left(\mu_{\max}, \max!\left(1, \mu_t \left[1 + \lambda \left(0.7(f^\star - f_t) + 0.3(b^\star - b_t)\right)\right]\right)\right) $$
where $\mu_t$ is the surge multiplier, $f_t$ is realized fill rate, $f^\star$ is the target fill rate, $b_t = \frac{\widetilde{S}_t - D_t}{\max{D_t, 1}}$ is the realized supply buffer, and $b^\star$ is the desired supply buffer.
The richer mode also allows surge-linked supplier incentives:
$$ I_t^{\text{dynamic}} = \min!\left(I_{\max}, \kappa \max!\left(\mu_t - 1, 0\right)\right) $$
where $\kappa$ is the slope of the extra supplier top-up and $I_{\max}$ caps the payment.
Because supply cannot jump instantly, the simulator uses a partial-adjustment rule:
$$ S_{t+1}^{\mathrm{realized}} = (1-\beta) S_t^{\mathrm{realized}} + \beta S_t^{\mathrm{target}} $$
where $\beta$ controls how much of the gap to target supply closes each interval.
Matching and equilibrium
Completed transactions are limited by the short side of the market:
$$ M_t = \min{D_t, \widetilde{S}_t} $$
and market-clearing equilibrium solves
$$ D(P^\ast, d) = \widetilde{S}(P^\ast, I) $$
for the equilibrium price $P^\ast$.
For the platform, gross revenue and incentive-adjusted net revenue are
$$ R_t^{\mathrm{gross}} = \tau P_t M_t, \qquad R_t^{\mathrm{net}} = \tau P_t M_t - C_t^{\mathrm{incentives}} $$
where the simulator approximates incentive cost as completed-volume times the effective per-unit incentive equivalent.
Interpretation by platform:
- Uber: equilibrium is about balancing rider requests and available driver capacity while keeping ETAs and cancellations under control.
- DoorDash: equilibrium combines consumer fees, promotions, dasher pay, and batching efficiency to keep order fulfillment healthy.
- Airbnb: equilibrium is slower moving because supply responds through host availability and listing participation rather than minute-level labor supply.
Marketplace examples
| Platform | Demand side | Supply side | Key pricing levers | Typical equilibrium metric |
|---|---|---|---|---|
| Uber | Rider trip requests | Driver online time and acceptance | Base fare, surge, driver incentives | Fill rate, ETA, cancellation risk |
| DoorDash | Consumer orders | Dasher capacity and restaurant throughput | Delivery fee, small-order fee, promos, dasher pay | Unassigned orders, ETA, on-time rate |
| Airbnb | Guest booking demand | Host listing availability and bookable nights | Nightly price, discounts, stay rules | Occupancy, ADR, booking lead time |
Practical workflow
- Estimate demand elasticity using experiments or quasi-experimental price variation.
- Estimate promotion lift separately from price effects.
- Estimate supply response to payouts and incentives.
- Calibrate matching efficiency using fill rate, ETA, or occupancy data.
- Simulate equilibrium before shipping pricing or promo changes platform-wide.
This page is deliberately simple: it is a planning model for reasoning about direction and magnitude, not a replacement for production forecasting or causal identification.
References and further reading
These references inform the conceptual framing, formulas, and marketplace examples on this page. The simulator defaults are still illustrative rather than calibrated to any one paper or platform.
Platform economics and equilibrium
- Rochet, J.-C., and Tirole, J. (2003). Platform Competition in Two-Sided Markets. Journal of the European Economic Association.
- Armstrong, M. (2006). Competition in Two-Sided Markets. RAND Journal of Economics. Open-access version via UCL Discovery.
Demand curves, elasticity, and promotion impact
- Cohen, P., Hahn, R., Hall, J., Levitt, S., and Metcalfe, R. (2016). Using Big Data to Estimate Consumer Surplus: The Case of Uber. NBER Working Paper 22627.
- Bajari, P., Nekipelov, D., Ryan, S. P., and Yang, M. (2015). Demand Estimation with Machine Learning and Model Combination. NBER Working Paper 20955.
- Dubé, J.-P. H., Fang, Z., Fong, N., and Luo, X. (2016). Competitive Price Targeting with Smartphone Coupons. NBER Working Paper 22067.
Dynamic pricing, matching, and marketplace supply
- Castillo, J. C., Knoepfle, D., and Weyl, E. G. (2017). Surge Pricing Solves the Wild Goose Chase. Microsoft Research / ACM EC.
- Yan, C., Zhu, H., Korolko, N., and Woodard, D. (2020). Dynamic Pricing and Matching in Ride-Hailing Platforms. Uber Engineering summary with paper link.
- Chen, M. K., Chevalier, J. A., Rossi, P. E., and Oehlsen, E. (2017). The Value of Flexible Work: Evidence from Uber Drivers. NBER Working Paper 23296.
- DoorDash Engineering (2021). Managing Supply and Demand Balance Through Machine Learning.
- DoorDash Engineering (2026). Smarter promotions with causal machine learning.