Setting Booking Limits

EMSR heuristics and the spoilage-dilution tradeoff

Airlines / HotelsAdvanced

Capacity allocation extends Littlewood’s Rule from two fare classes to many. The EMSR heuristics—particularly EMSR-b—are the industry workhorses, used by virtually every airline and hotel reservation system to compute nested booking limits in milliseconds.

The Problem

Given nn fare classes with stochastic demand competing for CC seats, how should we set nested booking limits? The exact solution requires solving a stochastic dynamic program whose state space grows exponentially with the number of classes. For a problem with four fare classes and 150 seats, the state space already exceeds practical computation limits.

EMSR heuristics provide near-optimal solutions by reducing the multi-class problem to a sequence of two-class subproblems, each solvable via Littlewood’s Rule. The key insight: at each class boundary, we face the same fundamental choice—protect a seat for a future high-fare customer, or sell it now to a low-fare customer.

The EMSR approach was pioneered by Belobaba (1987) and refined in Belobaba (1989). It remains the backbone of airline and hotel revenue management systems, as discussed in Phillips (2021) and Talluri and van Ryzin (2004).

EMSR-a vs EMSR-b

Definition — Booking Limit
The booking limit bjb_j is the maximum number of seats available for sale to fare class jj and all classes below it. Under nested controls, higher-fare classes always have access to at least as many seats as lower-fare classes: b1b2bnb_1 \ge b_2 \ge \cdots \ge b_n.
Definition — Protection Level
The protection level yjy_j is the number of seats reserved for fare classes 11 through jj (the jj highest-fare classes). The relationship between protection levels and booking limits is bj+1=Cyjb_{j+1} = C - y_j.

EMSR-a applies Littlewood’s Rule pairwise: for each class jj, it computes the protection level by comparing class jj against the lowest-fare class only. Each comparison uses only the demand distribution for class jj in isolation:

yjEMSR-a=Fj1 ⁣(1fnfj)y_j^{\text{EMSR-a}} = F_j^{-1}\!\left(1 - \frac{f_n}{f_j}\right)
(1)

where FjF_j is the CDF of demand for class jj and fnf_n is the lowest fare. This ignores the interaction between classes.

EMSR-b improves on EMSR-a by aggregating demand for all classes above each boundary into a single “super-class” with a weighted-average fare, then applying Littlewood’s Rule once per boundary. For the boundary between classes jj and j+1j{+}1:

Dˉj=i=1jDi,μˉj=i=1jμi,σˉj2=i=1jσi2\bar{D}_j = \sum_{i=1}^{j} D_i, \quad \bar{\mu}_j = \sum_{i=1}^{j} \mu_i, \quad \bar{\sigma}_j^2 = \sum_{i=1}^{j} \sigma_i^2
(2)
fˉj=i=1jfiμiμˉj\bar{f}_j = \frac{\sum_{i=1}^{j} f_i \cdot \mu_i}{\bar{\mu}_j}
(3)
yjEMSR-b=Fˉj1 ⁣(1fj+1fˉj)y_j^{\text{EMSR-b}} = \bar{F}_j^{-1}\!\left(1 - \frac{f_{j+1}}{\bar{f}_j}\right)
(4)

The independence assumption allows us to sum variances directly (Equation 2). The weighted fare (Equation 3) reflects the revenue-weighted average across all higher classes. The protection level (Equation 4) then follows from a single application of Littlewood’s Rule with the aggregate distribution.

EMSR-b Accuracy (Belobaba, 1989)
EMSR-b is generally more accurate than EMSR-a because it accounts for the joint distribution of demand across all higher classes, rather than comparing pairwise against the lowest class. In simulation studies, EMSR-b captures over 99% of the optimal expected revenue for typical airline fare structures, while EMSR-a may leave 1–3% of revenue on the table in cases with many fare classes.

Spoilage vs Dilution

Every booking limit balances two opposing risks. Setting the protection level too high or too low incurs different costs:

Definition — Spoilage
Seats that go unsold at departure because too many were protected for high-fare demand that did not materialize. Spoilage occurs when the realized high-fare demand DHD_H falls below the protection level yy: the airline “spoils” yDHy - D_H seats.
Definition — Dilution
Selling a seat to a low-fare customer that could have been sold at a higher fare. Dilution occurs when high-fare demand exceeds the protection level DH>yD_H > y: the airline has “diluted” its revenue by not protecting enough seats.

The optimal booking limit balances the marginal cost of each risk. At the optimal protection level yy^*, the expected marginal cost of spoilage equals the expected marginal cost of dilution:

fHPr(DH<y)marginal spoilage cost=fLPr(DHy)marginal dilution cost\underbrace{f_H \cdot \Pr(D_H < y)}_{\text{marginal spoilage cost}} = \underbrace{f_L \cdot \Pr(D_H \ge y)}_{\text{marginal dilution cost}}
(5)

Rearranging yields Littlewood’s Rule: Pr(DHy)=fL/fH\Pr(D_H \ge y^*) = f_L / f_H. The interactive explorer below lets you move the protection level and observe how spoilage and dilution risks change, and how far revenue deviates from the optimum.

Interactive Explorer

Two visualizations illustrate the core concepts. The EMSR-b step-through walks through the algorithm class by class, computing aggregate demand and booking limits. The spoilage-vs-dilution explorer shows how moving the protection level affects expected revenue and risk probabilities.

Step through the EMSR-b algorithm for four fare classes. At each step, demand for higher classes is aggregated into a super-class, and Littlewood’s Rule is applied at each boundary. The bars compare nested booking limits under EMSR-b (top) and EMSR-a (bottom).

Key Insights

  1. Aggregation matters. EMSR-b’s advantage over EMSR-a grows with the number of fare classes. By aggregating demand across all higher classes, EMSR-b correctly accounts for the portfolio effect—the variability of the aggregate is less than the sum of individual variabilities (in relative terms).
  2. The optimal protection level depends on the fare ratio. Doubling both fares does not change the booking limits. Only the ratio fL/fHf_L / f_H matters, which sets the quantile of the demand distribution at which to draw the boundary.
  3. Spoilage and dilution are mirror risks. Protecting too aggressively increases spoilage; protecting too little increases dilution. The optimal protection level equates the marginal costs of both risks.
  4. Revenue is concave in the protection level. The expected revenue curve has a single peak at the optimal protection level. Small deviations from the optimum incur only second-order revenue losses, making EMSR heuristics robust in practice.
  5. Forecast accuracy dominates algorithm choice. The difference between EMSR-a and EMSR-b is typically smaller than the revenue impact of a 10% error in the demand forecast. In operational settings, improving demand forecasts yields larger gains than switching optimization algorithms.

Extensions

The single-leg EMSR framework is the starting point for several extensions used in practice:

  • Network revenue management. When passengers consume capacity on multiple legs (e.g., connecting itineraries), the single-leg EMSR approach can be extended via displacement-adjusted virtual nesting (DAVN) or replaced by LP-based bid-price controls. See the network revenue management topic.
  • Overbooking. EMSR booking limits assume all accepted bookings will show up. In practice, airlines overbook to compensate for cancellations and no-shows. The overbooking limit can be computed independently and layered on top of EMSR controls. See the overbooking topic.
  • Choice-based models. EMSR assumes demand for each class is independent. In reality, a customer denied a discount fare may purchase a higher class (buy-up) or leave (spill). Choice-based revenue management models capture this substitution behavior.
  • Continuous pricing. Instead of discrete fare classes, continuous dynamic pricing adjusts the fare as a function of remaining capacity and time to departure, merging revenue management with price optimization.

References

  • Belobaba, P. P. (1987). “Air Travel Demand and Airline Seat Inventory Management.” PhD dissertation, MIT.
  • Belobaba, P. P. (1989). “Application of a Probabilistic Decision Model to Airline Seat Inventory Control.” Operations Research, 37(2), 183–197.
  • Belobaba, P. P. & Hopperstad, C. (2004). “Algorithms for Revenue Management in Unrestricted Fare Markets.” Proceedings of AGIFORS Reservations and Yield Management Study Group.
  • Phillips, R. L. (2021). Pricing and Revenue Optimization, 2nd ed.. Stanford University Press.
  • Talluri, K. T. & van Ryzin, G. J. (2004). The Theory and Practice of Revenue Management. Springer.