Skip to main content

Revenue Management

Capacity allocation · Booking limits

Allocate fixed capacity \(C\) across multiple fare classes \(1, \ldots, n\) (with revenues \(r_1 \geq r_2 \geq \cdots\)) to maximise expected revenue when low-fare bookings arrive first and high-fare arrive late. Foundational results: Littlewood (1972) two-class rule \(P(D_1 \geq y) = r_2 / r_1\); Belobaba (1989) Expected Marginal Seat Revenue (EMSR-a, EMSR-b); Talluri & van Ryzin (2004) dynamic-programming reformulation. Born in airlines; now used in hotels, fashion clearance, event tickets, and advertising.

Why it matters

The original OR-driven pricing discipline — still the gold standard for fixed-capacity industries

~$1.4B
Annual revenue benefit American Airlines attributed to its yield-management system in the early 1990s — the canonical industry case (Smith-Leimkuhler-Darrow 1992).
Source: Smith, Leimkuhler & Darrow (1992), Interfaces 22(1).
+5–8%
Typical revenue lift documented in retail and hotel deployments of capacity-controlled pricing vs first-come-first-served booking.
Source: Talluri & van Ryzin (2004), industry case studies.
y* = F⁻¹(1-r₂/r₁)
Littlewood’s two-class rule: protect \(y^{\ast}\) seats for class 1 such that probability of class-1 demand exceeding \(y^{\ast}\) equals the revenue ratio.
Source: Littlewood (1972), AGIFORS.
EMSR-b
Industry-standard heuristic: aggregate higher classes into a single “virtual” class and apply Littlewood. 1-2% from optimal in practice (Belobaba 1989).
Source: Belobaba (1989), Operations Research 37(2).

Where the decision sits

Pre-period booking-limit setting · revisited daily as bookings accumulate

Revenue management was born in airline yield optimisation (deregulation 1978; American Airlines DINAMO system early 1980s). The retail flavour appears in three settings: fashion / seasonal clearance (capacity = pre-bought inventory; classes = early-bird, full price, markdown levels); hotel (capacity = rooms; classes = corporate, leisure, advance-purchase); and e-commerce limited-edition drops (capacity = SKU stock; classes = subscriber, public, secondary market). The decision is set before the booking horizon and re-optimised as actuals arrive.

Forecast demandper class
Set booking limitsEMSR / DP
Accept/rejectas bookings arrive
Re-optimisedaily

Problem & formulation

Two-class Littlewood, EMSR-b heuristic, exact DP

OR family
Stochastic DP
Heuristic
EMSR-a / EMSR-b
Exact
Markov decision process
Reference
Talluri-vanRyzin (2004); Belobaba (1989)

Sets and parameters

SymbolMeaningUnit
\(j \in \{1, \ldots, n\}\)Fare class, indexed by descending revenueinteger
\(r_j\)Revenue per booking in class \(j\); \(r_1 \geq r_2 \geq \cdots\)$
\(D_j\)Random demand for class \(j\) (during its booking window)units
\(\mu_j, \sigma_j\)Mean and stdev of \(D_j\) (Normal approximation typical)units
\(C\)Total capacityunits

Decision variables

SymbolMeaningDomain
\(y_j\)Protection level for class \(j\) and higher (seats reserved)\(\geq 0\)
\(b_j\)Booking limit for class \(j\) and lower (= \(C - y_{j+1}\))\(\leq C\)

Littlewood’s two-class rule (1972)

For two classes (\(n = 2\)), accept class-2 booking iff there are at least \(y^{\ast}_1\) units left, where:

$$\mathbb{P}(D_1 \geq y^{\ast}_1) \;=\; \frac{r_2}{r_1}$$

Equivalently, \(y^{\ast}_1 = F_1^{-1}(1 - r_2/r_1)\). The intuition: protect class-1 seats up to the quantile where expected marginal class-1 revenue equals the certain class-2 revenue. Identical to the newsvendor critical fractile with \(c_u = r_1, c_o = r_1 - r_2\). See newsvendor.

EMSR-b heuristic (Belobaba 1989) for \(n > 2\)

For each class \(j\), aggregate all higher classes \(1, \ldots, j-1\) into one virtual class with weighted-average revenue and combined Normal demand:

$$\bar r_{1:j-1} \;=\; \frac{\sum_{k=1}^{j-1} r_k \mu_k}{\sum_{k=1}^{j-1} \mu_k} \qquad \bar \mu_{1:j-1} \;=\; \sum_{k=1}^{j-1} \mu_k \qquad \bar \sigma_{1:j-1} \;=\; \sqrt{\sum_{k=1}^{j-1} \sigma_k^2}$$

Then apply Littlewood between aggregate-of-higher and class \(j\):

$$y_j \;=\; \bar \mu_{1:j-1} \;+\; \bar \sigma_{1:j-1} \cdot \Phi^{-1}\!\Bigl(1 - r_j / \bar r_{1:j-1}\Bigr)$$

Booking limit for class \(j\) is then \(b_j = C - y_j\). EMSR-b is within ~1-2% of optimal and runs in \(\mathcal{O}(n)\). EMSR-a (older) uses additive protection levels; EMSR-b is preferred.

Exact DP (Talluri-van Ryzin)

When demand arrival order is known and arrivals can be modelled as a stochastic process, the exact problem is a finite-horizon MDP. State: (time \(t\), capacity left \(c\)). Action: accept or reject the next arrival. Bellman:

$$V(t, c) \;=\; \mathbb{E}\Bigl[\max\bigl(\, r_{j(t)} \cdot \mathbb{1}\{\text{accept}\} + V(t-1,\, c - \mathbb{1}\{\text{accept}\}) \,\bigr)\Bigr]$$

Optimal policy is a bid price: accept iff \(r \geq V(t, c) - V(t, c-1)\) (marginal value of the seat). EMSR is a static-protection-level approximation; bid prices are the dynamic counterpart.

Interactive solver

5 fare classes · Littlewood / EMSR-b / first-come-first-served comparison

RM solver
Compare protection-level policies on Normal demand
★★★ EMSR + simulation

Per-class fare and demand (revenue descending)

EMSR-b expected revenue ($)
FCFS baseline revenue ($)
EMSR lift over FCFS
Load factor (EMSR)
Avg yield ($/seat)
High-class spill (rejected)
Protection level \(y_j\) EMSR-b realised bookings FCFS realised bookings Booking limit \(b_j\)

Under the hood

EMSR-b protection levels: for each class \(j\), aggregate higher classes via revenue-weighted average and combined Normal (\(\mu, \sigma\)) parameters; apply Littlewood. Simulation: 2,000 runs of arriving bookings in low-to-high-fare order (the worst case for FCFS); for each run, EMSR accepts only if remaining capacity exceeds the class’s protection level, FCFS accepts everything until full. Inverse-Normal CDF computed via the Beasley-Springer-Moro rational approximation. Lift over FCFS reports the protection-level value for the chosen demand mix.

Reading the solution

Three patterns to watch for

  • Higher-fare classes get larger protection. The protection level grows with the revenue ratio between an aggregate of higher classes and the next-lower class.
  • Lift comes from rejecting low fares. EMSR’s win is closing low-fare buckets early enough to leave room for late-arriving high-fare bookings. FCFS always sells out fast on cheap fares.
  • Demand variability widens the spread. Higher \(\sigma\) raises protection levels (more buffer); lower \(\sigma\) lets you cut closer to the bone.

Sensitivity questions

  • Tighten the fare ladder (Class 1 from $500 to $350)? — EMSR lift shrinks; less reason to protect.
  • Reduce capacity (100 → 70)? — tighter constraint; protection levels matter more.
  • Widen \(\sigma\) on Class 1? — protection grows; load factor under EMSR may drop slightly because of buffering.

Model extensions

Network RM

Multi-leg / multi-resource: each booking consumes a bundle of resources (e.g., a flight uses several legs). Solved via deterministic LP + bid prices. Talluri-van Ryzin Ch. 3.

Dynamic-pricing reformulation

Replace booking limits with continuously updated prices — smoothly varies demand by class. Cross-link to dynamic pricing with learning.

Choice-based RM

Customer chooses among offered classes (MNL); some demand is “buy-up” or “buy-down”. More accurate; harder to solve. Liu-van Ryzin 2008.

Overbooking

Allow overbooking up to expected no-shows; re-optimise capacity. Combines RM with stochastic cancellation modelling.

Markdown integration

Retail RM = pre-season buy + in-season RM + clearance markdown. Joint problem; ties to markdown.

Newsvendor link

Two-class Littlewood is a newsvendor with \(c_u = r_1, c_o = r_1 - r_2\). The classical backbone of single-period inventory.

Newsvendor →
Forecasting + RM

Demand forecasts feed protection levels; forecasting error directly degrades RM. Joint forecasting + optimisation pipelines.

RM with strategic customers

Customers anticipate sales (buying a low fare today vs hoping for a deeper discount tomorrow). Game-theoretic extension; Cachon-Swinney 2011 fashion analogue.

Key references

Talluri, K. T. & van Ryzin, G. J. (2004).
The Theory and Practice of Revenue Management.
Kluwer / Springer. doi:10.1007/b139000 (Canonical textbook.)
Littlewood, K. (1972).
Forecasting and control of passenger bookings.
AGIFORS Symposium Proceedings 12: 95–117. (The two-class rule.)
Belobaba, P. P. (1989).
Application of a probabilistic decision model to airline seat inventory control.
Operations Research 37(2): 183–197. doi:10.1287/opre.37.2.183 (EMSR-a / EMSR-b.)
Smith, B. C., Leimkuhler, J. F. & Darrow, R. M. (1992).
Yield management at American Airlines.
Interfaces 22(1): 8–31. doi:10.1287/inte.22.1.8 (DINAMO success story.)
Liu, Q. & van Ryzin, G. (2008).
On the choice-based linear programming model for network revenue management.
M&SOM 10(2): 288–310. doi:10.1287/msom.1070.0181
McGill, J. I. & van Ryzin, G. J. (1999).
Revenue management: Research overview and prospects.
Transportation Science 33(2): 233–256. doi:10.1287/trsc.33.2.233
Phillips, R. L. (2005, 2nd ed. 2021).
Pricing and Revenue Optimization.
Stanford Business Books. (Cross-industry RM textbook.)
Bitran, G. & Caldentey, R. (2003).
An overview of pricing models for revenue management.
M&SOM 5(3): 203–229. doi:10.1287/msom.5.3.203.16031

Back to the retail domain

Revenue management sits in the Price × Tactical cell — OR’s most-cited industrial success story, ported from airlines into retail markdown and fashion clearance.

Open Retail Landing
Educational solver · Normal class demand and low-to-high arrival order · production RM uses richer stochastic processes and bid-price networks.