WO1997025684A1 - Method and system for determining marginal values for use in a revenue management system - Google Patents

Method and system for determining marginal values for use in a revenue management system Download PDF

Info

Publication number
WO1997025684A1
WO1997025684A1 PCT/US1997/000738 US9700738W WO9725684A1 WO 1997025684 A1 WO1997025684 A1 WO 1997025684A1 US 9700738 W US9700738 W US 9700738W WO 9725684 A1 WO9725684 A1 WO 9725684A1
Authority
WO
WIPO (PCT)
Prior art keywords
demand
marginal
departures
leg
determining
Prior art date
Application number
PCT/US1997/000738
Other languages
French (fr)
Inventor
Gregory L. Campbell
Robert L. Phillips
Jon P. Zimmerman
Richard A. Saleh
Richard C. Grimes
Stefan L. Beskow
Original Assignee
Decision Focus Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Decision Focus Incorporated filed Critical Decision Focus Incorporated
Priority to AU15352/97A priority Critical patent/AU1535297A/en
Publication of WO1997025684A1 publication Critical patent/WO1997025684A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events

Definitions

  • the present invention relates to a method and system for determining marginal values for use in a revenue management system and, in particular, to a method and system for determining marginal values for use in conjunction with an airline reservations system for controlling booking of seats on flight leg departures.
  • Marginal values are widely used in revenue management practice as an aid to guiding the setting of prices at which to sell or commit perishable resources. For instance, in the airline industry, marginal values can be used by an airline reservations system for granting or denying the sale of seats on one or more flight leg departures.
  • Each marginal value represents the minimum price that should be accepted by a merchant to sell or commit an additional perishable resource based on a goal of maximizing profitability in the face of possibly uncertain demand.
  • the sum of individual marginal values represents the minimum acceptable price for the perishable resource combination.
  • Perishable resources by definition are ones that cannot be inventoried and share three common characteristics: perishability, "fixed” capacity and segmentability. Perishability means that each resource ages or becomes unavailable, and thus has no value, after a certain date, time or similar temporal event. "Fixed" capacity implies a high cost of adding an incremental unit such that capacity is regarded as static and unchanging. Segmentability refers to the ability to segment customers based on a willingness to pay using different rates and/or different purchase restrictions, such as the date of purchase relative to the date of use. Examples of perishable resources include airline seats, hotel room nights, rental car days and similar products or services such as described in L.R. Weatherford & S.E. Bodily, A Taxonomy and Research Overview of Perishable-Asset Revenue Management: Yield Management, Overbooking, and Pricing, 40 Operations Research 5, pp. 831-44 (1992), the disclosure of which is inco ⁇ orated herein by reference.
  • marginal values are processing time.
  • a single airline might fly possibly thousands of flight legs (a part of a flight consisting of a single take off and landing) each day.
  • Each flight leg requires a marginal value which is itself dependent on the particular capacity of the airplane used and the known or expected demand for that flight leg as determined by the demand for all sequences of flight legs that carry passengers from their point of origin to their point of destination.
  • the system described herein can calculate marginal values for one departure day for a large airline in less than 15 minutes.
  • prior art systems which account for these factors are constructed to calculate marginal values for all future departure days at one time, that is, during a single processing run, and require substantially more than a day (and usually three days) of calculation time.
  • Prior art systems generally determine marginal values using an iterative process whereby candidate marginal values are refined during each successive iteration until a satisfactory set of values is obtained.
  • One prior art approach places an arbitrary limit on the number of iterations performed. This limit is used to cut down on the processing time required and to avoid problems with the system oscillating between candidate solution sets. There is no assurance that the final "solution" has actually converged.
  • the limit is set too high, the processing time required becomes unnecessarily long.
  • the limit is set too low, the resulting set of marginal values might be far from those that generate the maximum net revenue of the entire network.
  • the present invention enables the above problems to substantially be overcome by providing a method and system for determining marginal values for use in a revenue management system and a method and class library for adaptively determining client- specific marginal values in a generic problem space applicable to other industries, including hotels, rental car companies and other industries offering perishable resources.
  • An embodiment of the present invention is a method and system using a marginal value system for determining marginal values for perishable resources expiring at a future time, for example, an airline seat, hotel room night, rental car day or the like.
  • Data for the perishable resources and composite resources is loaded from a perishable resource revenue management system into the marginal value system.
  • Internal data structures are constructed for linking each of the perishable resources to their associated composite resources and for linking each of the composite resources to their associated perishable resources.
  • the marginal values for the perishable resources are determined using a continuous optimization function using interdependencies among the perishable resources and the composite resources in the internal data structures.
  • the marginal values are stored from the marginal value system into the perishable resource revenue management system.
  • a further embodiment of the present invention is a perishable resource revenue management system for granting and denying a sale of one or more perishable resources expiring at a future time depending on marginal values for each of such perishable resources received from a perishable resource revenue management system.
  • the marginal values are determined by the steps of loading data for the perishable resources, composite resources and perishable resource values from a perishable resource revenue management system into a marginal value system; constructing internal data structures for the perishable resources, composite resources and perishable resource values; determining marginal values for the perishable resources using a continuous optimization function; and storing the marginal values from the marginal value system into the perishable resource revenue management system.
  • a further embodiment of the present invention is a method using a computer and a marginal value system for determining marginal values for perishable resources expiring at a future time.
  • a locally optimal marginal value is evaluated for one of the perishable resources using a continuous optimization function dependent on the marginal values for the other perishable resources.
  • the locally optimal marginal value is iteratively reevaluated until a globally optimal marginal value is attained.
  • a further embodiment of the present invention is a method and a marginal value system for determining marginal values for seats on flight legs departing on a future date. Data for flight leg departures and flight path departures is loaded from an airline revenue management system into the marginal value system.
  • Internal data structures are constructed for linking each of the flight leg departures to their associated flight path departures and for linking each of the flight path departures to their associated flight leg departures.
  • the marginal values for seats on the flight leg departures are determined using a continuous optimization function using interdependencies among the flight leg departures and the flight path departures in the internal data structures.
  • the marginal values are stored from the marginal value system into the airline revenue management system.
  • a further embodiment of the present invention is a method using a computer and a marginal value system for determining marginal values for seats on flight legs departing on a future date.
  • a locally optimal marginal value is evaluated for a seat on one of the flight leg departures using a continuous optimization function dependent on the marginal values for a seat on the other flight leg departures.
  • the locally optimal marginal value is iteratively reevaluated until a globally optimal marginal value is attained.
  • FIG. 1 is, by way of example, an outline map of the topology for an airline network
  • FIG. 2 A is a functional block diagram of an airline reservations booking system
  • FIG. 2B is a flow diagram of a method for using marginal values in the airline reservations booking system of FIG. 2 A;
  • FIG. 3 shows data structures used by the marginal value system of FIG. 2A
  • FIG. 4 is a flow diagram of a method for determining marginal values for use in the airline reservations system of FIG. 2 A;
  • FIG. 5 is a flow diagram of an iterative function for determining marginal values for flight leg departures
  • FIG. 6 is a flow diagram of a supply-demand balance optimization function used by the function of FIG. 5;
  • FIGS. 7A and 7B show graphs of flight leg departure demand curves generated by the flight leg departure demand determination function of FIG. 8;
  • FIG. 8 is a flow diagram of a flight leg departure demand determination function;
  • FIG. 9 is a flow diagram of a flight path departure demand determination function
  • FIG. 10 is a flow diagram of a flight path departure demand search function
  • FIG. 1 1 A shows a graph of a flight path departure demand curve used by the search function of FIG. 10
  • FIG. 1 IB is a table showing, by way of example, the results of a demand curve construction
  • FIG. 12 is a flow diagram of an expected marginal seat revenue (EMSR) optimization function used by the function of FIG. 5;
  • ESR expected marginal seat revenue
  • FIG. 13 shows a graph of a flight leg departure protection level curve generated by the EMSR optimization function of FIG. 12;
  • FIG. 14A is a flow diagram of a demand point list creation function
  • FIG. 14B is a data structure used by the EMSR optimization function of FIG. 12
  • FIG. 14C is a table showing, by way of example, the calculation of protection levels
  • FIG. 15 is a flow diagram of a protection level determination function
  • FIG. 16 is a class diagram of a class library for a method for determining marginal values for use in a revenue management system
  • FIG. 17 is a class diagram of an instantiation of the class library of FIG. 16 for an airline reservations system
  • FIG. 18 is a block diagram of a method for determining generic marginal values for use in a client-specific revenue management system
  • FIG. 19 is a flow diagram of an iterative function for determining generic marginal values for perishable resources
  • FIG. 20 is a flow diagram of a supply-demand optimization function used by the function of FIG. 19;
  • FIG. 21 is a flow diagram of a resource demand determination function;
  • FIG. 22 is a flow diagram of a composite resource demand determination function
  • FIG. 23 is a flow diagram of a composite resource demand search function
  • FIG. 24 is a flow diagram of a non-deterministic optimization function used by the function of FIG. 19
  • FIG. 25 is a flow diagram of a demand point list creation function
  • FIG. 26 is a flow diagram of a protection level determination function.
  • Flight refers to a sequence of regularly scheduled aircraft take offs and landings designated by a flight number. A flight begins at an origin ai ⁇ ort, can make one or more stops and terminates at a destination ai ⁇ ort.
  • Flight leg refers to one part of a flight consisting of a single take off and landing.
  • Flight leg departure refers to a flight leg flown on a specific date (called the departure date).
  • Flight Path or “itinerary” refers to one or more connecting flight legs flown by an individual passenger from an origin ai ⁇ ort to a destination ai ⁇ ort.
  • Flight path departure refers to a flight path flown on the departure date.
  • Airline network refers to the collection of flight legs flown by an airline.
  • Booking class refers to a code used in reserving or booking a seat on a flight leg departure and is related to a ticket's price and conditions of purchase.
  • Demand forecast represents a prediction of the number of seats that passengers will request to book for a future flight path departure specified by statistical parameters, such as mean and variance. It also can include forecasts of cancellations and no-shows.
  • Passenger value represents what an airline receives for a passenger flying on a given flight path minus any associated direct costs, such as taxes, commissions and carrying costs, for example, the meal served and the additional fuel needed to carry that passenger.
  • “Resource” or “perishable resource” refers to a single unit of product or service that a merchant can sell or commit for sale.
  • a flight leg departure is an example of a resource.
  • “Composite resource” refers to a collection of resources that a customer typically will purchase as a bundle at a single price.
  • a flight path departure is a composite resource made up of flight leg departures which are the resources.
  • FIG. 1 shows, by way of example, an outline map of the topology for a simple airline network 9.
  • the airline networi 9 comprises a plurality of ai ⁇ orts as exemplified below in Table I. Each of the ai ⁇ orts is interconnected to at least one other ai ⁇ ort by one or more flight legs 10.
  • the airline network 9 is configured with a single hub located at JFK. A representative flight number of each flight leg 10 is labeled on the line connecting each pair of ai ⁇ orts. For instance, the flight leg 10 originating at LAX and terminating at JFK is flight 51. Table I Code Description
  • FIG. 2A is a functional block diagram of an airline reservations booking system 1 1 , used, by way of example, for granting or denying the booking of seats on flight leg departures based on marginal values.
  • the booking system 11 comprises five components: a travel agent terminal 12, a global distribution system (GDS) 13, an airline reservations system 14, an airline revenue management system 15 and a marginal value system (MVS) 16. Although only one of each type of component is shown, a typical airline reservations booking system 11 would comprise multiple travel agent terminals 12, GDSs 13, airline reservations systems 14, airline revenue management systems 15 and marginal value systems 16.
  • Each GDS 13, airline reservations system 14, airline revenue management system 15 and marginal value system 16 can be embodied as a general pu ⁇ ose programmed computer system (not shown) that operates on a set of instructions in the form of a computer program.
  • a general pu ⁇ ose programmed computer system contains a central processing unit, volatile memory, secondary storage and other components conventional in the art, including a cathode ray tube (CRT) or other type of display and a keyboard entry device.
  • CTR cathode ray tube
  • Each travel agent terminal 12 is a typical computer terminal, including a cathode ray tube (CRT) or other type of display and a keyboard entry device (not shown) and is used by travel agents for remotely accessing the GDS 13 over dedicated data lines.
  • CTR cathode ray tube
  • keyboard entry device not shown
  • FIG. 2A only one travel agent terminal 12 is shown, although there can be a multiplicity of these terminals connected to the GDS 13.
  • the travel agent terminal 12 is used for submitting availability and seat booking requests to the GDS 13 and for receiving data in reply from the GDS 13.
  • An availability request queries whether a seat is available to take a passenger from an origin ai ⁇ ort to a final destination ai ⁇ ort over possibly different flight paths flown by possibly multiple airlines.
  • a seat booking request specifically asks for a seat reservation.
  • a response to an availability request is presented as a series of coded booking classes paired with an availability indicator.
  • a series of eight booking classes are used, although the exact number and combination is arbitrary and could vary according to the application.
  • An example of a response is "F5C8 Y9B9M5H4Q2V0,” where each alpha and numeric character pair indicates a class of service and the approximate number of seats available. For instance, “Y9” indicates that there are 9 or more seats available on the particular flight path departure for "Y" class, "M5" indicates that there are 5 seats available for "M” class and "VO" indicates that no seats are available for "V” class.
  • the travel agent uses a booking class to submit a booking request to the airline reservations system 14 through the GDS 13.
  • the GDSs 13 and the airline reservations systems 14 are shown as separate blocks in FIG. 2A, although in practice these systems are sometimes operated on the same computer.
  • the airline reservations system 14 can also perform many of the functions of the GDS 13, although it focuses on the services of a single airline. Participation by an airline in the GDS 13 is optional, although most airlines participate in most of the major GDSs in the world. In the United States, examples of GDSs 13 are SABRE, APOLLO, WORLDSPAN and SYSTEM ONE. In Europe, two consortium GDSs 13 include AMADEUS and GALILEO.
  • the airline reservations system 14 accepts or denies the booking requests that it receives from the GDS 13 or a locally-connected terminal (not shown) based on various factors, including marginal values received from the airline revenue management system 15.
  • the airline revenue management system 15 is also owned by an individual airline and operates on a separate computer from the airline reservations system 14. Its pu ⁇ ose is to calculate the seat availability according to booking class and corresponding to customer origin and destination eind departure date and to process booking requests using stored marginal values.
  • MMS marginal value system
  • the MVS 16 is a computer program written in the C++ programming language that is executed by the airline revenue management system 15, although other programming languages are feasible. It is also envisioned that the MVS 16 can be a special pu ⁇ ose computer formed on an integrated circuit chip (or set of chips) or executable computer code burned into a read-only memory (ROM) chip that can be read in by conventional means or as microcode.
  • An exemplary example of a marginal value system 16 is the marginal value
  • the pu ⁇ ose of the MVS 16 is to determine system- wide optimal marginal values for use by the airline revenue management system 15.
  • the MVS 16 periodically receives a demand forecast, passenger value and the supply of seats remaining to be booked for selected future flight leg departures as inputs from the airline revenue management system 15. This same data could also be retrieved from a storage device (not shown) commonly accessible by both the airline revenue management system 15 and the marginal value system 16.
  • a demand forecast predicts the number of bookings that will be or is expected to be made between now and the departure date expressed in terms of statistical parameters, such as mean and variance.
  • the passenger value is a function of the booking class, point of sale and the flight path based on origin and destination.
  • the supply of seats remaining to be booked is calculated from the capacity of the ai ⁇ lane assigned to the flight leg departure minus the seats already booked plus an overbooking factor to account for cancellations and no-shows.
  • the number of flight leg departures that can be solved at one time is limited only by the computer memory available.
  • a very large airline network 9 can be solved on a large computer.
  • the MVS 16 sends substantially optimal marginal values for the flight leg departures selected to the airline revenue management system 15 for immediate use or storage or stores them directly into the commonly accessible storage device (not shown).
  • the MVS 16 is a computer program written in the C++ object-oriented programming language. It is preferably structured as a class library as further described hereinbelow. However, any suitable programming language can be employed and the MVS 16 can be embodied on any suitable computer system configuration.
  • FIG. 2B is a flow diagram of a method for using marginal values in the airline reservations system 14 of FIG. 2A.
  • Marginal values determined by the MVS 16 are used by the airline reservations system 14 in granting or denying the sale of seats on one or more of the flight legs 10 departing on some future date. It is feasible that the marginal values determined by the MVS 16 could be used in different ways than described herein by airline reservations systems 14 and airline revenue management systems 15. Moreover, it is feasible that the event triggering the use of marginal values is a time, week, month, year or other future temporal event instead of or in addition to a date.
  • a booking request is received by the airline reservations system 14 for a flight path departure from the travel agent terminal 12 through the GDS 13 (block 18).
  • the airline reservations system 14 determines a summation of the marginal values for the flight leg departures contained in the flight path departure (block 19) to establish a total marginal value for the origin-to-destination flight path departure.
  • the airline reservations system also determines the net revenue for the same flight path departure (block 20).
  • the summation of the marginal values is compared to the net revenue and if the net revenue exceeds the summation of the marginal values for the flight path departure (block 21), an acceptance of the booking request is sent to the travel agent terminal 12 through the GDS 13 (block 23). Otherwise, if the net revenue is less than the summation of the marginal values (block 21 ), it is not profitable to accept the booking request and a denial of the booking request is sent to the travel agent terminal 12 through the GDS 13 (block 22).
  • FIG. 3 shows the data structures used by the marginal value system 16. Three major data structures are used: a flight leg departures list 30. a flight path departures list 35 and a demand records list 38.
  • the data structure for the flight leg departures list 30 comprises flight leg departure records 31 containing fields for storing a departure date 43, flight number 32, origin and destination ai ⁇ orts 33, marginal value 34 and supply of seats 44.
  • the data structure for the flight path departures list 35 comprises flight path departure records 36 containing fields for storing a departure date 46 and a flight path definition 37.
  • the data structure for the demand records list 38 comprises demand records 39 containing fields for storing a booking class price 40, mean 41 and variance 42.
  • a departure date 421 is specified, although a departure time or other future temporal event is feasible.
  • Each flight in the airline network 9 is divided into its respective flight legs and the corresponding flight leg departures 10 are stored in the flight leg departures list 30.
  • the flight number 32 field links each flight leg departure record 31 to its respective flight in the airline network 9.
  • the origin and destination 33 field indicates the part of the flight to which the flight leg 10 corresponds.
  • the departure date 43, marginal value 34 and supply of seats 44 fields store the departure date, marginal value and seat supply for the flight leg departure 10.
  • the flight leg departure records 31 will be referenced whenevei a flight leg departure is referred to hereinbelow.
  • the data structure for the flight path departures list 35 stores the actual or forecasted flight path departures through the airline network 9.
  • the departure date field 46 stores the departure date of the first flight leg 10 contained in the flight path departure.
  • the flight path definition 37 field defines the flight path departure in terms of origin, intermediate and destination ai ⁇ orts with the connecting flight number indicated between each of the ai ⁇ orts. For convenience, the flight path departure records 36 will be referenced whenever a flight path departure is referred to hereinbelow.
  • a set of pointers 45 interconnect the flight leg departures list 30 and the flight path departures list 35 to form a two-dimensional mapping of interdependencies between the two data structures.
  • Each flight leg departure record 31 has a list of pointers 45 pointing to all flight path departure records 36 containing the flight leg departure 10 stored in the flight path definition field 37 of the flight path departure record 36.
  • each flight path departure record 36 has a list of pointers 45 pointing to all flight leg departure records 31 containing the flight leg departure 10 stored in the flight path definition field 37 of each flight path departure record 36.
  • the data structures for these pointer lists are not shown in FIG. 3.
  • the data structure for the demand records list 38 stores the different fares and statistical parameters from the demand forecast for the corresponding flight path departure.
  • the fares are stored in the booking class price 40 field in decreasing order.
  • Two statistical parameters, mean and variance, are stored in the mean 41 and variance 42 fields, although further statistical parameters are feasible.
  • Each flight path record 36 points to one demand records list 38 which contains as many demand records 39 for as many fares as required.
  • the booking class price 40 field will be referenced whenever a particular booking class price is referred to hereinbelow.
  • optimization functions can be employed in determining marginal values for seats on the flight leg departures based on assumptions that the demand is either deterministic or non-deterministic. It is critical that the optimization function employed generate a continuous demand curve, preferably as a function of marginal value (expressed in dollars) and supply (expressed in seats on the flight leg departure). Two optimization functions, a supply-demand balance and an expected marginal seat revenue (EMSR), are described herein; however, other optimization functions are feasible depending upon the characteristics of the particular embodiment, such as booking patterns, marginal value updating frequency and events that trigger reoptimization.
  • ERP expected marginal seat revenue
  • FIGS. 4 and 5 A supply-demand balance optimization function is depicted in FIGS. 6 through 11 B.
  • An EMSR optimization function is depicted in FIGS . 12 through 15. The iterative section common to both optimization functions will now be described.
  • FIG.4 is a flow diagram of a method using the MVS 16 for determining marginal values for use in the airline reservations system 14 of FIG. 2A.
  • Information regarding flight leg departures, flight path departures and passenger value data are loaded into the MVS 16 from the airline revenue management system 15 (block 50).
  • the internal data structures shown in FIG. 3, including the flight leg departures list 30, the flight path departures list 35 and the demand records list 38, are constructed for storing the received information (block 51 ).
  • Marginal values 34 for each of the seats on the flight leg departures 31 are determined using an iterative function (block 52) as further described hereinbelow in FIG. 5. Upon completion of the iterative function, the marginal values are stored back to the airline revenue management system 15 (block 53).
  • FIG. 5 is a flow diagram of a method using the MVS 16 for determining marginal values for use in the airline reservations system 14 of FIG. 2A.
  • FIG. 5 is a flow diagram of an iterative function (block 52) for determining marginal values 34 for the flight leg departures 31 as stored (block 51) in the data structures of FIG. 3.
  • This function is structured as a pair of nested control loops that sequentially determine a marginal value 34 for each flight leg departure 31 using a Gauss-Seidel iterative approach.
  • the flight leg departures 31 and the flight path departures 36 are interdependent upon each other for pu ⁇ oses of marginal value determination.
  • the outer control loop (blocks 61-67) repeats the determination of marginal values 34 for all of the flight leg departures 31 until a convergence criterion is satisfied.
  • convergence is generally attained in as few as 3-4 iterations, but almost always in fewer than 10 iterations resulting in a substantial decrease in processing time over the prior art.
  • the inner control loop (blocks 62-66) sequentially determines a marginal value 34 for each of the flight leg departures 31.
  • the marginal value 34 for each of the flight leg departures 31 is initialized to 0 (block 60).
  • a local variable maxjdiff is set to 0 (block 61). This variable stores the largest difference between current versus previous marginal value 34 out of all marginal values 34 determined during the current iteration of the outer control loop (blocks 61-67) and is used to determine convergence.
  • a locally optimal marginal value 34 is evaluated for a seat on one of the flight leg departures 31 using a continuous optimization function (block 62). In the described embodiment, two continuous optimization functions, supply-demand balance and EMSR, are used as further described hereinbelow in FIGS. 6-1 IB and FIGS. 12-15, respectively.
  • the continuous optimization function returns a marginal value 34 for a seat on the current flight leg departure 31.
  • the magnitude of change in the locally optimal marginal value 34 (obtained in block 62) is determined (block 63) as expressed by the equation: diff - ⁇ MV i - MV ⁇ (1)
  • Dzj measures the change which occurred between the current marginal value 34 as calculated during the present iteration of the outer control loop (blocks 61-67) versus the previous marginal values 34 as calculated during the previous iteration. If diff is greater than max diff (block 64), max_diff is set to diff (block 65) since the biggest change in marginal value that has occurred up through this iteration of the inner control loop (blocks 62-66). Otherwise, max diffremains unchanged (block 64).
  • a convergence criterion is used in determining whether globally optimal marginal values 34 have been found. Consequently, the outer control loop (blocks 61-67) is performed for an indefinite number of iterations until the maximum difference (as stored in the local variable m ⁇ x_diff) between the current and previous marginal values 34 out of all of the flight leg departures 31 is less than the convergence criterion. In the described embodiment, a convergence criterion of 0.02 (corresponding to 2 cents) is used, although any other desired convergence criterion value could be used.
  • a maximum iteration limit is used to prevent the function from running endlessly in the case of an error. If the iteration count exceeds the maximum iteration limit (block 68), the system will report the error condition of non-convergence (block 69) and return. In the described embodiment, a maximum iteration limit of 100 is used, although any other desired iteration limit could be used.
  • FIG. 6 is a flow diagram of a supply-demand balance optimization function (block 62) as used by the iterative function of FIG. 5. Its pu ⁇ ose is to find a locally optimal marginal value 34 based on the assumption that the demand for seats is deterministic and that the optimal marginal value is that which substantially balances supply and demand.
  • the marginal value 34 for the current flight leg departure 31 is initialized to 0 (block 70).
  • the demand for the current flight leg departure 31 is determined using a demand determination function that creates a demand curve as a function of marginal value 34 (shown in FIGS. 7A and 7B) as further described hereinbelow in FIG. 8.
  • the difference between the supply of seats 44 available on the current flight leg departure 31 and the corresponding demand for seats (as returned by the determination function of FIG. 8) is determined (block 71). If the difference of supply 44 minus demand is greater than 0 (block 72), there are more seats available on the current flight leg departure 31 than in demand, that is, supply 44 exceeds demand, and the marginal value 34 remains at 0. The function then returns. Otherwise, if the difference of supply 44 minus demand is less than or equal to 0 (block 72), the demand determination function of
  • FIG. 8 is repeatedly called and the difference between supply 44 and demand taken until a marginal value 34 that makes supply 44 and demand equal is found (block 73). The function then returns. The operation of this function will now be described with reference to FIGS. 7A and 7B which show graphs of flight leg departure demand curves 81 and 85, respectively.
  • the graphs of FIGS. 7A and 7B illustrate the two cases selected by the decision block 72 of FIG. 6.
  • the x-axis represents marginal values expressed in dollars and the y-axis represents seats on the current flight leg departure 31.
  • the supply of seats 44 (as indicated by line 80 in FIG. 7A and by line 84 in FIG. 7B) is provided by the airline revenue management system 15 as an input parameter.
  • the demand curve (as indicated by line 81 in FIG. 7A and by line 85 in FIG. 7B) is generated by the flight leg departure demand determination function of FIG. 8.
  • FIG 7B the situation where the difference between supply 44 minus demand is less than or equal to 0 is shown.
  • the marginal value 34 equals 0
  • supply 44 equals 10
  • demand equals 14.
  • the difference 86 between supply 84 and demand 85 equals -4 and is therefore less than 0.
  • This situation indicates that the demand exceeds the supply 44 and a non ⁇ zero marginal value is required.
  • the intersection 87 between supply 84 and demand 85 must be found.
  • a Van Wijngaarden-Dekker-Brent search method such as described in W. H. Press et al., Numerical Recipes in C-The Art of Scientific Computing, pp.
  • FIG. 8 is a flow diagram of a flight leg departure demand determination function (blocks).
  • the demand for the current flight leg departure 31 is initialized to 0 (block 90).
  • the demand for a flight path departure 35 containing the current flight leg departure 31 is determined by a flight path departure demand determination function (block 91 ) as further described hereinbelow in FIG. 9.
  • the value this function returns represents the demand for the flight path departure 36 at the candidate marginal value 34 for the current flight leg departure 31 and the current marginal values 34 for all other flight leg departures 31 contained in the flight path departure 36.
  • the demand for the flight path departure 36 is added to the demand for the current flight leg departure 31 (block 92). If there are more flight path departures 36 that contain the current flight leg departure 31 (block 93), the control loop (blocks 91-93) is repeated until all flight path departures 36 that contain the current flight leg departure 31 have been processed. In effect, the control loop (blocks 91-93) follows every pointer 45 pointing from a flight leg departure record 31 to a flight path departure record 36 in a one-to- many relationship. When no more flight path departures 36 remain (block 93), the function returns.
  • FIG. 9 is a flow diagram of a flight path departure demand determination function (block 91) as used by the function of FIG. 8. Its pu ⁇ ose is to determine the demand for the current flight path departure 36 using the total of the marginal values 34 of the flight leg departures 31 contained in the flight path departure 36. The total marginal value for the current flight path departure 36 is initialized to 0 (block 100). The marginal value 34 associated with one of the flight leg departures 31 contained in the current flight path departure 36 is added to the total marginal value (block 101). If other flight leg departures 31 contained in the flight path departure 36 remain (block 102), control returns to the top of the control loop (blocks 101-102).
  • control loop (blocks 101-102) follows every pointer 45 pointing from a flight path departure record 36 to a flight leg departure record 31 in a one-to-many relationship.
  • the marginal values 34 for all of the flight leg departures 31 contained in the flight path departure 36 have been added to the total marginal value (block 102)
  • the demand for the flight path departure 36 is determined by a flight path departure demand search function (block 103) using the total marginal value as further described hereinbelow in FIG. 10. The function then returns.
  • FIG. 10 is a flow diagram of the flight path departure search function (block 103) used by the function of FIG. 9. Its pu ⁇ ose is to find points on a flight path departure demand curve
  • FIG. 1 IA shows a graph of the flight path departure demand curve 121.
  • This curve is represented by an additional data structure (not shown) used by the supply-demand balance optimization function (shown in
  • FIG. 6 is created during the construction of the internal data structures in block 51 of FIG.
  • the x-axis represents the price of the current flight path departure 36 expressed in dollars and the y-axis represents the demand expressed in seats.
  • Each flight path departure record 36 points to an associated flight path departure demand curve 121 which is constructed from the demand record list 38.
  • the construction, by way of example, of the flight path departure demand curve 121 is accomplished by the following procedure. It is critically important that the demand curve 121 be continuous as guaranteed by the following procedure. Starting with the first demand record
  • points of the form (price, demand) are added to the demand curve list 38.
  • the first point in the example is:
  • BCP j is the booking class price 40 of the first demand record 39.
  • Points are inserted onto the demand curve 121 of the form:
  • mea ⁇ j is the mean demand of the demand record 39 before . After reading the last demand record 39, one more point is added:
  • price i price itl + (price ⁇ - pnce i+l ) . * I rFr, (5)
  • IF is a parameter called the inte ⁇ olation factor.
  • the value of the inte ⁇ olation factor is 0.9, but any other value greater than 0.5 and less than 1.0 could be used depending on the needs of the application.
  • FIG. 1 IB is a table showing, by way of example, the results of the demand curve construction using the demand records 39 (shown in FIG. 3).
  • the odd numbered points 120A, 120C, 120E, 120F, 120G, 1201, 120K
  • the even numbered points (120B, 120D, 120F, 120H, 120J) were calculated with formulas (4), (5) and (6).
  • point 120D is calculated as follows:
  • the graph of FIG. 11 A also illustrates the search and linear inte ⁇ olation of the flight path departure demand curve 121 performed by the flight path departure search function of FIG. 10.
  • the formula for inte ⁇ olated demand is:
  • price; and demand are the price and demand of the point with a price greater than the total marginal value, TMV, and price ;_ j and demand ;_ ⁇ are the price and demand of the point with a price less than or equal to TMV.
  • FIG. 10 starts with a search starting from 0 for the first demand point with a price greater than the total marginal value (blocks 110). If no such demand point is found (block 11 1), the function terminates and returns a value of 0 (1 13).
  • FIG. 1 1 A shows, by way of example, a total marginal value equalling $260, as indicated at point 122.
  • the first point with a price greater than $260 is (375, 6.5).
  • the point (375, 6.5) and the previous point (150, 7.0) are inte ⁇ olated (block 112) by applying formula (5) as follows:
  • FIG. 12 is a flow diagram of an EMSR optimization function (block 62) as alternatively used by the iterative function of FIG. 5. Its pmpose is to find a locally optimal marginal value 34 based on the assumption that the demand for seats is uncertain, that is, non-deterministic. This assumption is commonly used in leg-based airline yield management systems, such as described in P. Belobaba, Application of a Probabilistic Decision Model to Airline Seat
  • the EMSR approach uses values known as protection levels in a similar way that demand is used in the supply-demand balance function.
  • the EMSR method also uses a new data structure called a demand point list 140 (shown in FIG. 14B) and the concept of an accumulated demand point which will be described in the discussion of FIG. 12.
  • the EMSR optimization function shown in FIG. 12 will now be described.
  • a demand point list 140 (shown in FIG. 14B) is created for the current flight leg departure
  • An accumulated demand point is initialized in block 131.
  • An accumulated demand point consists of six local variables: accumulated mean 152, accumulated net leg revenue 153, accumulated variance 154, average net leg revenue 155, protection level 156 and next net leg revenue 157, several values of which are shown in FIG. 14C.
  • the accumulated demand point is initialized by setting the accumulated mean 152, accumulated net leg revenue 153 and accumulated variance 154 to 0 (block 131). These variables are used for storing accumulated totals derived from the demand points in the demand point list 140 for the current flight leg departure 30.
  • the average net leg revenue 155 and the protection level 156 are also initialized to 0.
  • the initial value of the next net leg revenue 157 is set to the value of the net leg revenue 142 of the first demand point 141 A in the demand point list 140.
  • the first accumulated demand point 161 A is plotted on the graph shown in FIG. 13 using the next net leg revenue 157 on the x-axis and the protection level 156 on the y-axis.
  • the remaining accumulated demand points 161B, 161C, 161D are iteratively determined using a control loop (blocks 132-137) that sequentially processes each demand point in the demand point list 140 starting with the point with the highest average net leg revenue 142.
  • the accumulated mean 152, accumulated net leg revenue 153 and accumulated variance are updated (block 132) based on the next demand point in the demand point list 140.
  • NLR average net leg revenue
  • the value of the next net leg revenue 157 is set to 0. If all of the demand points in the demand point list 140 have been processed (block 135), the marginal value 34 is set to the net leg revenue 142 of the last demand point in the demand point list 140 (block 136) and the function returns. Otherwise, if more demand points remain (block 135) and the difference of supply 44 minus protection level 155 is greater than 0 (block 137), control continues at the top of the control loop (blocks 132-137) for processing of the next demand point.
  • the marginal value 34 is determined by using linear inte ⁇ olation between the last two accumulated demand points (block 138) as expressed by the equation:
  • NNLR j and NNLR;_ j are the next net leg revenues 157 of the last two accumulated demand points, supply is the supply of seats 44, PL; and PL;_ are the protection levels 156 for the last two accumulated demand points and MVis the marginal value 34.
  • FIG. 13 shows a graph of a flight leg departure protection level curve generated by the function of FIG. 12.
  • the x-axis represents the next net leg revenue 157 expressed in dollars and the y-axis represents the protection level 156 expressed in seats.
  • Accumulated demand points 161 A, 161B, 161C, 161D, 161E are graphed as a function of their respective next net leg revenue 157 points 160A, 160B, 160C, 160D, 160E.
  • Protection levels are calculated as illustrated, by way of example, in the table of FIG. 14C.
  • Each row 151 A, 15 IB, 151C, 15 ID corresponds to an accumulated demand point as determined during each successive iteration of the control loop (blocks 132-137).
  • Each column corresponds to an accumulated mean 152, accumulated net leg revenue 153, accumulated variance 154, average net leg revenue 155, protection level 156 and next net leg revenue 157.
  • Row 151 A represents the initialized value of the accumulated demand point.
  • Row 151 B represents values determined during the first iteration of the control loop (block 132-137), row 151C during the second iteration and row 151 D during the third iteration.
  • the accumulated mean 152 is calculated using equation (8) as follows:
  • the accumulated net leg revenue 153 is calculated using equation (9) as follows:
  • the protection level 156 is determined by a function (block 134) which is described further hereinbelow in FIG. 15.
  • the next net leg revenue 157 is 265 which is the value of the net leg revenue 142 of the third demand point 141 C on the demand point list 40.
  • the result of the protection level calculation is 7.
  • protection levels 156 are calculated and compared to supply 44.
  • the first accumulated demand point 151 A has a protection level 156 of 0 which is less than the supply 44 of 10. This first point is plotted as point 161 A in the graph of FIG. 13.
  • the second accumulated demand point 151 A has a protection level 156 of 3 which is also less than the supply 44 of 10. This second point is plotted as point 16 IB in the graph of FIG. 13.
  • the third accumulated demand point 151C has a protection level 156 of 7 which is also less than the supply 44 of 10. This third point is plotted in the graph of FIG. 13 as point 161C.
  • the fourth accumulated demand point 15 ID has a protection level 156 of 13 which is larger than the supply 44 of 10 which is the first demand point at which the difference of supply 44 minus protection level 156 is less than 0 (block 137).
  • FIG. 14A is a flow diagram of a demand point list creation function (block 130) as used by the function of FIG. 12.
  • a flight path departure 36 containing the current flight leg departure 31 is found by using the pointers 45 from the flight path departures 36 to the flight leg departures 31 (shown in FIG. 3).
  • the marginal values 34 for all of the flight leg departures 31 contained in the flight path departure 36 except the current flight leg departure 31 are accumulated into a temporary local variable (block 151 ) as expressed by the equation:
  • MV.- is the marginal value 34 for a flight leg departure 31 contained in the flight path departure 36 except the current flight leg departure 31.
  • the EMSR optimization function takes the net revenue, that is, booking class price 40, and subtracts off the marginal values for all other flight leg departures 31 occurring in the current flight path departure 36 to obtain the net leg revenue 142 for the particular flight leg departure 31 being optimized.
  • the net leg revenue 142 for the next point on the demand curve for the current flight leg departure 31 is determined (block 152) as expressed by the equation:
  • BCP is the booking class price 40 for the current flight path departure 36 and MV; is the marginal value 34 for a flight leg departure 31 contained in the flight path departure 36 except the current flight leg departure 31.
  • the net leg revenue 142 is stored in the demand point list 140 as further described hereinbelow.
  • a new demand point is created and inserted into the demand point list 140 which is sorted in decreasing net leg revenue order (block 154). For example, demand points for booking class prices 40 of $500, 400 and $ 150 are shown in FIG. 14B as having been inserted into the demand point list 140. Otherwise, if the net leg revenue is less than 0 (block 153), the current iteration over the points on the demand curve is terminated since any further points would also have net leg revenues less than 0. For example, demand points for booking class prices 40 of $ 130 and $ 120 will not be inserted into the demand point list 140.
  • control returns to the top of the inner control loop (block 152- 155) for processing of the next demand point. Otherwise, if no further demand points remain (block 155) and more flight path departures 36 remain (block 156), control returns to the top of the outer control loop (blocks 150-156) for processing of the next flight path departure 36. This process will continue to add points to the demand point list 140. If all flight path departures have been processed (block 156), the function returns.
  • FIG. 14B is a data structure for a demand point list 140 as generated by the demand point list creation function of FIG. 14A.
  • One demand point list 140 is created for each flight leg departure 31 that is to be optimized.
  • the data structure for the demand point list 140 comprises demand point records 141 A, 14 IB, 14 IC, 141D, 141E, 141F containing net leg revenue 142, mean 143 and variance 144 fields.
  • the net leg revenue 142 field stores the net leg revenue for the demand point corresponding to a booking class price 40 as calculated with equation (14) (block 152).
  • the mean 41 and variance 42 for each demand record 39 are copied into the demand point list 140 as mean 143 and variance 144, respectively.
  • the net leg revenue 142 field will be referenced whenever a particular net leg revenue is referred to hereinbelow.
  • FIG. 14B shows, by way of example, a demand point list 140 for the ORD-JFK flight leg departure 31.
  • the first entry in this list, entry 141 A corresponds to the first demand record 39 in the demand records list 38 for the flight path departure 10 ORD-JFK-LHR-CDG as shown in FIG. 3.
  • the first demand point encountered in the associated set of demand records 39 corresponds to the booking class price 40 of $500.
  • BCP 1 is the first booking class price 40 of $500 for the ORD-JFK-LHR-CDG flight path departure 36 and Vjp ⁇ jj ⁇ and MV HR-CDG are tne rnarginal values 34 for the JFK-LHR and LHR-CDG flight leg departures 31, respectively.
  • Entries 141 C and 14 IF are also taken from the flight path departure 10 ORD-JFK-LHR-CDG as shown in FIG. 14B.
  • the other entries in the demand point list 140, entries 14 IB, 141D, 14 IE, are taken from other flight path departures containing the ORD-JFK flight leg departure 10.
  • the net leg revenue 142 value of $365 is stored in the demand point record 141 A.
  • FIG. 15 is a flow diagram of a protection level determination function (block 134) as used by the function of FIG. 12. Its pu ⁇ ose is to determine a protection level 156 for the current flight leg departure 31 being optimized as a function of the accumulated demand point.
  • the square root of the accumulated variance 154 is taken and stored in a local variable std dev (block 180).
  • ANLR is determined and stored in a local variable N (block 181).
  • ANLR is the average net leg revenue 155 and NNLR is the next net leg revenue 157 of the accumulated demand point.
  • the cumulative inverse normal is calculated using a numerical approximation, such as described in C. Hastings, Approximations for Digital Computers, p. 192, Princeton University Press (1955), the disclosure of which is inco ⁇ orated herein by reference.
  • the protection level 156 is determined (block 182) as expressed by the equation:
  • the MVS 16 can be structured as a generic class library using an object-oriented programming language.
  • the C++ programming language is used; however, any object-oriented programming language can be employed.
  • the discussion herein adopts the terminology used by the C++ programming language, but is not meant to be restrictive as to the underlying concepts.
  • FIG. 16 is a class diagram of a class library 189 for a method for determining marginal values for use in a perishable resource revenue management system.
  • the class library 189 is structured into 3 layers: a generic layer 190, an industry-specific layer 191 and a client-specific layer 192.
  • the generic layer 190 is used for determining marginal values for generic resources.
  • the industry-specific layer 191 creates a set of derived classes for a particular industry.
  • derived classes for an airline, a hotel and a rental car agency are used, although other industries are feasible.
  • the client-specific layer 192 creates a set of derived classes for a particular client relating to the corresponding industry-specific class.
  • the generic layer 190 defines a base abstract resource class 193 and a perishable resource management problem (RMP) class 194.
  • the resource class defines an interface for derived classes in the industry-specific layer 191 for a flight leg departure resource class 195 A, a room night resource class 195B and a rental car day resource class 195C. Other derived resource classes are feasible.
  • the resource class 193 comprises two pure virtual functions supplyO and demandQ (not shown). As further described hereinbelow, the functions defined in portions of the class definitions for the industry-specific layer 191 and the client-specific layer 192 override the pure virtual functions defined in the generic layer 190.
  • the perishable RMP class 194 is also in the generic layer 190 and defines an interface for derived abstract classes in the industry-specific layer 191 for solving an airline resource management problem 196A, a hotel resource management problem 196B and a rental car resource management problem 196C. Other derived abstract classes are feasible.
  • the line connecting the perishable RMP 194 with the resource class 193 indicates that the RMP has many resources to manage.
  • the client-specific layer 192 comprises a set of derived classes defining the particular data manipulation functions used by a particular client's implementation to load and save data in the client's revenue management system 15 and to map the data into the generic data structures.
  • the airline #1 resource management problem class 197 A contains those loading, saving and mapping functions needed to utilize the generic data structures and methods for determining marginal values for airline #1.
  • This likewise applies to the airline #2 resource management problem 197B, the hotel #1 resource management problem 198A, the hotel #2 resource management problem 198B, the company #1 resource management problem 199A and the company #2 resource management problem 199B classes.
  • Other derived classes under industry-specific layer 191 class are feasible.
  • the resource class 193 defines a base abstract class for a generic resource for which marginal values will be determined.
  • the particular type of resource is defined in the derived classes defined in the industry-specific layer 191. There is a one-to-one correlation between the classes derived from the resource class 193 and the specific abstract classes derived from the perishable RMP class 194.
  • the flight leg resource class 195 A corresponds to the airline resource management problem class 196A. The same applies to the room night resource class 195B and the hotel resource management problem class 196B and the rental car resource class 195C and the rental car resource management problem class 196C.
  • the particular type of resource being solved is germane to the industry-specific layer 191 and consequently, it is unnecessary to define each resource abstractly. In other words, a flight leg departure is, for example, the common resource used by the airline resource management problem 196A irrespective of the particular airline.
  • FIG. 17 is a class diagram of an instantiation 200 of the class library 189 of FIG. 16 for an airline reservations system.
  • the base abstract perishable RMP class 194 defines a generic function solve ⁇ which uses the supplyQ and demand ⁇ functions of the resource class 193 to solve for generic marginal values.
  • This abstract class has a derived airline RMP class 196A which defines a set of data structures as shown in FIG. 3 for an airline-specific implementation.
  • the airline RMP class 196A has a derived airline # 1 RMS class 197A which contains two airline
  • the solve ⁇ function of the RMP class 194 is further described hereinbelow beginning in FIG. 18.
  • the resource class 193 contains a pair of pure virtual functions supply ⁇ and demand ⁇ that are overridden by the particular supply ⁇ and demand ⁇ routines used in the instantiated problem, that is, by the functions contained in the particular industry-specific layer 191 class.
  • FIG. 18 is a flow diagram of a method for generically determining marginal values for use in a client-specific perishable resource management system.
  • Data is loaded using the client- specific load ⁇ function (block 210).
  • the load ⁇ function is defined in the client-specific layer 192 as a derived class member for a particular client.
  • the loaded data is mapped into the problem space for the industry-specific layer 191 and generic layer 190 (block 21 1). This mapping is accomplished through inheritance whereby the parent and grandparent classes, that is, the industry-specific layer 191 derived abstract classes and generic layer 190 abstract class, instantiate client-specific objects to industry-specific and finally generic objects.
  • Generic marginal values are then determined using the generic solve ⁇ function, such as shown in the perishable RMP class 194 (block 212) as further described hereinbelow in FIG. 19.
  • the generic marginal values are mapped back into the client-specific problem space, that is, to the particular client-specific layer 192 class (block 213).
  • the marginal values as mapped from generic marginal values to client-specific marginal values are stored using the store ⁇ function contained in the client-specific layer 192 class (block 214).
  • FIGS. 19-26 are flow diagrams of an iterative function for determining generic marginal values for use in a perishable resource management system.
  • the operations described in these figures are the same as those previously described for an airline-specific implementation, although the two implementations operate in different problem spaces.
  • the program variables used by the generic class library 189 are presented in terms of perishable resources rather than seats on flight leg departures.
  • the correlation between the airline-specific functions and the generic class library functions are shown below in Table II.
  • FIGS. 10 and 23 are identical, so there is no entry in Table II for these figures. Note that identical reference numerals are used for the flow diagrams in FIGS. 5-6, 8-10, 12 and 14A-15 as in FIGS.
  • FIGS. 19-26 respectively, except that an apostrophe sign has been added to the reference numerals in the latter. Therefore, it will be understood that the same portions of the Detailed Description with respect to FIGS. 5-6, 8-10, 12 and 14A-15 (pertaining to the airline-specific method) also apply to FIGS. 19-26 (pertaining to the generic class library method) with exceptions as noted in Table II for program variable names.
  • FIG. Block Variable FIG. Block Variable Name Name
  • FIG. Block Variable FIG. Block Variable Name Name
  • FIG. Block Variable FIG. Block Variable Name Name

Abstract

A method and system for determining marginal values (34) for perishable resources (31) expiring at a future time, for example, an airline seat, hotel room night, rental car day or the like, for use in a perishable resource revenue management system (MVS) (16). Departures, flight departures and passenger value data are loaded into the MVS (16) from the airline revenue management system (50). These data and demand are constructed for storing the received information (51). Marginal values (34) for each of the seats on the flight leg departures (31) are determined using an iterative function (52). Upon completion of the iterative function, the marginal values are stored back (53).

Description

METHOD AND SYSTEM FOR DETERMINING MARGINAL VALUES FOR USE IN A REVENUE MANAGEMENT SYSTEM
Field of the Invention
The present invention relates to a method and system for determining marginal values for use in a revenue management system and, in particular, to a method and system for determining marginal values for use in conjunction with an airline reservations system for controlling booking of seats on flight leg departures. Background of the Invention
Marginal values (or bid prices) are widely used in revenue management practice as an aid to guiding the setting of prices at which to sell or commit perishable resources. For instance, in the airline industry, marginal values can be used by an airline reservations system for granting or denying the sale of seats on one or more flight leg departures.
Each marginal value represents the minimum price that should be accepted by a merchant to sell or commit an additional perishable resource based on a goal of maximizing profitability in the face of possibly uncertain demand. For a combination of perishable resources, the sum of individual marginal values represents the minimum acceptable price for the perishable resource combination.
Perishable resources by definition are ones that cannot be inventoried and share three common characteristics: perishability, "fixed" capacity and segmentability. Perishability means that each resource ages or becomes unavailable, and thus has no value, after a certain date, time or similar temporal event. "Fixed" capacity implies a high cost of adding an incremental unit such that capacity is regarded as static and unchanging. Segmentability refers to the ability to segment customers based on a willingness to pay using different rates and/or different purchase restrictions, such as the date of purchase relative to the date of use. Examples of perishable resources include airline seats, hotel room nights, rental car days and similar products or services such as described in L.R. Weatherford & S.E. Bodily, A Taxonomy and Research Overview of Perishable-Asset Revenue Management: Yield Management, Overbooking, and Pricing, 40 Operations Research 5, pp. 831-44 (1992), the disclosure of which is incoφorated herein by reference.
One problem faced in the determination of marginal values is processing time. In the airline industry, a single airline might fly possibly thousands of flight legs (a part of a flight consisting of a single take off and landing) each day. Each flight leg requires a marginal value which is itself dependent on the particular capacity of the airplane used and the known or expected demand for that flight leg as determined by the demand for all sequences of flight legs that carry passengers from their point of origin to their point of destination. The system described herein can calculate marginal values for one departure day for a large airline in less than 15 minutes. However, prior art systems which account for these factors are constructed to calculate marginal values for all future departure days at one time, that is, during a single processing run, and require substantially more than a day (and usually three days) of calculation time.
Another problem faced is determining whether the system has converged on a final solution. Prior art systems generally determine marginal values using an iterative process whereby candidate marginal values are refined during each successive iteration until a satisfactory set of values is obtained. One prior art approach places an arbitrary limit on the number of iterations performed. This limit is used to cut down on the processing time required and to avoid problems with the system oscillating between candidate solution sets. There is no assurance that the final "solution" has actually converged. Moreover, if the limit is set too high, the processing time required becomes unnecessarily long. Conversely, if the limit is set too low, the resulting set of marginal values might be far from those that generate the maximum net revenue of the entire network.
Yet another problem faced is how to treat dependencies between individual perishable resources. In the airline industry, a combination of flight legs (known as a flight path), such as occurs whenever a passenger books a series of connecting flight legs, creates a dependency between each individual flight leg in the flight path, yet prior art systems generally overlook the effect that the flight path as a whole has on the individual marginal values. Experience with revenue management systems that take into account the passenger's flight path indicate that there is substantial value in doing so, on the order of 1% to 2% of revenue compared with conventional leg-based systems.
One further complication that has been recognized by the airline industry, yet can be found in similar industries, is that of determining marginal values for flight leg departures in a multi-dimensional problem space. Prior art hotel industry approaches were merely concerned with a one-dimensional mapping of room nights based on each guest's length of stay. In the airline industry, though, marginal values must be determined with a two-dimensional mapping of seats based on individual flight legs being associated with one or more flight paths and individual flight paths being associated with one or more flight legs.
Therefore, there is a need for a method and system for determining optimal, system-wide net revenue maximizing marginal values for perishable resources, such as seats on flight leg departures, that does not require substantial processing time yet utilizes a convergence criteria for dynamically determining whether a substantially optimal set of marginal values has been obtained. Desirably, such a method and system must also factor in dependencies between individual perishable resources, including the mapping of the determination in a multi¬ dimensional problem space. Summary of the Invention
Accordingly, the present invention enables the above problems to substantially be overcome by providing a method and system for determining marginal values for use in a revenue management system and a method and class library for adaptively determining client- specific marginal values in a generic problem space applicable to other industries, including hotels, rental car companies and other industries offering perishable resources.
An embodiment of the present invention is a method and system using a marginal value system for determining marginal values for perishable resources expiring at a future time, for example, an airline seat, hotel room night, rental car day or the like. Data for the perishable resources and composite resources is loaded from a perishable resource revenue management system into the marginal value system. Internal data structures are constructed for linking each of the perishable resources to their associated composite resources and for linking each of the composite resources to their associated perishable resources. The marginal values for the perishable resources are determined using a continuous optimization function using interdependencies among the perishable resources and the composite resources in the internal data structures. The marginal values are stored from the marginal value system into the perishable resource revenue management system.
A further embodiment of the present invention is a perishable resource revenue management system for granting and denying a sale of one or more perishable resources expiring at a future time depending on marginal values for each of such perishable resources received from a perishable resource revenue management system. The marginal values are determined by the steps of loading data for the perishable resources, composite resources and perishable resource values from a perishable resource revenue management system into a marginal value system; constructing internal data structures for the perishable resources, composite resources and perishable resource values; determining marginal values for the perishable resources using a continuous optimization function; and storing the marginal values from the marginal value system into the perishable resource revenue management system.
A further embodiment of the present invention is a method using a computer and a marginal value system for determining marginal values for perishable resources expiring at a future time. A locally optimal marginal value is evaluated for one of the perishable resources using a continuous optimization function dependent on the marginal values for the other perishable resources. The locally optimal marginal value is iteratively reevaluated until a globally optimal marginal value is attained. A further embodiment of the present invention is a method and a marginal value system for determining marginal values for seats on flight legs departing on a future date. Data for flight leg departures and flight path departures is loaded from an airline revenue management system into the marginal value system. Internal data structures are constructed for linking each of the flight leg departures to their associated flight path departures and for linking each of the flight path departures to their associated flight leg departures. The marginal values for seats on the flight leg departures are determined using a continuous optimization function using interdependencies among the flight leg departures and the flight path departures in the internal data structures. The marginal values are stored from the marginal value system into the airline revenue management system.
A further embodiment of the present invention is a method using a computer and a marginal value system for determining marginal values for seats on flight legs departing on a future date. A locally optimal marginal value is evaluated for a seat on one of the flight leg departures using a continuous optimization function dependent on the marginal values for a seat on the other flight leg departures. The locally optimal marginal value is iteratively reevaluated until a globally optimal marginal value is attained.
Still other embodiments of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein is shown and described only embodiments of the invention by way of illustration of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other and different embodiments and its several details are capable of modification in various obvious respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
Brief Description of the Drawings
FIG. 1 is, by way of example, an outline map of the topology for an airline network;
FIG. 2 A is a functional block diagram of an airline reservations booking system;
FIG. 2B is a flow diagram of a method for using marginal values in the airline reservations booking system of FIG. 2 A;
FIG. 3 shows data structures used by the marginal value system of FIG. 2A;
FIG. 4 is a flow diagram of a method for determining marginal values for use in the airline reservations system of FIG. 2 A;
FIG. 5 is a flow diagram of an iterative function for determining marginal values for flight leg departures;
FIG. 6 is a flow diagram of a supply-demand balance optimization function used by the function of FIG. 5; FIGS. 7A and 7B show graphs of flight leg departure demand curves generated by the flight leg departure demand determination function of FIG. 8; FIG. 8 is a flow diagram of a flight leg departure demand determination function;
FIG. 9 is a flow diagram of a flight path departure demand determination function; FIG. 10 is a flow diagram of a flight path departure demand search function; FIG. 1 1 A shows a graph of a flight path departure demand curve used by the search function of FIG. 10; FIG. 1 IB is a table showing, by way of example, the results of a demand curve construction;
FIG. 12 is a flow diagram of an expected marginal seat revenue (EMSR) optimization function used by the function of FIG. 5;
FIG. 13 shows a graph of a flight leg departure protection level curve generated by the EMSR optimization function of FIG. 12;
FIG. 14A is a flow diagram of a demand point list creation function; FIG. 14B is a data structure used by the EMSR optimization function of FIG. 12; FIG. 14C is a table showing, by way of example, the calculation of protection levels; FIG. 15 is a flow diagram of a protection level determination function; FIG. 16 is a class diagram of a class library for a method for determining marginal values for use in a revenue management system; and
FIG. 17 is a class diagram of an instantiation of the class library of FIG. 16 for an airline reservations system;
FIG. 18 is a block diagram of a method for determining generic marginal values for use in a client-specific revenue management system;
FIG. 19 is a flow diagram of an iterative function for determining generic marginal values for perishable resources;
FIG. 20 is a flow diagram of a supply-demand optimization function used by the function of FIG. 19; FIG. 21 is a flow diagram of a resource demand determination function;
FIG. 22 is a flow diagram of a composite resource demand determination function; FIG. 23 is a flow diagram of a composite resource demand search function; FIG. 24 is a flow diagram of a non-deterministic optimization function used by the function of FIG. 19; FIG. 25 is a flow diagram of a demand point list creation function; and
FIG. 26 is a flow diagram of a protection level determination function. Detailed Description I. Glossary of Terms "Flight" refers to a sequence of regularly scheduled aircraft take offs and landings designated by a flight number. A flight begins at an origin aiφort, can make one or more stops and terminates at a destination aiφort. "Flight leg" refers to one part of a flight consisting of a single take off and landing.
"Flight leg departure" refers to a flight leg flown on a specific date (called the departure date).
"Flight Path" or "itinerary" refers to one or more connecting flight legs flown by an individual passenger from an origin aiφort to a destination aiφort.
"Flight path departure" refers to a flight path flown on the departure date. "Airline network" refers to the collection of flight legs flown by an airline. "Booking class" refers to a code used in reserving or booking a seat on a flight leg departure and is related to a ticket's price and conditions of purchase.
"Demand forecast" represents a prediction of the number of seats that passengers will request to book for a future flight path departure specified by statistical parameters, such as mean and variance. It also can include forecasts of cancellations and no-shows. "Passenger value" represents what an airline receives for a passenger flying on a given flight path minus any associated direct costs, such as taxes, commissions and carrying costs, for example, the meal served and the additional fuel needed to carry that passenger.
"Resource" or "perishable resource" refers to a single unit of product or service that a merchant can sell or commit for sale. A flight leg departure is an example of a resource. "Composite resource" refers to a collection of resources that a customer typically will purchase as a bundle at a single price. For example, a flight path departure is a composite resource made up of flight leg departures which are the resources.
II. Overview
A. Airline Network Topology
FIG. 1 shows, by way of example, an outline map of the topology for a simple airline network 9. The airline networi 9 comprises a plurality of aiφorts as exemplified below in Table I. Each of the aiφorts is interconnected to at least one other aiφort by one or more flight legs 10. The airline network 9 is configured with a single hub located at JFK. A representative flight number of each flight leg 10 is labeled on the line connecting each pair of aiφorts. For instance, the flight leg 10 originating at LAX and terminating at JFK is flight 51. Table I Code Description
LAX Los Angeles International Aiφort (Los Angeles, CA)
ORD O'Hare International Aiφort (Chicago, IL)
BOS Logan International Aiφort (Boston, MA)
JFK John F. Kennedy International Aiφort (New York, NY)
PHL Philadelphia International Aiφort (Philadelphia, PA)
LHR London Heathrow Aiφort (London, U.K.)
CDG Charles de Gaulle Aiφort (Paris, France)
B. Airline Reservations Booking System
FIG. 2A is a functional block diagram of an airline reservations booking system 1 1 , used, by way of example, for granting or denying the booking of seats on flight leg departures based on marginal values. The booking system 11 comprises five components: a travel agent terminal 12, a global distribution system (GDS) 13, an airline reservations system 14, an airline revenue management system 15 and a marginal value system (MVS) 16. Although only one of each type of component is shown, a typical airline reservations booking system 11 would comprise multiple travel agent terminals 12, GDSs 13, airline reservations systems 14, airline revenue management systems 15 and marginal value systems 16.
Each GDS 13, airline reservations system 14, airline revenue management system 15 and marginal value system 16 can be embodied as a general puφose programmed computer system (not shown) that operates on a set of instructions in the form of a computer program. Such a general puφose programmed computer system contains a central processing unit, volatile memory, secondary storage and other components conventional in the art, including a cathode ray tube (CRT) or other type of display and a keyboard entry device.
Each travel agent terminal 12 is a typical computer terminal, including a cathode ray tube (CRT) or other type of display and a keyboard entry device (not shown) and is used by travel agents for remotely accessing the GDS 13 over dedicated data lines. In FIG. 2A, only one travel agent terminal 12 is shown, although there can be a multiplicity of these terminals connected to the GDS 13.
The travel agent terminal 12 is used for submitting availability and seat booking requests to the GDS 13 and for receiving data in reply from the GDS 13. An availability request queries whether a seat is available to take a passenger from an origin aiφort to a final destination aiφort over possibly different flight paths flown by possibly multiple airlines. A seat booking request specifically asks for a seat reservation. There are multiple airline reservations systems 14 associated with the GDS 13. To determine the availability of seats on the flight legs 10 flown by each airline, the GDS 13 sends availability and booking requests to each airline reservations system 14 involved in the travel agent's request. Information about the flight leg departures 10 in the airline network 9 (shown in FIG. 1) is managed and stored in the airline reservations system 14.
A response to an availability request is presented as a series of coded booking classes paired with an availability indicator. As is conventional in the art, a series of eight booking classes are used, although the exact number and combination is arbitrary and could vary according to the application. An example of a response is "F5C8 Y9B9M5H4Q2V0," where each alpha and numeric character pair indicates a class of service and the approximate number of seats available. For instance, "Y9" indicates that there are 9 or more seats available on the particular flight path departure for "Y" class, "M5" indicates that there are 5 seats available for "M" class and "VO" indicates that no seats are available for "V" class. The travel agent uses a booking class to submit a booking request to the airline reservations system 14 through the GDS 13.
The GDSs 13 and the airline reservations systems 14 are shown as separate blocks in FIG. 2A, although in practice these systems are sometimes operated on the same computer. The airline reservations system 14 can also perform many of the functions of the GDS 13, although it focuses on the services of a single airline. Participation by an airline in the GDS 13 is optional, although most airlines participate in most of the major GDSs in the world. In the United States, examples of GDSs 13 are SABRE, APOLLO, WORLDSPAN and SYSTEM ONE. In Europe, two consortium GDSs 13 include AMADEUS and GALILEO.
The airline reservations system 14 accepts or denies the booking requests that it receives from the GDS 13 or a locally-connected terminal (not shown) based on various factors, including marginal values received from the airline revenue management system 15. Generally, the airline revenue management system 15 is also owned by an individual airline and operates on a separate computer from the airline reservations system 14. Its puφose is to calculate the seat availability according to booking class and corresponding to customer origin and destination eind departure date and to process booking requests using stored marginal values. Part of the airline revenue management system 15 is the marginal value system (MVS)
16. In the described embodiment, the MVS 16 is a computer program written in the C++ programming language that is executed by the airline revenue management system 15, although other programming languages are feasible. It is also envisioned that the MVS 16 can be a special puφose computer formed on an integrated circuit chip (or set of chips) or executable computer code burned into a read-only memory (ROM) chip that can be read in by conventional means or as microcode. An exemplary example of a marginal value system 16 is the marginal value
TM system product licensed under the trademark of Marginal Value Engine manufactured by TM TM
Decision Focus Incoφorated, Mountain View, CA. Marginal Value Engine and MVE are trademarks owned by Decision Focus Incoφorated. The puφose of the MVS 16 is to determine system- wide optimal marginal values for use by the airline revenue management system 15. The MVS 16 periodically receives a demand forecast, passenger value and the supply of seats remaining to be booked for selected future flight leg departures as inputs from the airline revenue management system 15. This same data could also be retrieved from a storage device (not shown) commonly accessible by both the airline revenue management system 15 and the marginal value system 16. A demand forecast predicts the number of bookings that will be or is expected to be made between now and the departure date expressed in terms of statistical parameters, such as mean and variance. The passenger value is a function of the booking class, point of sale and the flight path based on origin and destination. The supply of seats remaining to be booked is calculated from the capacity of the aiφlane assigned to the flight leg departure minus the seats already booked plus an overbooking factor to account for cancellations and no-shows. The number of flight leg departures that can be solved at one time is limited only by the computer memory available. A very large airline network 9 can be solved on a large computer.
In response, the MVS 16 sends substantially optimal marginal values for the flight leg departures selected to the airline revenue management system 15 for immediate use or storage or stores them directly into the commonly accessible storage device (not shown).
In the described embodiment, the MVS 16 is a computer program written in the C++ object-oriented programming language. It is preferably structured as a class library as further described hereinbelow. However, any suitable programming language can be employed and the MVS 16 can be embodied on any suitable computer system configuration.
C. Method for Using Marginal Values
FIG. 2B is a flow diagram of a method for using marginal values in the airline reservations system 14 of FIG. 2A. Marginal values determined by the MVS 16 are used by the airline reservations system 14 in granting or denying the sale of seats on one or more of the flight legs 10 departing on some future date. It is feasible that the marginal values determined by the MVS 16 could be used in different ways than described herein by airline reservations systems 14 and airline revenue management systems 15. Moreover, it is feasible that the event triggering the use of marginal values is a time, week, month, year or other future temporal event instead of or in addition to a date.
A booking request is received by the airline reservations system 14 for a flight path departure from the travel agent terminal 12 through the GDS 13 (block 18). The airline reservations system 14 determines a summation of the marginal values for the flight leg departures contained in the flight path departure (block 19) to establish a total marginal value for the origin-to-destination flight path departure. The airline reservations system also determines the net revenue for the same flight path departure (block 20). The summation of the marginal values is compared to the net revenue and if the net revenue exceeds the summation of the marginal values for the flight path departure (block 21), an acceptance of the booking request is sent to the travel agent terminal 12 through the GDS 13 (block 23). Otherwise, if the net revenue is less than the summation of the marginal values (block 21 ), it is not profitable to accept the booking request and a denial of the booking request is sent to the travel agent terminal 12 through the GDS 13 (block 22).
III. Airline-Specific Marginal Value Determination Method A. Data Structures FIG. 3 shows the data structures used by the marginal value system 16. Three major data structures are used: a flight leg departures list 30. a flight path departures list 35 and a demand records list 38.
The data structure for the flight leg departures list 30 comprises flight leg departure records 31 containing fields for storing a departure date 43, flight number 32, origin and destination aiφorts 33, marginal value 34 and supply of seats 44. The data structure for the flight path departures list 35 comprises flight path departure records 36 containing fields for storing a departure date 46 and a flight path definition 37. The data structure for the demand records list 38 comprises demand records 39 containing fields for storing a booking class price 40, mean 41 and variance 42. In the described embodiment, a departure date 421 is specified, although a departure time or other future temporal event is feasible.
Each flight in the airline network 9 is divided into its respective flight legs and the corresponding flight leg departures 10 are stored in the flight leg departures list 30. The flight number 32 field links each flight leg departure record 31 to its respective flight in the airline network 9. The origin and destination 33 field indicates the part of the flight to which the flight leg 10 corresponds. The departure date 43, marginal value 34 and supply of seats 44 fields store the departure date, marginal value and seat supply for the flight leg departure 10. For convenience, the flight leg departure records 31 will be referenced whenevei a flight leg departure is referred to hereinbelow.
The data structure for the flight path departures list 35 stores the actual or forecasted flight path departures through the airline network 9. The departure date field 46 stores the departure date of the first flight leg 10 contained in the flight path departure. The flight path definition 37 field defines the flight path departure in terms of origin, intermediate and destination aiφorts with the connecting flight number indicated between each of the aiφorts. For convenience, the flight path departure records 36 will be referenced whenever a flight path departure is referred to hereinbelow. A set of pointers 45 interconnect the flight leg departures list 30 and the flight path departures list 35 to form a two-dimensional mapping of interdependencies between the two data structures. Each flight leg departure record 31 has a list of pointers 45 pointing to all flight path departure records 36 containing the flight leg departure 10 stored in the flight path definition field 37 of the flight path departure record 36. Similarly, each flight path departure record 36 has a list of pointers 45 pointing to all flight leg departure records 31 containing the flight leg departure 10 stored in the flight path definition field 37 of each flight path departure record 36. For simplicity, the data structures for these pointer lists are not shown in FIG. 3.
The data structure for the demand records list 38 stores the different fares and statistical parameters from the demand forecast for the corresponding flight path departure. The fares are stored in the booking class price 40 field in decreasing order. Two statistical parameters, mean and variance, are stored in the mean 41 and variance 42 fields, although further statistical parameters are feasible. Each flight path record 36 points to one demand records list 38 which contains as many demand records 39 for as many fares as required. For convenience, the booking class price 40 field will be referenced whenever a particular booking class price is referred to hereinbelow.
B. Method for Determining Marginal Values
In the described embodiment, different optimization functions can be employed in determining marginal values for seats on the flight leg departures based on assumptions that the demand is either deterministic or non-deterministic. It is critical that the optimization function employed generate a continuous demand curve, preferably as a function of marginal value (expressed in dollars) and supply (expressed in seats on the flight leg departure). Two optimization functions, a supply-demand balance and an expected marginal seat revenue (EMSR), are described herein; however, other optimization functions are feasible depending upon the characteristics of the particular embodiment, such as booking patterns, marginal value updating frequency and events that trigger reoptimization.
The basic control structure used to iteratively determine marginal values is identical regardless of the optimization function employed. This generic control structure is shown in FIGS. 4 and 5. A supply-demand balance optimization function is depicted in FIGS. 6 through 11 B. An EMSR optimization function is depicted in FIGS . 12 through 15. The iterative section common to both optimization functions will now be described.
FIG.4 is a flow diagram of a method using the MVS 16 for determining marginal values for use in the airline reservations system 14 of FIG. 2A. Information regarding flight leg departures, flight path departures and passenger value data are loaded into the MVS 16 from the airline revenue management system 15 (block 50). The internal data structures shown in FIG. 3, including the flight leg departures list 30, the flight path departures list 35 and the demand records list 38, are constructed for storing the received information (block 51 ). Marginal values 34 for each of the seats on the flight leg departures 31 are determined using an iterative function (block 52) as further described hereinbelow in FIG. 5. Upon completion of the iterative function, the marginal values are stored back to the airline revenue management system 15 (block 53). FIG. 5 is a flow diagram of an iterative function (block 52) for determining marginal values 34 for the flight leg departures 31 as stored (block 51) in the data structures of FIG. 3. This function is structured as a pair of nested control loops that sequentially determine a marginal value 34 for each flight leg departure 31 using a Gauss-Seidel iterative approach. The flight leg departures 31 and the flight path departures 36 are interdependent upon each other for puφoses of marginal value determination. The outer control loop (blocks 61-67) repeats the determination of marginal values 34 for all of the flight leg departures 31 until a convergence criterion is satisfied. In the described embodiment, convergence is generally attained in as few as 3-4 iterations, but almost always in fewer than 10 iterations resulting in a substantial decrease in processing time over the prior art. The inner control loop (blocks 62-66) sequentially determines a marginal value 34 for each of the flight leg departures 31.
The marginal value 34 for each of the flight leg departures 31 is initialized to 0 (block 60). A local variable maxjdiff is set to 0 (block 61). This variable stores the largest difference between current versus previous marginal value 34 out of all marginal values 34 determined during the current iteration of the outer control loop (blocks 61-67) and is used to determine convergence. A locally optimal marginal value 34 is evaluated for a seat on one of the flight leg departures 31 using a continuous optimization function (block 62). In the described embodiment, two continuous optimization functions, supply-demand balance and EMSR, are used as further described hereinbelow in FIGS. 6-1 IB and FIGS. 12-15, respectively.
The continuous optimization function returns a marginal value 34 for a seat on the current flight leg departure 31. The magnitude of change in the locally optimal marginal value 34 (obtained in block 62) is determined (block 63) as expressed by the equation: diff - \MVi - MV \ (1)
where diff is a local variable and MVi and MV^j are the current and previous marginal values
34, respectively, for the current flight leg departure 31. Dzj measures the change which occurred between the current marginal value 34 as calculated during the present iteration of the outer control loop (blocks 61-67) versus the previous marginal values 34 as calculated during the previous iteration. If diff is greater than max diff (block 64), max_diff is set to diff (block 65) since
Figure imgf000015_0001
the biggest change in marginal value that has occurred up through this iteration of the inner control loop (blocks 62-66). Otherwise, max diffremains unchanged (block 64).
If other flight leg departures 31 remain (block 66), that is, must be evaluated for a locally optimal marginal value 34, control returns to the top of the inner control loop (block 62-66) for further processing. Otherwise, if the last flight leg departure has been evaluated (block 66), the inner control loop (block 62-66) is exited. In the described embodiment, a convergence criterion is used in determining whether globally optimal marginal values 34 have been found. Consequently, the outer control loop (blocks 61-67) is performed for an indefinite number of iterations until the maximum difference (as stored in the local variable mαx_diff) between the current and previous marginal values 34 out of all of the flight leg departures 31 is less than the convergence criterion. In the described embodiment, a convergence criterion of 0.02 (corresponding to 2 cents) is used, although any other desired convergence criterion value could be used.
Thus, if mαx diff is less than convergence (block 67), control returns to the top of the outer control loop (block 61-67) for further processing. Otherwise, a globally optimal marginal value 34 has been obtained for each of the flight leg departures 31 (block 67) and the function returns.
A maximum iteration limit is used to prevent the function from running endlessly in the case of an error. If the iteration count exceeds the maximum iteration limit (block 68), the system will report the error condition of non-convergence (block 69) and return. In the described embodiment, a maximum iteration limit of 100 is used, although any other desired iteration limit could be used.
C. Supply-Demand Balance Optimization Function
FIG. 6 is a flow diagram of a supply-demand balance optimization function (block 62) as used by the iterative function of FIG. 5. Its puφose is to find a locally optimal marginal value 34 based on the assumption that the demand for seats is deterministic and that the optimal marginal value is that which substantially balances supply and demand.
The marginal value 34 for the current flight leg departure 31 is initialized to 0 (block 70). The demand for the current flight leg departure 31 is determined using a demand determination function that creates a demand curve as a function of marginal value 34 (shown in FIGS. 7A and 7B) as further described hereinbelow in FIG. 8. The difference between the supply of seats 44 available on the current flight leg departure 31 and the corresponding demand for seats (as returned by the determination function of FIG. 8) is determined (block 71). If the difference of supply 44 minus demand is greater than 0 (block 72), there are more seats available on the current flight leg departure 31 than in demand, that is, supply 44 exceeds demand, and the marginal value 34 remains at 0. The function then returns. Otherwise, if the difference of supply 44 minus demand is less than or equal to 0 (block 72), the demand determination function of
FIG. 8 is repeatedly called and the difference between supply 44 and demand taken until a marginal value 34 that makes supply 44 and demand equal is found (block 73). The function then returns. The operation of this function will now be described with reference to FIGS. 7A and 7B which show graphs of flight leg departure demand curves 81 and 85, respectively. The graphs of FIGS. 7A and 7B illustrate the two cases selected by the decision block 72 of FIG. 6. The x-axis represents marginal values expressed in dollars and the y-axis represents seats on the current flight leg departure 31. The supply of seats 44 (as indicated by line 80 in FIG. 7A and by line 84 in FIG. 7B) is provided by the airline revenue management system 15 as an input parameter. The demand curve (as indicated by line 81 in FIG. 7A and by line 85 in FIG. 7B) is generated by the flight leg departure demand determination function of FIG. 8.
By way of example, assume that a marginal value 34 for the ORD-JFK flight leg departure 31 is being determined with a supply of seats 44 for this flight leg departure equalling 10. In FIG. 7A, the situation where the difference between supply 44 minus demand is greater than 0 is shown. At point 79, the marginal value 34 equals 0, supply 44 equals 10 and demand equals 8. Thus, the difference 82 between supply 80 and demand 81 equals 2 and is therefore greater than 0. This situation indicates that the supply 44 exceeds the demand and any non-zero marginal value is therefore meaningless. In such cases, a marginal value 34 equaling 0 will be returned.
In FIG 7B, the situation where the difference between supply 44 minus demand is less than or equal to 0 is shown. At point 83, the marginal value 34 equals 0, supply 44 equals 10 and demand equals 14. Thus, the difference 86 between supply 84 and demand 85 equals -4 and is therefore less than 0. This situation indicates that the demand exceeds the supply 44 and a non¬ zero marginal value is required. Thus, the intersection 87 between supply 84 and demand 85 must be found. In the described embodiment, a Van Wijngaarden-Dekker-Brent search method, such as described in W. H. Press et al., Numerical Recipes in C-The Art of Scientific Computing, pp. 267-69, Cambridge University Press (1988), the disclosure of which is incoφorated herein by reference, is employed to search the demand curve 85 (block 73) using the flight leg departure demand determination function of FIG. 8 as an input parameter along with the supply 44. This function is used to generate candidate demand points 88A, 88B along the demand curve 85 as the Van Wijngaarden-Dekker-Brent search method searches for the intersection 87. In effect, the search moves along the x-axis using a candidate marginal value 34 at each candidate demand point 88A, 88B and the demand for seats at each candidate demand point 88A, 88B is compared to the supply 44. Once the intersection 87 is found, the marginal value 34, here, equalling $386, is obtained as a point 89 along the x-axis. FIG. 8 is a flow diagram of a flight leg departure demand determination function (blocks
71 and 73) as used by the supply-demand optimization function of FIG. 6. Its puφose is to generate the demand curve 81, 85 for the current flight leg departure 31 as a function of a candidate marginal value 34. The demand for the current flight leg departure 31 is initialized to 0 (block 90). The demand for a flight path departure 35 containing the current flight leg departure 31 is determined by a flight path departure demand determination function (block 91 ) as further described hereinbelow in FIG. 9. The value this function returns represents the demand for the flight path departure 36 at the candidate marginal value 34 for the current flight leg departure 31 and the current marginal values 34 for all other flight leg departures 31 contained in the flight path departure 36. The demand for the flight path departure 36 is added to the demand for the current flight leg departure 31 (block 92). If there are more flight path departures 36 that contain the current flight leg departure 31 (block 93), the control loop (blocks 91-93) is repeated until all flight path departures 36 that contain the current flight leg departure 31 have been processed. In effect, the control loop (blocks 91-93) follows every pointer 45 pointing from a flight leg departure record 31 to a flight path departure record 36 in a one-to- many relationship. When no more flight path departures 36 remain (block 93), the function returns.
FIG. 9 is a flow diagram of a flight path departure demand determination function (block 91) as used by the function of FIG. 8. Its puφose is to determine the demand for the current flight path departure 36 using the total of the marginal values 34 of the flight leg departures 31 contained in the flight path departure 36. The total marginal value for the current flight path departure 36 is initialized to 0 (block 100). The marginal value 34 associated with one of the flight leg departures 31 contained in the current flight path departure 36 is added to the total marginal value (block 101). If other flight leg departures 31 contained in the flight path departure 36 remain (block 102), control returns to the top of the control loop (blocks 101-102). In effect, the control loop (blocks 101-102) follows every pointer 45 pointing from a flight path departure record 36 to a flight leg departure record 31 in a one-to-many relationship. When the marginal values 34 for all of the flight leg departures 31 contained in the flight path departure 36 have been added to the total marginal value (block 102), the demand for the flight path departure 36 is determined by a flight path departure demand search function (block 103) using the total marginal value as further described hereinbelow in FIG. 10. The function then returns.
FIG. 10 is a flow diagram of the flight path departure search function (block 103) used by the function of FIG. 9. Its puφose is to find points on a flight path departure demand curve
121 (shown in FIG. 1 IA) that bracket the supply and to perform a linear inteφolation of the demand curve 121 for the flight path departure 36 as a function of the total marginal value. The search and linear inteφolation will be explained with reference to FIG. 11 A which shows a graph of the flight path departure demand curve 121. This curve is represented by an additional data structure (not shown) used by the supply-demand balance optimization function (shown in
FIG. 6) and is created during the construction of the internal data structures in block 51 of FIG.
4.
In the graph of FIG. 11 A, the x-axis represents the price of the current flight path departure 36 expressed in dollars and the y-axis represents the demand expressed in seats. Each flight path departure record 36 points to an associated flight path departure demand curve 121 which is constructed from the demand record list 38.
The construction, by way of example, of the flight path departure demand curve 121 is accomplished by the following procedure. It is critically important that the demand curve 121 be continuous as guaranteed by the following procedure. Starting with the first demand record
39 on the demand record list 38, that is, with the demand record 39 storing the highest booking class price 40, points of the form (price, demand) are added to the demand curve list 38. The first point in the example is:
(BCP 0)
where BCP j is the booking class price 40 of the first demand record 39. Points are inserted onto the demand curve 121 of the form:
(BCPj, cumulative jneaή)
Figure imgf000018_0001
where BCPj is the booking class price 40 of the successive demand records i and cumulative mea is the accumulation of the mean demand 41 using the formula: cumulative mean + = m
Figure imgf000018_0002
ean
where mea ^j is the mean demand of the demand record 39 before . After reading the last demand record 39, one more point is added:
(0, cumulative nean) where cumulative mean includes the mean demand of the last demand record 39 in the demand record list 38. Once the demand curve 121 is constructed from points in the demand record list 140, additional points are inserted between each of the existing points in the demand curve 121. The form of the inserted point is:
(price;, demand;) /^
where price ,- and demand^ are given by the formulas: pricei = price itl + (price ^ - pncei+l) . * I rFr, (5)
and demand - demand; + (demand; +] - demand; {) * IF ^)
where pricei+j and demandi+j are the price and demand of the point on the demand curve following the inserted point and price ;_j and demand^ j are the price and demand of the point on the demand curve preceding the inserted point. IF is a parameter called the inteφolation factor. In the described embodiment, the value of the inteφolation factor is 0.9, but any other value greater than 0.5 and less than 1.0 could be used depending on the needs of the application.
FIG. 1 IB is a table showing, by way of example, the results of the demand curve construction using the demand records 39 (shown in FIG. 3). The odd numbered points (120A, 120C, 120E, 120F, 120G, 1201, 120K) were inserted using formula (2). For example, point 120E has a price of $150 which comes from the third demand record 39 in the demand record list 38 (having a booking class price 40 of $150) and a demand of 2 + 5 = 7 which is the accumulated demand of the first two demand records 39 in the demand record list 38. The even numbered points (120B, 120D, 120F, 120H, 120J) were calculated with formulas (4), (5) and (6). For example, point 120D is calculated as follows:
priceUQD = 15° + ((400 " 150) x °-9) = 375
and demandγ2Q£) = 2 + ((7 - 2) x 0.9) = 6.5 The points 120A, 120B, 120C, 120D, 120E, 120F, 120G, 120H, 1201, 120J, 120K in FIG. 11B are graphed as shown in FIG. 1 IA. The prices are shown on the x-axis and are labelled 1 19A, 119B, 1 19C, 119D, 119E, 119F, 1 19G, 119H, 1191, 119J, 1 19K.
The graph of FIG. 11 A also illustrates the search and linear inteφolation of the flight path departure demand curve 121 performed by the flight path departure search function of FIG. 10. The formula for inteφolated demand is:
(TMV - pric&) interpolated_demand = demand; φriceΪ - price
(pric& - TMV) ^
+ demand - ψricei χ - price;)
where price; and demand; are the price and demand of the point with a price greater than the total marginal value, TMV, and price ;_j and demand ;_} are the price and demand of the point with a price less than or equal to TMV.
The function depicted in FIG. 10 starts with a search starting from 0 for the first demand point with a price greater than the total marginal value (blocks 110). If no such demand point is found (block 11 1), the function terminates and returns a value of 0 (1 13). FIG. 1 1 A shows, by way of example, a total marginal value equalling $260, as indicated at point 122. The first point with a price greater than $260 is (375, 6.5). The point (375, 6.5) and the previous point (150, 7.0) are inteφolated (block 112) by applying formula (5) as follows:
(260 - 150) (375 - 260)
6.5 x 7.0 6.76 (375 - 150) (375 - 150)
The inteφolation is shown graphically as the intersection point 124 of the line 123 and the total marginal value 122 between the points 120d and 120e. The resulting demand value 125 is calculated and the function returns. D. Expected Marginal Seat Revenue (EMSR) Optimization Function
FIG. 12 is a flow diagram of an EMSR optimization function (block 62) as alternatively used by the iterative function of FIG. 5. Its pmpose is to find a locally optimal marginal value 34 based on the assumption that the demand for seats is uncertain, that is, non-deterministic. This assumption is commonly used in leg-based airline yield management systems, such as described in P. Belobaba, Application of a Probabilistic Decision Model to Airline Seat
Management Control, 37 Operations Research, pp. 183-97 (1989) and R.D. Wollmer, An Airline Seat Management Model for a Single Leg Route When Lower Fare Classes Book First, 40 Operations Research, pp. 26-37 (1992), the subject matters of which are incoφorated herein by reference. The EMSR approach uses values known as protection levels in a similar way that demand is used in the supply-demand balance function. The EMSR method also uses a new data structure called a demand point list 140 (shown in FIG. 14B) and the concept of an accumulated demand point which will be described in the discussion of FIG. 12. The EMSR optimization function (shown in FIG. 12) will now be described. A demand point list 140 (shown in FIG. 14B) is created for the current flight leg departure
31 using a function (block 130) further described hereinbelow in FIG. 14A.
An accumulated demand point is initialized in block 131. An accumulated demand point consists of six local variables: accumulated mean 152, accumulated net leg revenue 153, accumulated variance 154, average net leg revenue 155, protection level 156 and next net leg revenue 157, several values of which are shown in FIG. 14C. The accumulated demand point is initialized by setting the accumulated mean 152, accumulated net leg revenue 153 and accumulated variance 154 to 0 (block 131). These variables are used for storing accumulated totals derived from the demand points in the demand point list 140 for the current flight leg departure 30. The average net leg revenue 155 and the protection level 156 are also initialized to 0. The initial value of the next net leg revenue 157 is set to the value of the net leg revenue 142 of the first demand point 141 A in the demand point list 140.
The first accumulated demand point 161 A is plotted on the graph shown in FIG. 13 using the next net leg revenue 157 on the x-axis and the protection level 156 on the y-axis. The remaining accumulated demand points 161B, 161C, 161D are iteratively determined using a control loop (blocks 132-137) that sequentially processes each demand point in the demand point list 140 starting with the point with the highest average net leg revenue 142. During each successive iteration of the control loop (blocks 132-137), the accumulated mean 152, accumulated net leg revenue 153 and accumulated variance are updated (block 132) based on the next demand point in the demand point list 140. The updated accumulated mean 152 is determined as expressed by the equation: accumulatedjnean += mean;
where mean} is the mean 143 for the next demand point in the demand point list 140. The updated accumulated net leg revenue (NLR) 153 is determined as expressed by the equation: accumulated _NLR += NLR; x mean; where NLR; is the net leg revenue 142 and mean; is the mean 143 for the next demand point in the demand point list 140. The updated accumulated variance is determined as expressed by the equation: accumulated _variance += var; Ø^
where var; is the variance 144 for the next demand point in the demand point list 140. The average net leg revenue (NLR) 155 is determined by dividing the accumulated net leg revenue 153 by the accumulated mean 152 (block 132) as expressed by the equation:
average _N xrLrRn = accumulated = NLR π v11n accumulated ' mean where accumulated mean was calculated in equation (8) and accumulated _NLR was calculated in equation (9). This value represents a weighted average of the net leg revenues 142 for each demand point from the top of the demand point list 140 up through the current demand point. A protection level 156 is determined for the accumulated demand point using a function (block 133) further described hereinbelow in FIG. 15. Finally, the value of the next net leg revenue 157 is set to the value of the net leg revenue 142 of the next demand point in the demand point list
140. If there are no more demand points in the demand point list 140, the value of the next net leg revenue 157 is set to 0. If all of the demand points in the demand point list 140 have been processed (block 135), the marginal value 34 is set to the net leg revenue 142 of the last demand point in the demand point list 140 (block 136) and the function returns. Otherwise, if more demand points remain (block 135) and the difference of supply 44 minus protection level 155 is greater than 0 (block 137), control continues at the top of the control loop (blocks 132-137) for processing of the next demand point.
Otherwise, if the difference of supply 44 minus protection level 156 is less than or equal to 0 (block 137), the marginal value 34 is determined by using linear inteφolation between the last two accumulated demand points (block 138) as expressed by the equation:
Figure imgf000022_0001
where NNLRj and NNLR;_j are the next net leg revenues 157 of the last two accumulated demand points, supply is the supply of seats 44, PL; and PL;_ are the protection levels 156 for the last two accumulated demand points and MVis the marginal value 34. The linear interpolation will be explained with reference to FIG. 13 which shows a graph of a flight leg departure protection level curve generated by the function of FIG. 12. The x-axis represents the next net leg revenue 157 expressed in dollars and the y-axis represents the protection level 156 expressed in seats. Accumulated demand points 161 A, 161B, 161C, 161D, 161E are graphed as a function of their respective next net leg revenue 157 points 160A, 160B, 160C, 160D, 160E.
By way of example, assume that a marginal value 34 for the ORD-JFK flight leg departure 31 is being determined with a supply of seats 44 for this flight leg departure equalling 10. Protection levels are calculated as illustrated, by way of example, in the table of FIG. 14C. Each row 151 A, 15 IB, 151C, 15 ID corresponds to an accumulated demand point as determined during each successive iteration of the control loop (blocks 132-137). Each column corresponds to an accumulated mean 152, accumulated net leg revenue 153, accumulated variance 154, average net leg revenue 155, protection level 156 and next net leg revenue 157. Row 151 A represents the initialized value of the accumulated demand point. Row 151 B represents values determined during the first iteration of the control loop (block 132-137), row 151C during the second iteration and row 151 D during the third iteration. Using row 151 C as an example, the accumulated mean 152 is calculated using equation (8) as follows:
2 + 4 = 6
The accumulated net leg revenue 153 is calculated using equation (9) as follows:
(365 x 2) + (322 x 4) = 2018 The accumulated variance 154 is calculated using equation (10) as follows:
1 + 3 = 4 The average net leg revenue 155 is calculated using equation (1 1) as follows:
≡± - 336
6
The protection level 156 is determined by a function (block 134) which is described further hereinbelow in FIG. 15. The next net leg revenue 157 is 265 which is the value of the net leg revenue 142 of the third demand point 141 C on the demand point list 40. In this example, the result of the protection level calculation is 7.
Starting from the first accumulated demand point 151 A, protection levels 156 are calculated and compared to supply 44. The first accumulated demand point 151 A has a protection level 156 of 0 which is less than the supply 44 of 10. This first point is plotted as point 161 A in the graph of FIG. 13. The second accumulated demand point 151 A has a protection level 156 of 3 which is also less than the supply 44 of 10. This second point is plotted as point 16 IB in the graph of FIG. 13. The third accumulated demand point 151C has a protection level 156 of 7 which is also less than the supply 44 of 10. This third point is plotted in the graph of FIG. 13 as point 161C. The fourth accumulated demand point 15 ID has a protection level 156 of 13 which is larger than the supply 44 of 10 which is the first demand point at which the difference of supply 44 minus protection level 156 is less than 0 (block 137). The difference of supply 44 minus protection level 156 is 10 - 13 = -3. Since -3 is less than 0 (block 137), an inteφolated marginal value 34 is determined between the accumulated demand points 161C and 161D by equation (12) as follows:
$265 x <13 - 10> + $205 x <10 - 7> = $235 (13 - 7) (13 - 7)
Thus, the marginal value 33 is $235. The intersection 162 between the supply 44 (as indicated by line 163) and the inteφolated demand (as indicated by line 164) falls at the point 165 on the x-axis where NNLR equals 235, the inteφolated marginal value 34. Once this marginal value has been found (using equation (12)), the function returns. FIG. 14A is a flow diagram of a demand point list creation function (block 130) as used by the function of FIG. 12. A flight path departure 36 containing the current flight leg departure 31 is found by using the pointers 45 from the flight path departures 36 to the flight leg departures 31 (shown in FIG. 3). The marginal values 34 for all of the flight leg departures 31 contained in the flight path departure 36 except the current flight leg departure 31 are accumulated into a temporary local variable (block 151 ) as expressed by the equation:
Figure imgf000024_0001
where MV.- is the marginal value 34 for a flight leg departure 31 contained in the flight path departure 36 except the current flight leg departure 31.
When a marginal value for a particular flight leg departure 31 is being determined, the EMSR optimization function takes the net revenue, that is, booking class price 40, and subtracts off the marginal values for all other flight leg departures 31 occurring in the current flight path departure 36 to obtain the net leg revenue 142 for the particular flight leg departure 31 being optimized. The net leg revenue 142 for the next point on the demand curve for the current flight leg departure 31 is determined (block 152) as expressed by the equation:
Figure imgf000024_0002
where BCP; is the booking class price 40 for the current flight path departure 36 and MV; is the marginal value 34 for a flight leg departure 31 contained in the flight path departure 36 except the current flight leg departure 31. The net leg revenue 142 is stored in the demand point list 140 as further described hereinbelow.
If the net leg revenue 142 is greater than 0 (block 153), a new demand point is created and inserted into the demand point list 140 which is sorted in decreasing net leg revenue order (block 154). For example, demand points for booking class prices 40 of $500, 400 and $ 150 are shown in FIG. 14B as having been inserted into the demand point list 140. Otherwise, if the net leg revenue is less than 0 (block 153), the current iteration over the points on the demand curve is terminated since any further points would also have net leg revenues less than 0. For example, demand points for booking class prices 40 of $ 130 and $ 120 will not be inserted into the demand point list 140. If the net leg revenue is still greater than 0 and more demand points corresponding to booking class prices 40 remain (block 155), control returns to the top of the inner control loop (block 152- 155) for processing of the next demand point. Otherwise, if no further demand points remain (block 155) and more flight path departures 36 remain (block 156), control returns to the top of the outer control loop (blocks 150-156) for processing of the next flight path departure 36. This process will continue to add points to the demand point list 140. If all flight path departures have been processed (block 156), the function returns.
FIG. 14B is a data structure for a demand point list 140 as generated by the demand point list creation function of FIG. 14A. One demand point list 140 is created for each flight leg departure 31 that is to be optimized. The data structure for the demand point list 140 comprises demand point records 141 A, 14 IB, 14 IC, 141D, 141E, 141F containing net leg revenue 142, mean 143 and variance 144 fields. The net leg revenue 142 field stores the net leg revenue for the demand point corresponding to a booking class price 40 as calculated with equation (14) (block 152). The mean 41 and variance 42 for each demand record 39 are copied into the demand point list 140 as mean 143 and variance 144, respectively. For convenience, the net leg revenue 142 field will be referenced whenever a particular net leg revenue is referred to hereinbelow.
FIG. 14B shows, by way of example, a demand point list 140 for the ORD-JFK flight leg departure 31. The first entry in this list, entry 141 A, corresponds to the first demand record 39 in the demand records list 38 for the flight path departure 10 ORD-JFK-LHR-CDG as shown in FIG. 3. The first demand point encountered in the associated set of demand records 39 corresponds to the booking class price 40 of $500. Using equation (14), the net leg revenue 142 is: BCPλ -
Figure imgf000026_0001
- MVLHR_CDG = $500 - $70 - $65 = $365
where BCP 1 is the first booking class price 40 of $500 for the ORD-JFK-LHR-CDG flight path departure 36 and Vjp^^jj^ and MV HR-CDG are tne rnarginal values 34 for the JFK-LHR and LHR-CDG flight leg departures 31, respectively. Entries 141 C and 14 IF are also taken from the flight path departure 10 ORD-JFK-LHR-CDG as shown in FIG. 14B. The other entries in the demand point list 140, entries 14 IB, 141D, 14 IE, are taken from other flight path departures containing the ORD-JFK flight leg departure 10. The net leg revenue 142 value of $365 is stored in the demand point record 141 A. Similar calculations apply to the remaining demand point records 141B, 141C, 141D, 141E. FIG. 15 is a flow diagram of a protection level determination function (block 134) as used by the function of FIG. 12. Its puφose is to determine a protection level 156 for the current flight leg departure 31 being optimized as a function of the accumulated demand point. The square root of the accumulated variance 154 is taken and stored in a local variable std dev (block 180). The cumulative inverse normal of: π _ NNLR. ANLR is determined and stored in a local variable N (block 181). ANLR is the average net leg revenue 155 and NNLR is the next net leg revenue 157 of the accumulated demand point. In the described embodiment, the cumulative inverse normal is calculated using a numerical approximation, such as described in C. Hastings, Approximations for Digital Computers, p. 192, Princeton University Press (1955), the disclosure of which is incoφorated herein by reference. The protection level 156 is determined (block 182) as expressed by the equation:
PL = M + N stdjdev (15) where M is the accumulated mean 152 of the accumulated demand point and N and std_dev are defined as described above. The function then returns.
IV. Generic Marginal Value Determination Method Using Class Libraries As a further embodiment, the MVS 16 can be structured as a generic class library using an object-oriented programming language. In the described embodiment, the C++ programming language is used; however, any object-oriented programming language can be employed. The discussion herein adopts the terminology used by the C++ programming language, but is not meant to be restrictive as to the underlying concepts. FIG. 16 is a class diagram of a class library 189 for a method for determining marginal values for use in a perishable resource revenue management system. The class library 189 is structured into 3 layers: a generic layer 190, an industry-specific layer 191 and a client-specific layer 192. The generic layer 190 is used for determining marginal values for generic resources. In the described embodiment, a perishable resource problem is solved. The industry-specific layer 191 creates a set of derived classes for a particular industry. In the described embodiment, derived classes for an airline, a hotel and a rental car agency are used, although other industries are feasible. The client-specific layer 192 creates a set of derived classes for a particular client relating to the corresponding industry-specific class.
The generic layer 190 defines a base abstract resource class 193 and a perishable resource management problem (RMP) class 194. The resource class defines an interface for derived classes in the industry-specific layer 191 for a flight leg departure resource class 195 A, a room night resource class 195B and a rental car day resource class 195C. Other derived resource classes are feasible. The resource class 193 comprises two pure virtual functions supplyO and demandQ (not shown). As further described hereinbelow, the functions defined in portions of the class definitions for the industry-specific layer 191 and the client-specific layer 192 override the pure virtual functions defined in the generic layer 190.
The perishable RMP class 194 is also in the generic layer 190 and defines an interface for derived abstract classes in the industry-specific layer 191 for solving an airline resource management problem 196A, a hotel resource management problem 196B and a rental car resource management problem 196C. Other derived abstract classes are feasible. The line connecting the perishable RMP 194 with the resource class 193 indicates that the RMP has many resources to manage.
The client-specific layer 192 comprises a set of derived classes defining the particular data manipulation functions used by a particular client's implementation to load and save data in the client's revenue management system 15 and to map the data into the generic data structures. For instance, the airline #1 resource management problem class 197 A contains those loading, saving and mapping functions needed to utilize the generic data structures and methods for determining marginal values for airline #1. This likewise applies to the airline #2 resource management problem 197B, the hotel #1 resource management problem 198A, the hotel #2 resource management problem 198B, the company #1 resource management problem 199A and the company #2 resource management problem 199B classes. Other derived classes under industry-specific layer 191 class are feasible. The resource class 193 defines a base abstract class for a generic resource for which marginal values will be determined. The particular type of resource is defined in the derived classes defined in the industry-specific layer 191. There is a one-to-one correlation between the classes derived from the resource class 193 and the specific abstract classes derived from the perishable RMP class 194. The flight leg resource class 195 A corresponds to the airline resource management problem class 196A. The same applies to the room night resource class 195B and the hotel resource management problem class 196B and the rental car resource class 195C and the rental car resource management problem class 196C. The particular type of resource being solved is germane to the industry-specific layer 191 and consequently, it is unnecessary to define each resource abstractly. In other words, a flight leg departure is, for example, the common resource used by the airline resource management problem 196A irrespective of the particular airline. FIG. 17 is a class diagram of an instantiation 200 of the class library 189 of FIG. 16 for an airline reservations system. The base abstract perishable RMP class 194 defines a generic function solveø which uses the supplyQ and demandø functions of the resource class 193 to solve for generic marginal values. This abstract class has a derived airline RMP class 196A which defines a set of data structures as shown in FIG. 3 for an airline-specific implementation. The airline RMP class 196A has a derived airline # 1 RMS class 197A which contains two airline
#1 specific functions, loadø and storeø. These functions embody the necessary functionality for loading flight leg, flight path and passenger value data from and storing marginal values to airline # l's airline revenue management system 15 (shown in FIG. 2A).
The solveø function of the RMP class 194 is further described hereinbelow beginning in FIG. 18. The resource class 193 contains a pair of pure virtual functions supplyø and demandø that are overridden by the particular supplyø and demandø routines used in the instantiated problem, that is, by the functions contained in the particular industry-specific layer 191 class.
FIG. 18 is a flow diagram of a method for generically determining marginal values for use in a client-specific perishable resource management system. Data is loaded using the client- specific loadø function (block 210). As described hereinabove, the loadø function is defined in the client-specific layer 192 as a derived class member for a particular client. The loaded data is mapped into the problem space for the industry-specific layer 191 and generic layer 190 (block 21 1). This mapping is accomplished through inheritance whereby the parent and grandparent classes, that is, the industry-specific layer 191 derived abstract classes and generic layer 190 abstract class, instantiate client-specific objects to industry-specific and finally generic objects. Generic marginal values are then determined using the generic solveø function, such as shown in the perishable RMP class 194 (block 212) as further described hereinbelow in FIG. 19. The generic marginal values are mapped back into the client-specific problem space, that is, to the particular client-specific layer 192 class (block 213). Finally, the marginal values as mapped from generic marginal values to client-specific marginal values are stored using the storeø function contained in the client-specific layer 192 class (block 214).
FIGS. 19-26 are flow diagrams of an iterative function for determining generic marginal values for use in a perishable resource management system. The operations described in these figures are the same as those previously described for an airline-specific implementation, although the two implementations operate in different problem spaces. In particular, the program variables used by the generic class library 189 are presented in terms of perishable resources rather than seats on flight leg departures. The correlation between the airline-specific functions and the generic class library functions are shown below in Table II. FIGS. 10 and 23 are identical, so there is no entry in Table II for these figures. Note that identical reference numerals are used for the flow diagrams in FIGS. 5-6, 8-10, 12 and 14A-15 as in FIGS. 19-26, respectively, except that an apostrophe sign has been added to the reference numerals in the latter. Therefore, it will be understood that the same portions of the Detailed Description with respect to FIGS. 5-6, 8-10, 12 and 14A-15 (pertaining to the airline-specific method) also apply to FIGS. 19-26 (pertaining to the generic class library method) with exceptions as noted in Table II for program variable names.
Table II
Airline-Specific Generic Class Library
FIG. Block Variable FIG. Block Variable Name Name
5 60 flight leg 19 60' resources departures
62 seat on one of 62' resources the flight leg departures
66 flight leg 66' resource departure
6 70 flight leg 20 70' resource departure
71 flight leg 70' resource departure
8 90 flight leg 21 90' resource departure Table II
Airline-Specific Generic Class Library
FIG. Block Variable FIG. Block Variable Name Name
91 flight path 91* composite departure resource flight leg resource departure
92 flight path 92' composite departure resource flight leg resource departure
93 flight path 93* composite departures resources
100 flight path 22 100' composite departure resource
101 flight leg 101' resources departures flight path composite departure resource
102 flight leg 102' resources departures
103 flight path 103' composite departure resource 2 130 flight leg 24 130' resource departure 4A 150 flight path 25 150' composite departure resource flight leg resource departure
151 flight leg 151' resources departures flight path composite departure resource flight leg resource departure Table II
Airline-Specific Generic Class Library
FIG. Block Variable FIG. Block Variable Name Name
152 net leg revenue 152' net resource revenue flight path composite departure resource
154 net leg revenue 154' net resource revenue
156 flight path 156* composite departure resources
15 182 average net leg 26 182' average net revenue resource revenue
ANLR ANRR
183 net leg revenue 183' net resource revenue
NLR NRR
15 184 NLR 184 NRR
ANLR ANRR
While various embodiments of the invention have been particularly shown, it will be understood by those skilled in the art that the various changes in form and detail may be made without departing from the scope and spirit of the present invention, wherein:

Claims

WHAT IS CLAIMED IS:
1. A method using a marginal value system (16) for determining marginal values
(34) for perishable resources (31), comprising the steps of: loading data (50) for the perishable resources (31 ) and composite resources (36) from a perishable resource revenue management system (15) into the marginal value system (16); constructing (51) internal data structures (30, 35, 38) for linking each of the perishable resources (31 ) to their associated composite resources (36) and for linking each of the composite resources (36) to their associated perishable resources (31); determining (52) the marginal values (34) for the perishable resources (31 ) using a continuous optimization function (FIGS. 20 and 24) using interdependencies among the perishable resources (31) and the composite resources (36) in the internal data structures (30, 35, 38); and storing (53) the marginal values (34) from the marginal value system (16) into the perishable resource revenue management system (15).
2. A method according to claim 1, the step of determining further comprising the steps of: evaluating (62) a locally optimal marginal value (34) for the perishable resources (31) using the continuous optimization function (FIGS. 20 and 24) on each of the perishable resources (31 ); and performing (66) the step of evaluating (62) in successive iterations until a globally optimal marginal value (34) is evaluated for the perishable resources (31) based on a convergence criterion (67).
3. A method according to claim 2, further comprising the steps of: monitoring (63, 64, 65) a maximum difference between such locally optimal marginal values (34) evaluated during a current iteration and such locally optimal marginal values (34) evaluated during a previous iteration; comparing (67) the maximum difference and the convergence criterion upon completion of the current iteration whereby convergence is satisfied when the maximum difference is less than the convergence criterion.
4. A method according to claim 1, the step of determining further comprising the steps of: evaluating (62) a locally optimal marginal value (34) for one of the perishable resources (31) using the continuous optimization function (FIGS. 20 and 24); and performing (66) the step of evaluating (62) in successive iterations for another of the perishable resources (31) until a locally optimal marginal value (34) has been evaluated for all of the perishable resources (31).
5. A method according to claim 4, further comprising the steps of: determining (62) the absolute difference between such locally optimal marginal value (34) evaluated for one of the perishable resources (31) during a current iteration and such locally optimal marginal value (34) evaluated for the resource during a previous iteration; comparing (63) the absolute difference to a maximum difference between such locally optimal marginal value (34) evaluated for another of the perishable resources (31) during the current iteration and such locally optimal marginal value (34) evaluated for the resource during the previous iteration whereby the maximum difference equals or exceeds all such absolute differences between such locally optimal marginal values (34) evaluated for all other perishable resources (31) during a current iteration and such locally optimal marginal values (34) evaluated for the resources during a previous iteration; and replacing (65) the maximum difference with the absolute difference when the absolute difference is greater than the maximum difference.
6. A method according to claim 1 , further comprising the steps of: loading (50) resource value data comprising a supply (44) of the perishable resources (31) and a set of resource prices (40) from the perishable resource revenue management system (15) into the marginal value system (16); and constructing (51) an internal data structure (38) for linking each of the composite resources (36) to their associated set of resource prices (40) and for linking each of the perishable resources (31 ) to their associated supply (44).
7. A method according to claim 6, whereby the continuous optimization function is a deterrninistic optimization function, the step of determining (52) further comprising evaluating (62) locally optimal marginal values (34) based on a certain demand (81, 85) for each of the composite resources (36).
8. A method according to claim 1, whereby the deterministic optimization function is a supply-demand balance optimization function (FIG. 20), further comprising the step of: searching (73) for a marginal value (34) for one of the composite resources (36) whereby the supply (44) substantially equals the demand for the one composite resource (36).
9. A method according to claim 8, further comprising the steps of: determining (71) the difference between the supply (44) and the certain demand (81, 85) for the one resource (36); and setting (70) the marginal value (31) for the one resource (36) to indicate that the supply (44) exceeds the demand when the difference is positive (72).
10. A method according to claim 8, further comprising the step of: determining (71 , 73) the certain demand (81 , 85) for the one perishable resource
(31) based on the marginal values (34) for each other of the perishable resources (3 1 ) contained in each of the composite resources (36) containing the one perishable resource (31 ).
1 1. A method according to claim 10, further comprising the steps of: determining (91) a composite resource demand for each of the composite resources (36) containing the one perishable resource (31); and adding (92) the composite resource demand for each of the composite resources (36) to the certain demand (81, 85) for the one perishable resource (31).
12. A method according to claim 1 1, further comprising the steps of: adding (101) the marginal value (34) for each of the perishable resources (31 ) contained in one of the composite resources (36) to a total marginal value; and determining (103) the composite resource demand for the one composite resource (36) using the total marginal value.
13. A method according to claim 12, whereby each of the set of resource prices (40) comprises a corresponding demand point (120A, 120B, 120C, 120D, 120E) on a demand curve, further comprising the steps of: searching (110) for the first demand point on the demand curve (1 0 A, 120B, 120C, 120D, 120E) corresponding to a resource price (40) that exceeds the total marginal value; determining (112) a linear average (123) between the first demand point (120D) and a second demand point (120C) previous to the first demand point (120D); and determining (113) the composite resource demand based on an intersection of the supply (44) and the linear average (123).
14. A method according to claim 6, whereby the continuous optimization function is a non-deterministic optimization function, the step of determining (52) further comprising evaluating (62) locally optimal marginal values (34) based on an uncertain demand (161 A, 161B, 161C, 161D) for each of the composite resources (36).
15. A method according to claim 14, whereby the continuous optimization function is a non-deteiministic optimization function based on a supply of each of the perishable resources (31) and an uncertain demand for the composite resources.
16. A method according to claim 15, whereby the non-deterministic optimization function is an expected marginal resource revenue (EMRR) optimization function (FIG. 24), further comprising the steps of: searching (138) for a marginal value (34) for one of the composite resources (36) whereby the supply (44) substantially matches a protection level (162) for the one composite resource (36).
17. A method according to claim 16, further comprising the step of: loading (50) resource value data further comprising a set of means (41) and a set of variances (42) from the perishable resource revenue management system (15) into the marginal value system (16) whereby the set of means (41) and the set of variances (42) correspond to the set of resource prices (40); and constructing (51) an internal data structure (38) for linking each of the composite resources (36) to their associated set of means (41) and set of variances (42).
18. A method according to claim 16, further comprising the steps of: creating (130) a demand point list (140) for the one perishable resource (31) containing a set of demand points (160A, 160B, 160C. 160D) corresponding to each of the set of resource prices (40); determining (132) an accumulated mean (152), an accumulated net leg revenue (153) and an accumulated variance based on the set of resource prices (40), the set of means (41 ) and the set of variances (42) for each demand point in the demand point list (140); determining (133) an updated average net resource revenue (154) based on the accumulated net leg revenue (153) and the accumulated mean (152); and determining (134) the protection level (162) for each of a set of accumulated demand points (161 A, 161B, 161C, 161D) using the accumulated mean (152), the accumulated variance and the average net leg revenue (154) for each demand point (160A, 160B, 160C,
160D) in the demand point list (140).
19. A method according to claim 18, whereby the demand point list (140) is determined, further comprising the steps of: accumulating (151) the marginal values (34) for all of the perishable resources
(31) in a composite resource (36) containing the one perishable resource (31) except for the marginal value (31) for the one composite resource (34) for each of the set of resource prices (40); determining (151) a net leg revenue (142) for each demand point (160A, 160B, 160C, 160D) in the demand point list (140) using the accumulated marginal values (34); and creating (154) a new demand point (160A, 160B, 160C, 160D) when the net leg revenue (142) is positive (153).
20. A method according to claim 19, further comprising the steps of: setting (152) the net leg revenue (142) to the difference of the corresponding resource price (40) minus the accumulated marginal values.
21. A method according to claim 18, further comprising the steps of: determining (132) the accumulated mean (152) comprising a summation of each mean in the set of means (41) for each of the set of demand points (160A, 160B, 160C, 160D); determining (132) the accumulated net leg revenue (153) comprising a summation of each of the set of resource prices (40) multiplied by each of the means in the set of means (41) for each of the set of demand points (160A, 160B, 160C, 160D); and determining (132) the accumulated variance comprising a summation of each variance in the set of variances (41) for each of the set of demand points (160A, 160B, 160C, 160D).
22. A method according to claim 18, further comprising the steps of: determining (133) the updated average net resource comprising the quotient of the accumulated net leg revenue (153) divided by the accumulated mean (152).
23. A method according to claim 18, further comprising the steps of: determining (181) a standard deviation equalling a square root of the accumulated variance; determining (183) an inverse cumulative normal of the equation:
(1 - NNRR/ANRR) whereby NNRR corresponds to next net resource revenue ( 157) for a demand point ( 160A, 160B,
160C, 160D) in the demand point list (140) and ANRR corresponds to the average net resource revenue (154) for each demand point (160A, 160B, 160C, 160D) in the demand point list (140); and setting (185) the protection level (162) to the sum of the accumulated mean (152) plus the inverse cumulative normal multiplied by the standard deviation.
24. A marginal value system (16) for determining marginal values (34) for perishable resources (31 ), comprising: means for loading data (50) for the perishable resources (31) and composite resources (36) from a perishable resource revenue management system (15) into the marginal value system (16); means for constructing (51) internal data structures (30, 35, 38) for linking each of the perishable resources (31) to their associated composite resources (36) and for linking each of the composite resources (36) to their associated perishable resources (31); means for determining (52) the marginal values (34) for the perishable resources (31) using a continuous optimization function (FIGS. 20 and 24) using the perishable resources (31) and the composite resources (36) in the internal data structures (30, 35, 38); and means for storing (53) the marginal values (34) from the marginal value system (16) into the perishable resource revenue management system (15).
25. A method of producing a marginal value (34) representing currency determined using a marginal value system (16) for use in a perishable resource revenue management system (14) for granting and denying (22, 23) a sale of one or more perishable resources (31) expiring at a future time (45) depending on marginal values (34) for each of such perishable resources (31) received from a perishable resource revenue management system (36), comprising the steps of: loading data (50) for the perishable resources (31), composite resources (36) and a resource value (40, 41, 42) from a perishable resource revenue management system (15) into a marginal value system (16); constructing (51) internal data structures (30, 35, 38) for the perishable resources (31), composite resources (36) and resource value (40, 41, 42); determining (52) marginal values (34) for the perishable resources: (31 ) using a continuous optimization function (FIGS. 20 and 24); and storing (53) the marginal values (34) from the marginal value system (16) into the perishable resource revenue management system (15).
26. A method using a computer (15) for determining marginal values (34) for perishable resources (31), comprising the steps of: evaluating (62) a locally optimal marginal value (34) for one of the perishable resources (31) using a continuous optimization function (FIGS. 20 and 24) dependent on the marginal values (34) for the other perishable resources (31); and iteratively reevaluating (67) the locally optimal marginal value (34) until a globally optimal marginal value (34) is attained.
27. A method according to claim 26, further comprising the steps of: iteratively performing (66) the step of evaluating (62) until a locally optimal marginal value (34) is attained for each of the perishable resources (31).
28. A method according to claim 26, whereby the continuous optimization function (FIGS. 20 and 24) is a supply demand balance optimization function (FIG. 20), further comprising the steps of: determining (72) whether a supply (80, 81 ) for the one perishable resource (31 ) minus a demand (81, 85) for the one perishable resource (31) is positive; and searching (73) for the locally optimal marginal value (34) that makes the supply (80, 81) equal the demand (81, 85).
29. A method according to claim 26, whereby the continuous optimization function
(FIGS. 20 and 24) is a expected marginal resource revenue optimization function (FIG. 24), further comprising the steps of: creating (130) a demand point list (140) for the one perishable resource (31) based on a set of resource prices (40), means (41) and variances (42) associated with each of the composite resources (36) containing the one perishable resource (31 ); determining (134) a protection level (162) for each demand point (160A, 160B, 160C, 160D) in the demand point list (140); and searching (138) for the locally optimal marginal value (34) that makes the supply (80, 81) equal the protection level (162).
30. A marginal value system (16) for determining marginal values (34) for perishable resources (31 ), comprising: means for evaluating (62) a locally optimal marginal value (34) for one of the perishable resources (31) using a continuous optimization function (FIGS. 20 and 24) dependent on the marginal values (34) for the other perishable resources (31 ); and means for iteratively reevaluating (67) the locally optimal marginal value (34) until a globally optimal marginal value (34) is attained.
31. A method using a marginal value system (16) for determining marginal values (34) for seats on flight leg departures (31) departing on a future departure date (45), comprising the steps of: loading data (50) for flight leg departures (31) and flight path departures (36) from an airline revenue management system (15) into the marginal value system (16); constructing (51) internal data structures (30, 35, 38) for linking each of the flight leg departures (31 ) to their associated flight path departures (36) and for linking each of the flight path departures (36) to their associated flight leg departures (31); determining (52) the marginal values (34) for seats on the flight leg departures (31) using a continuous optimization function (FIGS. 5 and 12) using interdependencies among the flight leg departures (31) and the flight path departures (36) in the internal data structures (30, 35, 38); and storing (53) the marginal values (34) from the marginal value system (16) into the airline revenue management system (15).
32. A method according to claim 31 , the step of determining further comprising the steps of: evaluating (62) a locally optimal marginal value (34) for seats on the flight leg departures (31) using the continuous optimization function (FIGS. 5 and 12) on each of the flight leg departures (31 ); and performing (66) the step of evaluating (62) in successive iterations until a globally optimal marginal value (34) is evaluated for the flight leg departures (31) based on a convergence criterion (67).
33. A method according to claim 32, further comprising the steps of: monitoring (63, 64, 65) a maximum difference between such locally optimal marginal values (34) evaluated during a current iteration and such locally optimal marginal values (34) evaluated during a previous iteration; comparing (67) the maximum difference and the convergence criterion upon completion of the current iteration whereby convergence is satisfied when the maximum difference is less than the convergence criterion.
34. A method according to claim 31 , the step of determining further comprising the steps of: evaluating (62) a locally optimal marginal value (34) for a seat on one of the flight leg departures (31) using the continuous optimization function (FIGS. 5 and 12); and performing (66) the step of evaluating (62) in successive iterations for another of the flight leg departures (31 ) until a locally optimal marginal value (34) has been e valuated for all of the flight leg departures (31).
35. A method according to claim 34, further comprising the steps of: determining (62) the absolute difference between such locally optimal marginal value (34) evaluated for a seat on one of the flight leg departures (31) during a current iteration and such locally optimal marginal value (34) evaluated for the seat during a previous iteration; comparing (63) the absolute difference to a maximum difference between such locally optimal marginal value (34) evaluated for a seat on another of the flight leg departures (31) during the current iteration and such locally optimal marginal value (34) evaluated for the seat during the previous iteration whereby the maximum difference equals or exceeds all such absolute differences between such locally optimal marginal values (34) evaluated for seats on all other flight leg departures (31) during a current iteration and such locally optimal marginal values (34) evaluated for the seats during a previous iteration; and replacing (65) the maximum difference with the absolute difference when the absolute difference is greater than the maximum difference.
36. A method according to claim 31 , further comprising the steps of: loading (50) passenger value data comprising a supply of seats (44) on each of the flight leg departures (31) and a set of booking class prices (40) from the airline revenue management system (15) into the marginal value system (16); and constructing (51) an internal data structure (38) for linking each of the flight path departures (36) to their associated set of booking class prices (40) and for linking each of the flight leg departures (31 ) to their associated supply of seats (44).
37. A method according to claim 36, whereby the continuous optimization function is a deterministic optimization function, the step of determining (52) further comprising evaluating (62) locally optimal marginal values (34) based on a certain demand (81 , 85) for seats on each of the flight leg departures (36).
38. A method according to claim 37, whereby the deterministic optimization function is a supply-demand balance optimization function (FIG. 5), further comprising the step of: searching (73) for a marginal value (34) for one of the flight leg departures (36) whereby the supply of seats (44) substantially matches the demand for seats on the one flight leg departure (36).
39. A method according to claim 38, further comprising the steps of: determining (71) the difference between the supply of seats (44) and the certain demand (81, 85) for seats on the one flight leg departure (36); and setting (70) the marginal value (31) for the one flight leg departure (36) to indicate that the supply of seats (44) exceeds the demand for seats when the difference is positive (72).
40. A method according to claim 38, further comprising the step of: determining (71, 73) the certain demand (81, 85) for the one flight leg departure (31) based on the marginal values (34) for each other of the flight leg departures (31) contained in each of the flight path departures (36) containing the one flight leg departure (31).
41. A method according to claim 40, further comprising the steps of: determining (91) a path demand for each of the flight path departures (36) containing the one flight leg departure (31 ); and adding (92) the path demand for each of the flight path departures (36) to the certain demand (81 , 85) for the one flight leg departure (31).
42. A method according to claim 41, further comprising the steps of: adding (101) the marginal value (34) for each of the flight leg departures (31) contained in one of the flight path departures (36) to a total marginal value; and determining (103) the path demand for the one flight path departure (36) using the total marginal value.
43. A method according to claim 42, whereby each of the set of booking class prices (40) comprises a corresponding demand point (120A, 120B, 120C, 120D, 120E) on a demand curve, further comprising the steps of: searching (110) for the first demand point on the demand curve (120A, 120B, 120C, 120D, 120E) corresponding to a booking class price (40) that exceeds the total marginal value; determining (112) a linear average (123) between the first demand point (120D) and a second demand point (120C) previous to the first demand point (120D); and determining (113) the path demand based on an intersection of the supply of seats (44) and the linear average (123).
44. A method according to claim 36, whereby the continuous optimizalion function is a non-deterministic optimization function, the step of determining (52) further comprising evaluating (62) locally optimal marginal values (34) based on an uncertain demand ( 161 A, 161B, 161C, 161D) for seats on each of the flight leg departures (36).
45. A method according to claim 44, whereby the continuous optimization function is a non-deterministic optimization function based on a supply of seats (155) on each of the flight leg departures (31 ) and an uncertain demand for the seats.
46. A method according to claim 45, whereby the non-deterministic optimization function is an expected marginal seat revenue (EMSR) optimization function (FIG. 12), further comprising the steps of: searching (138) for a marginal value (34) for one of the flight leg departures (36) whereby the supply of seats (44) substantially matches a protection level (162) for seats on the one flight leg departure (36).
47. A method according to claim 46, further comprising the step of: loading (50) passenger value data further comprising a set of means (41) and a set of variances (42) from the airline revenue management system (15) into the marginal value system (16) whereby the set of means (41) and the set of variances (42) correspond to the set of booking class prices (40); and constructing (51) an internal data structure (38) for linking each of the flight path departures (36) to their associated set of means (41) and set of variances (42).
48. A method according to claim 46, further comprising the steps of: creating (130) a demand point list (140) for the one flight leg departure (31) containing a set of demand points (160A, 160B, 160C, 160D) corresponding to each of the set of booking class prices (40); determining (132) an accumulated mean (152), an accumulated net leg revenue
(153) and an accumulated variance based on the set of booking class prices (40), the set of means (41 ) and the set of variances (42) for each demand point in the demand point list (140); determining (133) an updated average net leg revenue (154) based on the accumulated net leg revenue (153) and the accumulated mean (152); and determining (134) the protection level (162) for each of a set of accumulated demand points (161 A, 161B, 161 C, 161D) using the accumulated mean (152). the accumulated variance and the average net leg revenue (154) for each demand point (160A, 160B, 160C, 160D) in the demand point list (140).
49. A method according to claim 48, whereby the demand point list (140) is determined, further comprising the steps of: accumulating (151) the marginal values (34) for all of the flight leg departures (31) in a flight path departure (36) containing the one flight leg departure (31) except for the marginal value (31) for the one flight leg departure (34) for each of the set of booking class prices (40); determining (151) a net leg revenue (142) for each demand point (160 A, 160B, 160C, 160D) in the demand point list (140) using the accumulated marginal values (34); and creating (154) a new demand point (160A, 160B, 160C, 160D) when the net leg revenue (142) is positive (153).
50. A method according to claim 49, further comprising the steps of: setting (152) the net leg revenue (142) to the difference of the corresponding booking class price (40) minus the accumulated marginal values.
51. A method according to claim 48, further comprising the steps of: determining (132) the accumulated mean (152) comprising a summation of each mean in the set of means (41) for each of the set of demand points (160A, 160B, 160C, 160D); determining (132) the accumulated net leg revenue (153) comprising a summation of each of the set of booking class prices (40) multiplied by each of the means in the set of means (41) for each of the set of demand points (160A, 160B, 160C, 160D); and determining (132) the accumulated variance comprising a summation of each variance in the set of variances (41) for each of the set of demand points (160 A, 160B, 160C, 160D).
52. A method according to claim 48, further comprising the steps of: determining (133) the updated average net leg comprising the quotient of the accumulated net leg revenue (153) divided by the accumulated mean (152).
53. A method according to claim 48, further comprising the steps of: determining ( 181 ) a standard deviation equalling a square root of the accumulated variance; determining (183) an inverse cumulative normal of the equation:
(1 - NNLR/ANLR) whereby NNLR corresponds to a next net leg revenue (157) for a demand point (160 A, 160B, 160C, 160D) in the demand point list (140) and ANLR corresponds to the average net leg revenue (154) for each demand point (160A, 160B, 160C, 160D) in the demand point list (140); and setting (185) the protection level (162) to the sum of the accumulated mean (152) plus the inverse cumulative normal multiplied by the standard deviation.
54. A marginal value system (16) for determining marginal values (34) for seats on flight leg departures (31) departing on a future departure date (45), comprising: means for loading data (50) for flight leg departures (31) and flight path departures (36) from an airline revenue management system (15) into the marginal value system (16); means for constructing (51) internal data structures (30, 35, 38) for linking each of the flight leg departures (31 ) to their associated flight path departures (36) and for linking each of the flight path departures (36) to their associated flight leg departures (31); means for determining (52) the marginal values (34) for seats on the flight leg departures (31) using a continuous optimization function (FIGS. 5 and 12) using the flight leg departures (31) and the flight path departures (36) in the internal data structures (30, 35, 38); and means for storing (53) the marginal values (34) from the marginal value system (16) into the airline revenue management system (15).
55. A method of producing a marginal value (34) representing currency determined using a marginal value system (16) for use in conjunction with an airline reservations system (14) for granting and denying (22, 23) a sale of seats on one or more flight leg departures (31) departing on a future departure date (45) depending on marginal values (34) for seats on each of such flight leg departures (31) received from an airline revenue management system (36), the method comprising the steps of: loading data (50) for flight leg departures (31), flight path departures (36) and passenger value (40, 41, 42) from an airline revenue management system (15) into a marginal value system (16); constructing (51) internal data structures (30, 35, 38) for the flight leg departures (31 ), flight path departures (36) and passenger value (40, 41 , 42); determining (52) marginal values (34) for seats on the flight leg departures (31 ) using a continuous optimization function (FIGS. 5 and 12); and storing (53) the marginal values (34) from the marginal value system (16) into the airline revenue management system (15).
56. A method using a computer (15) for determining marginal values (34) for seats on flight leg departures (31) departing on a future departure date (45), comprising the steps of: evaluating (62) a locally optimal marginal value (34) for a seat on one of the flight leg departures (31) using a continuous optimization function (FIGS. 5 and 12) dependent on the marginal values (34) for a seat on the other flight leg departures (31); and iteratively reevaluating (67) the locally optimal marginal value (34) until a globally optimal marginal value (34) is attained.
57. A method according to claim 56, further comprising the steps of: iteratively performing (66) the step of evaluating (62) until a locally optimal marginal value (34) is attained for each of the flight leg departures (31).
58. A method according to claim 56, whereby the continuous optimization function (FIGS. 5 and 12) is a supply demand balance optimization function (FIG. 5), further comprising the steps of: determining (72) whether a supply of seats (80, 81 ) for the one flight leg departure (31) minus a demand for seats (81. 85) for the one flight leg departure (31 ) is positive; and searching (73) for the locally optimal marginal value (34) that makes the supply of seats (80, 81) equal the demand for seats (81, 85).
59. A method according to claim 56, whereby the continuous optimization function (FIGS. 5 and 12) is a expected marginal seat revenue optimization function (FIG. 12), further comprising the steps of: creating (130) a demand point list (140) for the one flight leg departure (31 ) based on a set of booking class prices (40), means (41) and variances (42) associated with each of the flight path departures (36) containing the one flight leg departure (31); determining (134) a protection level (162) for each demand point (160A, 160B, 160C, 160D) in the demand point list (140); and searching (138) for the locally optimal marginal value (34) that makes the supply of seats (80, 81) equal the protection level (162).
60. A marginal value system (16) for determining marginal values (34) for seats on flight leg departures (31 ) departing on a future departure date (45), comprising: means for evaluating (62) a locally optimal marginal value (34) for a seat on one of the flight leg departures (31) using a continuous optimization function (FIGS. 5 and 12) dependent on the marginal values (34) for a seat on the other flight leg departures (31); and means for iteratively reevaluating (67) the locally optimal marginal value (34) until a globally optimal marginal value (34) is attained.
PCT/US1997/000738 1996-01-11 1997-01-10 Method and system for determining marginal values for use in a revenue management system WO1997025684A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU15352/97A AU1535297A (en) 1996-01-11 1997-01-10 Method and system for determining marginal values for use in a revenue management system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/585,637 US5918209A (en) 1996-01-11 1996-01-11 Method and system for determining marginal values for use in a revenue management system
US08/585,637 1996-01-11

Publications (1)

Publication Number Publication Date
WO1997025684A1 true WO1997025684A1 (en) 1997-07-17

Family

ID=24342293

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/000738 WO1997025684A1 (en) 1996-01-11 1997-01-10 Method and system for determining marginal values for use in a revenue management system

Country Status (3)

Country Link
US (1) US5918209A (en)
AU (1) AU1535297A (en)
WO (1) WO1997025684A1 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000005669A1 (en) * 1998-07-22 2000-02-03 I2 Technologies, Inc. Computer-implemented value management tool for an asset intensive manufacturer
US6567783B1 (en) 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6970837B1 (en) 1996-09-04 2005-11-29 Walker Digital, Llc Methods and apparatus wherein a buyer arranges to purchase a first product using a communication network and subsequently takes possession of a substitute product at a retailer
US7110960B2 (en) * 2000-06-09 2006-09-19 Manugistics, Inc. Event revenue management system
US7192175B2 (en) 1998-12-30 2007-03-20 Nokia Mobile Phones, Ltd. Backlighting light pipe for illuminating a flat-panel display
US7263496B1 (en) * 2000-10-11 2007-08-28 Pros Revenue Management, Inc. Generic revenue management data model for revenue management
US7430518B2 (en) * 2001-07-12 2008-09-30 International Business Machines Corporation Air cargo yield management system and method utilizing booking profiles and unconstrained demand
US8010417B2 (en) 1997-07-08 2011-08-30 Walker Digital, Llc System and process for local acquisition of products priced online
US8799100B2 (en) 1997-07-08 2014-08-05 Groupon, Inc. Retail system for selling products based on a flexible product description
US8892470B2 (en) 1997-12-19 2014-11-18 Walker Digital, Llc Pre-sale data broadcast system and method
US9171316B2 (en) 1997-08-26 2015-10-27 Inventor Holdings, Llc Method and apparatus for vending a combination of products
US9684916B2 (en) 1997-07-08 2017-06-20 Groupon, Inc. Retail system for selling products based on a flexible product description
US20230012083A1 (en) * 2011-11-17 2023-01-12 American Airlines, Inc. Probability Analysis and Prediction Modeling
US11620587B2 (en) 2014-01-17 2023-04-04 American Airlines, Inc. Remapping of flight leg bookings
US11620590B1 (en) 2014-01-17 2023-04-04 American Airlines, Inc. Network value of a flight leg booking
US11669928B2 (en) 2013-03-08 2023-06-06 American Airlines, Inc. Fare classes with obscured demand
US11887026B2 (en) 2013-03-15 2024-01-30 American Airlines, Inc. Executing a graph network model to obtain a gate pushback time
US11954699B2 (en) 2022-03-30 2024-04-09 American Airlines, Inc. Determining an unobscured demand for a fare class

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747507B2 (en) 1996-05-23 2010-06-29 Ticketmaster L.L.C. Computer controlled auction system
US5761647A (en) 1996-05-24 1998-06-02 Harrah's Operating Company, Inc. National customer recognition system and method
US7386508B1 (en) * 1996-09-04 2008-06-10 Priceline.Com, Incorporated Method and apparatus for facilitating a transaction between a buyer and one seller
US7184990B2 (en) * 1997-03-21 2007-02-27 Walker Digital, Llc Method and apparatus for selling an aging food product
US7272569B1 (en) 1997-03-21 2007-09-18 Walker Digital, Llc Method and apparatus for controlling the performance of a supplementary process at a point-of-sale terminal
US6993494B1 (en) * 1998-06-01 2006-01-31 Harrah's Operating Company, Inc. Resource price management incorporating indirect value
US7212978B2 (en) * 1998-06-01 2007-05-01 Harrah's Operating Company, Inc. Customer valuation in a resource price manager
US6381578B1 (en) 1998-07-02 2002-04-30 Ita Software, Inc. Factored representation of a set of priceable units
US6609098B1 (en) 1998-07-02 2003-08-19 Ita Software, Inc. Pricing graph representation for sets of pricing solutions for travel planning system
US6263315B1 (en) * 1998-11-02 2001-07-17 Pricing Research Corporation Revenue management system and method
US6920464B2 (en) * 1998-12-03 2005-07-19 Grantley Patent Holdings, Ltd. System for generating an advertising revenue projection
US7328166B1 (en) * 1999-01-20 2008-02-05 Sabre, Inc. Global reservations transaction management system and method
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US6963854B1 (en) 1999-03-05 2005-11-08 Manugistics, Inc. Target pricing system
EP1203311A4 (en) * 1999-03-05 2002-08-21 Manugistic Atlanta Inc Target price system for competitive bid goods and services
US6336097B1 (en) 1999-07-01 2002-01-01 Manugistic Atlanta, Inc. Apparatus, systems and methods for constructing large numbers of travel fares
US6402251B1 (en) 1999-08-24 2002-06-11 Louise F. Stoll Vehicle passenger safety devices
US7769612B1 (en) 1999-08-31 2010-08-03 Priceline.Com, Incorporated System and method for facilitating the sale of a travel product
JP4374101B2 (en) * 1999-09-21 2009-12-02 株式会社日立製作所 Service reservation system
EP1234268A2 (en) * 1999-11-01 2002-08-28 ITA Software, Inc. Method and apparatus for providing availability of airline seats
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
WO2001035289A1 (en) * 1999-11-10 2001-05-17 Pricing Research Corporation Revenue management system and method
US20020165771A1 (en) * 2001-05-07 2002-11-07 Walker Jay S. Method and apparatus for establishing prices for a plurality of products
JP3963204B2 (en) * 2000-03-16 2007-08-22 富士通株式会社 Transaction reservation reception method, transaction reservation reception system, transaction reservation reception device, and recording medium
WO2001071683A2 (en) 2000-03-21 2001-09-27 Walker Digital, Llc Method and apparatus for selecting a supplemental product to offer for sale during a transaction
US10115076B2 (en) * 2000-04-21 2018-10-30 Goalassist Corporation System and method employing capacity/demand management for human-factor resources
US7103558B1 (en) 2000-06-26 2006-09-05 Carlson Wagonlit Travel, Inc. System and method for determining the origin and destination services of a travel itinerary
US7216085B1 (en) * 2000-07-13 2007-05-08 Ita Software, Inc. Competitive availability tools
US7415422B1 (en) 2000-08-01 2008-08-19 International Business Machines Corporation Method for prediction of materialization of a reserved purchase
US6895381B1 (en) 2000-08-01 2005-05-17 International Business Machines Corporation Method and system for management of a wait list for reserved purchases
US7533032B1 (en) 2000-08-01 2009-05-12 International Business Machines Corporation Method and system for prediction of materialization of a group reservation
US6616242B1 (en) * 2000-08-23 2003-09-09 Louise F. Stoll Vehicle passenger safety devices
EP1337963A4 (en) * 2000-10-30 2005-11-02 Translation Technologies Inc Computational geometry system, interrupt interface, geometric model comparator, and method
WO2002037211A2 (en) * 2000-10-30 2002-05-10 Archstone-Smith Operating Trust Lease rent optimizer revenue management system
US7765121B2 (en) * 2000-11-03 2010-07-27 Harrah's Operating Company, Inc. Automated service scheduling system based on customer value
US6962531B2 (en) 2000-11-03 2005-11-08 Harrah's Operating Company, Inc. Automated service scheduling system
US20100010870A1 (en) * 2000-12-20 2010-01-14 Karl Millar System and Method for Tuning Demand Coefficients
US9773250B2 (en) * 2000-12-20 2017-09-26 International Business Machines Corporation Product role analysis
US7899691B1 (en) 2000-12-20 2011-03-01 Demandtec, Inc. Econometric engine
US7523047B1 (en) 2000-12-20 2009-04-21 Demandtec, Inc. Price optimization system
US7302410B1 (en) 2000-12-22 2007-11-27 Demandtec, Inc. Econometric optimization engine
US10204349B2 (en) 2000-12-20 2019-02-12 International Business Machines Corporation Analyzing customer segments
US7617119B1 (en) 2000-12-20 2009-11-10 Demandtec, Inc. Price optimization with rule relaxation
US7062447B1 (en) 2000-12-20 2006-06-13 Demandtec, Inc. Imputed variable generator
US7657470B1 (en) 2000-12-20 2010-02-02 Demandtec, Inc. Financial model engine
US10496938B2 (en) 2000-12-20 2019-12-03 Acoustic, L.P. Generating product decisions
US7877286B1 (en) 2000-12-20 2011-01-25 Demandtec, Inc. Subset optimization system
US7660734B1 (en) 2000-12-20 2010-02-09 Demandtec, Inc. System for creating optimized promotion event calendar
US9785953B2 (en) * 2000-12-20 2017-10-10 International Business Machines Corporation System and method for generating demand groups
US9165270B2 (en) * 2000-12-20 2015-10-20 International Business Machines Corporation Predicting likelihood of customer attrition and retention measures
US8010404B1 (en) 2000-12-22 2011-08-30 Demandtec, Inc. Systems and methods for price and promotion response analysis
US7546249B2 (en) 2001-02-06 2009-06-09 Yahoo! Inc. System and method for managing advertising inventory to maximize advertising revenue
US7092896B2 (en) * 2001-05-04 2006-08-15 Demandtec, Inc. Interface for merchandise promotion optimization
US20040210541A1 (en) * 2001-05-04 2004-10-21 Jeremy Epstien User interface for a rules engine and methods therefor
US6553352B2 (en) * 2001-05-04 2003-04-22 Demand Tec Inc. Interface for merchandise price optimization
US7130811B1 (en) 2001-05-05 2006-10-31 Demandtec, Inc. Apparatus for merchandise promotion optimization
WO2003005161A2 (en) * 2001-07-02 2003-01-16 American Express Travel Related Services Company, Inc. System and method for airline purchasing program management
US20040260581A1 (en) * 2001-08-23 2004-12-23 American Express Travel Related Services Company, Inc. Travel market broker system
US20050288974A1 (en) * 2001-08-23 2005-12-29 American Express Travel Related Services Company, Inc. Travel service broker system and method
US10346767B2 (en) * 2001-10-31 2019-07-09 Goalassist Corporation System and method employing capacity/demand management in prepared food service industry
US7249032B1 (en) 2001-11-30 2007-07-24 Demandtec Inc. Selective merchandise price optimization mechanism
US7249033B1 (en) 2001-11-30 2007-07-24 Demandtec Inc. Apparatus and method for selective merchandise price optimization
US7386519B1 (en) 2001-11-30 2008-06-10 Demandtec, Inc. Intelligent clustering system
US7809581B1 (en) 2001-11-30 2010-10-05 Demandtec, Inc. Rule relaxation and subset optimization system
US6804658B2 (en) * 2001-12-14 2004-10-12 Delta Air Lines, Inc. Method and system for origin-destination passenger demand forecast inference
US7386492B2 (en) * 2002-01-15 2008-06-10 Clear Channel Communications, Inc. Inventory and revenue maximization method and system
CA2471830A1 (en) * 2002-01-16 2003-07-24 Earnix Ltd. Pricing optimization apparatus and method
US7805323B2 (en) * 2002-01-25 2010-09-28 American Express Travel Related Services Company, Inc. System and method for processing trip requests
US20030177016A1 (en) * 2002-03-13 2003-09-18 Delta Air Lines, Inc. Revenue recognition system and method for efficiently performing business-related processing and storing of event information related to a transaction
US7133882B1 (en) 2002-08-05 2006-11-07 Demandtec, Inc. Method and apparatus for creating and using a master catalog
US6851604B2 (en) * 2002-10-02 2005-02-08 Demand Tec Inc. Method and apparatus for providing price updates
US10366373B1 (en) 2002-12-09 2019-07-30 Live Nation Entertainment, Incorporated Apparatus for access control and processing
US9740988B1 (en) 2002-12-09 2017-08-22 Live Nation Entertainment, Inc. System and method for using unique device indentifiers to enhance security
US9477820B2 (en) 2003-12-09 2016-10-25 Live Nation Entertainment, Inc. Systems and methods for using unique device identifiers to enhance security
US7266045B2 (en) * 2004-01-22 2007-09-04 Shotspotter, Inc. Gunshot detection sensor with display
US20040172261A1 (en) * 2003-02-27 2004-09-02 Davidoff Donald M. Method and system to dynamically determine market rent
US7676376B2 (en) * 2003-03-10 2010-03-09 U-Haul International, Inc. Rate and distribution system
WO2004088476A2 (en) 2003-03-27 2004-10-14 University Of Washington Performing predictive pricing based on historical data
US8010282B2 (en) * 2003-05-28 2011-08-30 Passur Aerospace, Inc. System and method to display operational and revenue data for an airport facility
US7410422B2 (en) * 2003-06-13 2008-08-12 Harrah's Operating Company, Inc. Unified player rewards
US7617136B1 (en) * 2003-07-15 2009-11-10 Teradata Us, Inc. System and method for capturing, storing and analyzing revenue management information for the travel and transportation industries
US7191157B1 (en) 2003-08-19 2007-03-13 Abe John R System, method and computer program product for the optimization of price to satisfy certain business objectives
US7257561B1 (en) 2003-08-19 2007-08-14 Abe John R Continuous price optimization system, method and computer program product for satisfying certain business objectives
US7209904B1 (en) 2003-08-28 2007-04-24 Abe John R Method for simulating an optimized supplier in a market
US20050125264A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation System and method for determining flight cancellations
US20050125263A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation System and method for re-accommodating passengers
US20050125266A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Method and system for boarding commercial airline flights
WO2005059685A2 (en) * 2003-12-12 2005-06-30 Delta Air Lines, Inc. Method and system for estimating price elasticity of product demand
US8078483B1 (en) 2003-12-16 2011-12-13 Ticketmaster Systems and methods for queuing access to network resources
US8321286B2 (en) * 2004-02-04 2012-11-27 Marriott International, Inc. Method and apparatus for measuring revenue performance for a lodging establishment
US8190457B1 (en) 2004-02-27 2012-05-29 American Airlines, Inc. System and method for real-time revenue management
US7584123B1 (en) 2004-04-06 2009-09-01 Ticketmaster Systems for dynamically allocating finite or unique resources
US7957987B2 (en) * 2004-04-30 2011-06-07 Eds South Africa (Pty) Ltd. Using software agents to schedule airline flights
US7899699B1 (en) * 2004-11-04 2011-03-01 American Airlines, Inc. System and method for adaptive forecasting
AU2006227177A1 (en) 2005-03-22 2006-09-28 Ticketmaster Apparatus and methods for providing queue messaging over a network
US9608929B2 (en) 2005-03-22 2017-03-28 Live Nation Entertainment, Inc. System and method for dynamic queue management using queue protocols
US20140379390A1 (en) 2013-06-20 2014-12-25 Live Nation Entertainment, Inc. Location-based presentations of ticket opportunities
US9762685B2 (en) 2005-04-27 2017-09-12 Live Nation Entertainment, Inc. Location-based task execution for enhanced data access
US20070038465A1 (en) * 2005-08-10 2007-02-15 International Business Machines Corporation Value model
US20070038501A1 (en) * 2005-08-10 2007-02-15 International Business Machines Corporation Business solution evaluation
US7761478B2 (en) * 2005-11-23 2010-07-20 International Business Machines Corporation Semantic business model management
US7487103B2 (en) * 2005-11-29 2009-02-03 Versonix Corporation System and method for accepting a reservation based on statistical profitability
CA2637184C (en) 2006-02-07 2016-08-16 Ticketmaster Methods and systems for reducing burst usage of a networked computer system
US8200514B1 (en) 2006-02-17 2012-06-12 Farecast, Inc. Travel-related prediction system
US8392224B2 (en) * 2006-02-17 2013-03-05 Microsoft Corporation Travel information fare history graph
US8374895B2 (en) * 2006-02-17 2013-02-12 Farecast, Inc. Travel information interval grid
US20070198307A1 (en) * 2006-02-17 2007-08-23 Hugh Crean Travel information future fare graph
US20070198308A1 (en) * 2006-02-17 2007-08-23 Hugh Crean Travel information route map
US8484057B2 (en) * 2006-02-17 2013-07-09 Microsoft Corporation Travel information departure date/duration grid
US20080059273A1 (en) * 2006-02-21 2008-03-06 Dynamic Intelligence Inc. Strategic planning
WO2007098161A2 (en) * 2006-02-21 2007-08-30 Dynamic Intelligence Inc. Transportation scheduling system
US9858579B1 (en) 2006-02-28 2018-01-02 International Business Machines Corporation Plan tuning engine
US9785951B1 (en) 2006-02-28 2017-10-10 International Business Machines Corporation Scalable tuning engine
US20070214025A1 (en) * 2006-03-13 2007-09-13 International Business Machines Corporation Business engagement management
EP1840806A1 (en) * 2006-03-28 2007-10-03 Amadeus s.a.s Systems and method of managing an inventory of service resources
CA2651543C (en) 2006-05-09 2016-02-16 Ticketmaster Apparatus for access control and processing
US20080004924A1 (en) * 2006-06-28 2008-01-03 Rong Zeng Cao Business transformation management
US8676717B2 (en) * 2006-07-29 2014-03-18 Accenture Global Services Limited Psychometric analysis tool for predicting the renege rate
US7797187B2 (en) * 2006-11-13 2010-09-14 Farecast, Inc. System and method of protecting prices
US20080228658A1 (en) * 2007-03-13 2008-09-18 Hugh Crean Deal identification system
MX2010001492A (en) 2007-08-07 2010-11-09 Ticketmaster L L C Systems and methods for providing resources allocation in a networked environment.
US20090063167A1 (en) * 2007-08-28 2009-03-05 Jay Bartot Hotel rate analytic system
US9807096B2 (en) 2014-12-18 2017-10-31 Live Nation Entertainment, Inc. Controlled token distribution to protect against malicious data and resource access
US20090209341A1 (en) * 2008-02-14 2009-08-20 Aruze Gaming America, Inc. Gaming Apparatus Capable of Conversation with Player and Control Method Thereof
EP2120193A1 (en) * 2008-05-14 2009-11-18 Amadeus S.A.S. Improvements in or relating to inventory control and optimization
WO2010002594A2 (en) * 2008-07-03 2010-01-07 Aol Llc Advertising forecast and revenue systems and methods
EP2207134A1 (en) * 2008-12-08 2010-07-14 Amadeus s.a.s Method and system for displaying interlining travel recommendations
US20130054278A1 (en) * 2009-11-19 2013-02-28 Air New Zealand Limited Method and System for Reserving and Allocating Vehicle Seating (Skycouch)
GB2481191A (en) 2010-02-25 2011-12-21 Sita Information Networking Computing Ireland Ltd Graphical development tool for software application development
US9781170B2 (en) 2010-06-15 2017-10-03 Live Nation Entertainment, Inc. Establishing communication links using routing protocols
US10096161B2 (en) 2010-06-15 2018-10-09 Live Nation Entertainment, Inc. Generating augmented reality images using sensor and location data
WO2011159811A2 (en) 2010-06-15 2011-12-22 Ticketmaster, Llc Methods and systems for computer aided event and venue setup and modeling and interactive maps
US8571920B2 (en) * 2010-10-05 2013-10-29 Xerox Corporation Optimal list-price mechanism design for multi-level device click-through in targeted print or electronic communication
SG190038A1 (en) 2010-12-21 2013-06-28 Sita N V Reservation system and method
US8412559B2 (en) 2011-01-19 2013-04-02 United Parcel Service Of America, Inc. Systems and methods for improved calculation of coefficient for price sensitivity
JP5016125B1 (en) * 2011-06-30 2012-09-05 楽天株式会社 Information providing apparatus, information providing method, information providing program, and recording medium
WO2013017179A1 (en) 2011-08-03 2013-02-07 Sita Information Networking Computing Usa, Inc Item handling and tracking system and method therefor
US20130073342A1 (en) * 2011-09-19 2013-03-21 Jeffery Scott Crump Computer-based system and method for negotiating a price
GB2499288A (en) 2012-02-09 2013-08-14 Sita Inf Networking Computing Usa Inc Path determination
US9087204B2 (en) 2012-04-10 2015-07-21 Sita Information Networking Computing Ireland Limited Airport security check system and method therefor
US20140257881A1 (en) * 2013-03-08 2014-09-11 Us Airways, Inc. Demand forecasting systems and methods utilizing fare adjustment
US11321721B2 (en) 2013-03-08 2022-05-03 American Airlines, Inc. Demand forecasting systems and methods utilizing prime class remapping
US10320908B2 (en) 2013-03-25 2019-06-11 Sita Information Networking Computing Ireland Limited In-flight computing device for aircraft cabin crew
GB2515142B (en) 2013-06-14 2020-12-16 Sita Information Networking Computing Ireland Ltd Portable user control system and method therefor
US20150161526A1 (en) * 2013-12-09 2015-06-11 Amadeus S.A.S. Generation of offers with limited time frame guaranteed availability and pricing for travel itineraries
GB2523441A (en) 2014-02-19 2015-08-26 Sita Information Networking Computing Ireland Ltd Reservation system and method therefor
US10296867B2 (en) * 2014-11-17 2019-05-21 Unisys Corporation Price quoting of allotments based upon select categories in a logistics management system (LMS)
US10001546B2 (en) 2014-12-02 2018-06-19 Sita Information Networking Computing Uk Limited Apparatus for monitoring aircraft position
US10860952B1 (en) * 2016-10-28 2020-12-08 American Airlines, Inc. Table-driven data storage system for multi-departure, multi-cabin travel seat inventory optimization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404291A (en) * 1989-11-20 1995-04-04 Hyatt Corp. Inventory control process for reservation systems

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AIR TRANSPORT WORLD, Vol. 28, No. 12, issued December 1991, FELDMAN, "To Rein in Those CRS's", pages 89-92. *
AIR TRANSPORT WORLD, Vol. 31, No. 10, issued October 1994, FELDMAN, "Getting Serious on Pricing", pages 56-60. *
AIRLINE BUSINESS, issued October 1996, "Dig a Little Bit Deeper", page 64. *
MARKETING MANAGEMENT, Vol. 4, No. 2, issued Fall 1995, HARRIS et al., "Hold my Place, Please", pages 34-44. *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970837B1 (en) 1996-09-04 2005-11-29 Walker Digital, Llc Methods and apparatus wherein a buyer arranges to purchase a first product using a communication network and subsequently takes possession of a substitute product at a retailer
US9754302B2 (en) 1997-07-08 2017-09-05 Groupon, Inc. Retail system for selling products based on a flexible product description
US8010417B2 (en) 1997-07-08 2011-08-30 Walker Digital, Llc System and process for local acquisition of products priced online
US9684916B2 (en) 1997-07-08 2017-06-20 Groupon, Inc. Retail system for selling products based on a flexible product description
US8799100B2 (en) 1997-07-08 2014-08-05 Groupon, Inc. Retail system for selling products based on a flexible product description
US9171316B2 (en) 1997-08-26 2015-10-27 Inventor Holdings, Llc Method and apparatus for vending a combination of products
US8892470B2 (en) 1997-12-19 2014-11-18 Walker Digital, Llc Pre-sale data broadcast system and method
US6567783B1 (en) 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
WO2000005669A1 (en) * 1998-07-22 2000-02-03 I2 Technologies, Inc. Computer-implemented value management tool for an asset intensive manufacturer
US7192175B2 (en) 1998-12-30 2007-03-20 Nokia Mobile Phones, Ltd. Backlighting light pipe for illuminating a flat-panel display
US7110960B2 (en) * 2000-06-09 2006-09-19 Manugistics, Inc. Event revenue management system
US7263496B1 (en) * 2000-10-11 2007-08-28 Pros Revenue Management, Inc. Generic revenue management data model for revenue management
US8321252B2 (en) 2001-07-12 2012-11-27 International Business Machines Corporation Air cargo yield management system for utilizing booking profiles and unconstrained demand
US8117055B2 (en) 2001-07-12 2012-02-14 International Business Machines Corporation Air cargo yield management system for utilizing booking profiles and unconstrained demand
US7430518B2 (en) * 2001-07-12 2008-09-30 International Business Machines Corporation Air cargo yield management system and method utilizing booking profiles and unconstrained demand
US20230012083A1 (en) * 2011-11-17 2023-01-12 American Airlines, Inc. Probability Analysis and Prediction Modeling
US11887025B1 (en) 2011-11-17 2024-01-30 American Airlines, Inc. Method to generate predicted variances of an operation based on data from one or more connected databases
US11669928B2 (en) 2013-03-08 2023-06-06 American Airlines, Inc. Fare classes with obscured demand
US11887026B2 (en) 2013-03-15 2024-01-30 American Airlines, Inc. Executing a graph network model to obtain a gate pushback time
US11620587B2 (en) 2014-01-17 2023-04-04 American Airlines, Inc. Remapping of flight leg bookings
US11620590B1 (en) 2014-01-17 2023-04-04 American Airlines, Inc. Network value of a flight leg booking
US11954699B2 (en) 2022-03-30 2024-04-09 American Airlines, Inc. Determining an unobscured demand for a fare class

Also Published As

Publication number Publication date
US5918209A (en) 1999-06-29
AU1535297A (en) 1997-08-01

Similar Documents

Publication Publication Date Title
US5918209A (en) Method and system for determining marginal values for use in a revenue management system
US7263496B1 (en) Generic revenue management data model for revenue management
Chatwin Multiperiod airline overbooking with a single fare class
US7311252B2 (en) Methods and apparatus for predicting airline seat availability
US6804658B2 (en) Method and system for origin-destination passenger demand forecast inference
US20070244766A1 (en) System for concurrent optimization of business economics and customer value
US8145536B1 (en) System for concurrent optimization of business economics and customer value
Amaruchkul et al. Air-cargo capacity allocation for multiple freight forwarders
AU2012265140B2 (en) Improvements in or relating to a revenue management system and associated method
Huang et al. An approximate algorithm for the two-dimensional air cargo revenue management problem
US20100030591A1 (en) Method and apparatus for recommending simplified fares with consistent buyacross
CN101027683A (en) Systems, methods, and computer program products for searching and displaying low cost productavailability information for a given departure-return date combination or range of departure-return data co
US6895381B1 (en) Method and system for management of a wait list for reserved purchases
US7340403B1 (en) Method, system, and computer-readable medium for generating a diverse set of travel options
US20030097274A1 (en) Method and system for compiling, displaying, and updating travel information
Vinod Advances in inventory control
You Airline seat management with rejection-for-possible-upgrade decision
Cleaz-Savoyen Airline revenue management methods for less restricted fare structures
EP3051467A1 (en) Incorporation of revenue impact of ancillary services into revenue-driven inventory system
AU2015227443A1 (en) Corporate recognition for travel related services
US20080154630A1 (en) Method for Generating A Diverse Set of Travel Options
WO2008020307A2 (en) System for concurrent optimization of business economics and customer value
US20160224906A1 (en) Incorporation of revenue impact of ancillary services into revenue-driven inventory system
US20160210565A1 (en) Revenue-optimized opaque bookings
Siddappa et al. A statistical modeling approach to airline revenue management

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 97525468

Format of ref document f/p: F

122 Ep: pct application non-entry in european phase