Abstract
In order to accept future high-yield booking requests, airlines protect seats from low-yield passengers. More seats may be reserved when passengers faced with closed fare classes can upsell to open higher fare classes. We address the airline revenue management problem with capacity nesting and customer upsell, and formulate this problem by a stochastic optimization model to determine a set of static protection levels for each itinerary. We apply an approximate dynamic programming framework to approximate the objective function by piecewise linear functions, whose slopes (marginal revenue) are iteratively updated and returned by an efficient heuristic that simultaneous handles both nesting and upsells. The resulting allocation policy is tested over a real airline network and benchmarked against the randomized linear programming bid-price policy under various demand settings. Simulation results suggest that the proposed allocation policy significantly outperforms when incremental demand or upsell probability are high. Structural analyses are also provided for special demand dependence cases.
Similar content being viewed by others
Notes
Although Gallego et al (2009) has a path dependent algorithm that provides slightly better performance (<1 per cent in average), its implementation is more complicated and requires more running time. As our upsell heuristic significantly outperforms the path independent algorithm, we consider the path independent algorithm adequate for our benchmarking purpose.
References
Belobaba, P.P. and Weatherford, L.R. (1996) Comparing decision rules that incorporate customer diversion in perishable asset revenue management situations. Decision Sciences Journal 27 (2): 343–363.
Bitran, G. and Caldentey, R. (2003) An overview of pricing models for revenue management. Manufacturing & Service Operations Management 5 (3): 203–229.
Brumelle, S.L. and McGill, J.I. (1993) Airline seat allocation with multiple nested fare classes. Operations Research 41 (1): 127–137.
Brumelle, S.L., McGill, J.I., Oum, T., Sawaki, K. and Tretheway, M.W. (1990) Allocation of airline seats between stochastically dependent demands. Transportation Science 24 (3): 183–192.
Chen, L. and Homem-de-Mello, T. (2010) Re-solving stochastic programming models for airline revenue management. Annals of Operations Research 177 (1): 91–114.
Cooper, W.L. (2002) Asymptotic behavior of an allocation policy for revenue management. Operations Research 50 (4): 720–727.
Cooper, W.L. and Gupta, D. (2006) Stochastic comparisons in airline revenue management. Manufacturing & Service Operations Management 8 (3): 221–234.
Curry, R.E. (1990) Optimal airline seat allocation with fare classes nested by origins and destinations. Transportation Science 24 (3): 193–204.
de Boer, S.V., Freling, R. and Piersma, N. (2002) Mathematical programming for network revenue management revisited. European Journal of Operational Research 137 (1): 72–92.
Fiig, T., Isler, K., Hopperstad, C. and Belobaba, P.P. (2010) Optimization of mixed fare structures: Theory and applications. Journal of Revenue and Pricing Management 9 (1/2): 1–19.
Gallego, G., Li, L. and Ratliff, R. (2009) Choice-based EMSR methods for single-leg revenue management with demand dependencies. Journal of Revenue and Pricing Management 8 (2/3): 207–240.
Grimmett, G. and Stirzaker, D. (2001) Probability and Random Processes. 3rd edn. Oxford University Press, NYC, USA.
Higle, J.L. (2007) Bid-price control with origin-destination demand: A stochastic programming approach. Journal of Revenue and Pricing Management 5 (4): 291–304.
Li, M.Z.F. and Oum, T.H. (2002) A note on the single leg, multifare seat allocation problem. Transportation Science 36 (3): 349.
Littlewood, K. (ed.) (1972) Forecasting and control of passenger bookings, Volume 12. The 12th AGIFORS Symposium, Nathanya, Israel.
Liu, Q. and van Ryzin, G. (2008) On the choice-based linear programming model for network revenue management. Manufacturing Service Operations Management 10 (2): 288–310.
McGill, J.I. and Van Ryzin, G.J. (1999) Revenue management: Research overview and prospects. Transportation Science 33 (2): 233.
Powell, W.B. (2007) Approximate dynamic programming: Solving the curses of dimensionality. Wiley Series in Probability and Statistics. 1st edn. Wiley-Interscience: NYC,USA.
Powell, W., Ruszczynski, A. and Topaloglu, H. (2004) Learning algorithms for separable approximations of discrete stochastic optimization problems. Mathematics of Operations Research 29 (4): 814–836.
Robinson, L.W. (1995) Optimal and approximate control policies for airline booking with sequential nonmonotonic fare classes. Operations Research 43 (2): 252–263.
Talluri, K. and van Ryzin, G. (1998) An analysis of bid-price controls for network revenue management. Management Science 44 (11): 1577–1593.
Talluri, K. and Van Ryzin, G. (1999) A randomized linear programming method for computing network bid prices. Transportation Science 33 (2): 207–216.
Talluri, K. and van Ryzin, G. (2004) The theory and practice of revenue management. International Series in Operations Research & Management Science. 1st edn. Springer: NYC, USA.
Topaloglu, H. (2009) On the asymptotic optimality of the randomized linear program for network revenue management. European Journal of Operational Research 197 (3): 884–896.
van Ryzin, G.J. and McGill, J.I. (2000) Revenue management without forecasting of optimization: An adaptive algorithm for determining airline seat protection levels. Management Science 46 (6): 760–775.
Williamson, E.L. (1992) Airline network seat inventory control: Methodologies and revenue impacts. PhD thesis, Massachusetts Institution of Technology, Cambridge, MA.
Wollmer, R.D. (1992) An airline seat management model for a single leg route when lower fare classes book first. Operations Research 40 (1): 26–37.
Zhang, D. and Adelman, D. (2009) An approximate dynamic programming approach to network revenue management with customer choice. Transportation Science 43 (3): 381–394.
Author information
Authors and Affiliations
Appendix
Appendix
Proofs
Lemma 1
Proof Let be the expected demand, and the total expected demand. In the case with a single itinerary, consider the deterministic version of (2) and rewrite the function into an optimization problem without protection levels by substituting ξ−Π c−1 with x c . We have
□
It is easy to see that solving the above DP is equivalent to solving
By coupling the itinerary allocation decision with network capacity constraints, we have
Lemma 2
Proof. Let HL be the high-to-low arrival order, LH be the low-to-high arrival order, R be a random arrival order and R π(O) be the revenue obtained by applying the optimal allocation policy of problem π under arrival order O. Then we have and The first observation is based on the fact that seats occupied by low-yield passengers in the LH arrival order can be given to high-yield passengers in both the random and HL arrival orders, and the second observation is based on the fact that since allocations are partitioned, arrival order does not matter. Suppose xπ is the optimal solution of problem π and zπ is the extracted empty seats based on the optimal solution of problem π. We have
□
Hence, we have which implies The last inequality is because of the fact that SP(K) is optimal under stochastic demand.
Proposition 2
Proof. Following (2), it is easy to see
□
Note that ξ−min{ξ−Π c−1, D−c}=Π c−1+(ξ−Π c−1− D c )+. By mapping and the definition of z c in (7), we have
For mapping we can follow the argument backward.
Propositions 5 and 6
Let X and Y be one-dimensional continuous random variables. By definition, f XY (x, y)=f X|Y (x|y)f Y (y)=f Y|X (y|x)f X (x) where f y (y)=∫0 ∞ f XY (x, y)dx is the marginal density of Y at y. If the cumulative probability function is differentiable, then the probability conditioning on zero probability event can be appropriately defined as
This definition can be found in Grimmett and Stirzaker (2001).
Lemma 3
-
We have for any event E.
Proof. Under Assumption A1, for any ε>0 and continuous random variable Y, if we have
□
Similarly, if Y is a discrete random variable, the proof is equivalent by substituting ɛ with 1.
Let be the set of demands for Classes 1, …, c,D c={D c , …, D |C|} be the set of demands for classes and d c be their realizations respectively, d c(D c ∈E)=d c+1∪{D c ∈E} be the updated set of observed events given observed demands d c+1 and event{D c ∈E}, f c (d c ) be the marginal density of demand d c ,f c|c+1(d c |d c+1) be the conditional density of d c given a set of realized demands d c+1. Given a sample path d, the revenue function is
and
Note that and } c Πc−1, ξ, d c+1 is continuous and piecewise linear in ξ with three break points. For the remaining paragraphs, we assume integral demands. It is then easy to see that is also continuous and piecewise linear in ξ with countably many breakpoints. To show that is concave in ξ, it suffices to show that the derivative on the left is no less than the derivative on the right for all possible value of ξ. The corresponding right and left derivatives are showed below:
First, we show the following properties for the left and right derivatives.
Lemma 4
-
If Lemma 3 is satisfied, then
Proof The proof is by the fact the left derivatives are mainly composed with conditional probabilities. □
Lemma 5
-
We have
Proof The proof is by induction on c. For c=1. we have both sides equal to Suppose the statement is true for c−1, then we have
□
The proof is completed.
The following is a direct result of Lemma 5.
Corollary 1
-
We have
Note that Lemmas 4 and 5, and Corollary 1 are also applicable to the right derivatives.
Proposition 7
-
Under Assumption A1, and if for all l⩽c−1, the protection level Π l satisfies
then is concave in ξ.
Proof Let be the difference between the right and left derivatives. We want to show for all ξ. The proof is by induction on c. For the base case with ξ>Π1, we have
□
The inequalities are obtained by applying (9) and Lemma 4. To verify at the break point ξ=Π1, we have
Support the induction assumption holds for c−1, for example, For ξ>Π c−1, we have
The first term of the last inequality is non-positive by Lemma 4, and the second term is non-positive because of our induction assumption. Hence, At the break point where ξ=Π c−1, we have
Similarly, the inequalities are obtained by applying (9) and Corollary 1. Hence, the right derivative is no larger than the left derivative, and the continuous piecewise linear function is concave in ξ when satisfies (9).
Lemma 5 states that is concave in ξ if the allocation policy Π satisfies (9), which in fact are also the optimality conditions for Π.
Proposition 8
-
Condition (9) is the optimality condition for the protection level Π c−1 given any Π c−2 that satisfy Proposition 5.
Proof To proof this lemma, we inspect the left and right derivatives of with respect to Π c−1:
□
The left and right derivatives above together with (9) imply that and by Lemma 5 that is concave in ξ, Π c−1 that satisfies (9) maximizes as required.
Algorithms
Upsell revenue estimation algorithm
The upsell revenue estimation algorithm estimates the upsell revenue given demand samples and class-level partition allocations. It heavily relies on the recursive structure of Equations (5) and (6). It takes {xc} the set of class-level partitioned allocations, {ξ c k} the set of demand samples, {p cc } the set of upsell probabilities, and returns r the average revenue over all demand scenarios along with reject and upsell information encoded by three indicating variables.
Let α c k be a binary variable that indicates if a class-c booking is rejected, β c k c be a binary variable that indicates if an upsell to class c is rejected owning to insufficient allocations, and γ cc′ k be a binary variable that indicates if a rejected class-c booking upsells to class c′. These three indicating variables are used to store information for the upsell margin estimation algorithm (Algorithm 4) to compute revenue margins if an additional seat is given to any one of the classes. The algorithm is summarized in Algorithm 3.
For each demand scenario, the algorithm starts from the lowest class and compute the total upsell to the current class c. Revenue is collected according to objective (4) at Line 6. If there exists a rejected booking in class c, α c k, is set to one to indicate that there exists a rejected booking. Furthermore, if c is not the highest class, is set to one to record the class that the rejected booking is upselling to. The algorithm then checks if upsells to class c occupy all seats allocated to class c. If it is the case, β c k is set to one to record the fact that there exists at least one upsell to class c. The three variables α, β, and γ record information required to compute the seat margin in margin estimation algorithm.
By recording these rejection and upsell information, we can, instead of computing the finite differences based on the estimated revenue for each class when one more seat is added, reduce the number of algorithmic operations by first computing the base revenue (before a seat is added) and marginally estimating the seat margins for all classes. This reduces the running time significantly when the number of classes is high. In the end, we update the number of empty seats available for higher classes at Line 21 using Equation (5).
Upsell margin estimation algorithm
The upsell margin estimation algorithm computes the revenue margin if one more seat is given to a particular class in question. All necessary information to compute the margin are encoded in arrays α, β, and γ (see Algorithm 3 for definitions). It requires the same inputs as those in the upsell revenue estimation algorithm (Algorithm 3) without demand samples. In addition, the class in question is also needed to indicate which class the seat should be added, and the margin should be computed. The algorithm is summarized in Algorithm 4.
The upsell margin estimation algorithm starts with checking if there exists a rejected upsell from any lower classes to class . If an upsell exists, it returns the unit price of class at Line 5. This is because of the fact that if one more seat was given, the rejected upsold booking should have been captured rather than being rejected. If such a rejected upsell does not exist, then for any equal and higher classes , the algorithm checks both if there exists a rejected booking and if such a rejected booking results in an upsell. If both conditions are satisfied, we need to adjust our margin according to Line 11. The reason is that if one more seat was allocated to class , the upsell should have been impossible because of the nesting nature of the allocation policy. Thus, the resulting margin should be non-positive. In the end, if an upsell cannot be found, the margin is set to be the unit price of class c′ at Line 13. Although the upsell heuristic (Algorithm 2) can essentially start with allocating all seats to the highest class, the set of allocations returned by this algorithm can significantly reduce the running time of the upsell heuristic.
Upsell-adjusted seat allocation algorithm
The upsell-adjuste seat allocation algorithm effectively handles cases when spilling demand is likely. It takes the number of total allocated seats, a set of demand samples and a set of upsell probabilities, and returns a set of class-level partition allocations for the upsell heuristic (Algorithm 2) to further adjust the allocations. Given a set of demand samples and a set of partitioned allocations, the algorithm aggregates demand for higher classes together with the upsells from lower classes. It essentially uses arrival distributions to approximate the upsell demands that are MNL. Once the demands are aggregated, the algorithm treats the aggregated demands as if they are independent and updates the partitioned allocations by the fare-adjusted seat allocation algorithm (Algorithm 6). The process repeats until no more rejection occurs in any demand sample.
The algorithm first initializes α the array that stores accumulated upsells. Once the algorithm enters the infinite loop, it computes the partitioned allocations by the fare-adjusted seat allocation algorithm at Line 3, the associated rejected bookings at Line 9, and the empty seats at Line 10. Next, the algorithm starts from the lowest class and finds the first class with a rejected booking in at least one of the demand samples. Demands to the corresponding upselling classes are then adjusted according to Line 18. The upsells are accumulated and recorded at Line 19. In the end, the number of rejected class-c bookings is subtracted from class demand.
Fare-adjusted seat allocation algorithm
The fare-adjusted seat allocation algorithm is a heuristic that returns a set of partitioned allocations while accounting some upsell information. It takes y the number of total allocated seats, ζ a set of demand samples, p a set of upsell probabilities, θ c =∑ c′=1 c−1 p cc′ the probability that a rejected class-c booking ever upsells, and the average fare over all classes above or equal to class c. It returns a set of partitioned allocations and a set of approximated revenue margins.
The algorithm relies on the derived optimal condition in Curry (1990) and a simple fare-adjusted criterion in Gallego et al (2009) to efficiently approximate a set of protection levels that accounts for upsell. Additional cares are given to update marginal revenue and to turn the protection levels into partition allocations according to mapping function As observed in Gallego et al (2009), the fare-adjusted criterion numerically yields a set of protection levels that tends to reserve more seats to higher classes. This is desirable as the upsell heuristic (Algorithm 2) iteratively and profitably reallocates seats from higher classes to lower classes.
The algorithm first empirically estimates the p.d.f. and c.d.f. of the demands, which are then fed to Line 5 to compute the seat margins based on the optimality conditions valid for independent demands (see Brumelle and McGill, 1993). Once the seat margins are computed, the optimal protection level is determined for the current class based on the adapted fare-adjusted criterion in Gallego et al (2009) at Line 9. Next, the slope vector is updated, and the corresponding partitioned allocation is computed.
Tables
This section includes all results used to create the figures in the main document. Table A1 shows the running time of the upsell heuristic (Algorithm 2) for various numbers of classes and demands (λ). In general, the running time increases when the number of classes or demand increases.
Table A2 shows the minimum, average, and maximum demand factors over all flights for multiple demand multipliers. When the demand multiplier is 0, then the average demand factor is 80 per cent representing that the network is 80 per cent full. When the demand factor is above 100 per cent, the number of bookings are more than the number of seats available.
Table A3 shows the average percentage of improvement in revenue against RLP for different demand multipliers and upsell probability multipliers. The average is taken over all generated demand sample paths, one for each simulation experiment. The percentages showed are the revenue improvement of our proposed allocation policy over the RLP bid-prices.
Rights and permissions
About this article
Cite this article
Seng Pun, C., Klabjan, D., Karaesmen, F. et al. Itinerary-based nesting control with upsell. J Revenue Pricing Manag 15, 107–137 (2016). https://doi.org/10.1057/rpm.2015.21
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1057/rpm.2015.21