CONTRACT NUMBER ALLOCATION FOR TRAVEL INDUSTRY TRANSACTIONS

Methods, systems, and computer program products for defining subcategories and associated contract number ranges within a standard issuance context category for a travel product. A stock allocation module includes a stock index table having a plurality of stock indexes each associated with an issuance context and at least one range of numbers. In response to a traveler purchasing a travel product, an issuance platform sends an allocation request to the stock allocation module. In response to receiving the allocation request, the stock allocation module identifies a stock index matching the issuance context of the pending transaction. The matching stock index is then used to identify the range of numbers corresponding to the issuance context. An available number is selected from the identified range of contract numbers and used to define a contract number. The contract number is then returned to the issuance platform.

BACKGROUND

The invention generally relates to computers and computer software, and in particular to methods, systems, and computer program products for assigning a contract number from a range of contract numbers based on an issuance context of the contract.

In the travel industry, travelers typically purchase travel products, such as a right to travel on an airline or railway carrier, by purchasing a ticket. A ticket is a document issued by the carrier, a travel agency, or other authorized seller that confirms the traveler has purchased a good or service from the carrier. In the case of an airline, the ticket may confirm that the traveler has purchased a seat on one or more flights scheduled to travel from an origination point to a destination point. The seat may be for a specific time, or may be redeemable for a future time period at the discretion of the traveler. In either case, the ticket is typically used to obtain a boarding pass from the transporting carrier prior to departure. The most common type of ticket is known as an electronic ticket, or “e-ticket”, although tickets redeemable for travel products may also be issued as coupons. Tickets issued as coupons are commonly referred to as “paper tickets”. A ticket for travel provided via a rail carrier may also be referred to as a travel card or transit pass. In any case, the ticket thereby confirms the existence of a contract between the traveler and the carrier representing a promise by the carrier to provide the traveler with transport in exchange for a payment from the traveler.

Travelers may purchase various types of tickets. For example, some types of tickets are only good for flights provided by the specific airline for which the ticket was purchased. However, the airline may endorse this type of ticket so that the ticket will also be accepted by other airlines. A ticket may only be redeemable for a specific flight, or the ticket may be an “open” ticket that allows travel on any flight between the origination and destination listed on the ticket. Some types of tickets may be refundable, while others may be non-refundable. Tickets may also specify that the traveler is entitled to an additional service, such as a meal or access to a airport lounge. Thus, many types of tickets are sold, with each type having different sets of restrictions and/or entitling the traveler to a different product. As may be expected, travelers will typically pay a higher fare for tickets having fewer restrictions or that provide additional services. Thus, travelers willing to accept a greater number of restrictions, such as with regard allowable dates of travel, the ability to transfer to another flight, or the ability to obtain a refund on the ticket, can typically purchase ticket for less money than a traveler requiring greater flexibility or a higher level of service.

In order to identify the ticket in various computer systems associated with billing and passenger processing, a contract number is assigned as part the process of issuing the ticket. When a ticket is issued in the airline transpiration industry, a unique contract number may be generated by a computer and assigned to the ticket. This contract number may include a form code that comprises 2 or 3 digits of the contract number. Each form code may be associated with one of a plurality of standard categories of transportation products that are defined by the International Air Transport Association (IATA). A “stock provider” number that identifies the validating carrier may also be included in the contract number. The contract number for a ticket issued for air travel may therefore consist of the airline code and form code followed by a serial number and, in some cases, a check digit. Form codes thereby provide a plurality of contract number ranges that define standard categories of airline tickets. Contract numbers that are issued in compliance with these standard ranges allow the airline and/or Billing and Settlement Plan (BSP) system to determine if a ticket is in one of these standard categories. However, because the standard categories are industry standard categories defined by the IATA, the standard categories are the same for each carrier. Carriers are thus limited to the standard category classifications defined by the IATA, which limits each airline's ability to define additional categories of tickets that address their specific needs.

Thus, improved systems, methods, and computer program products for defining and assigning contract numbers are needed that enable carriers to define contract number ranges that identify contracts as including a particular set of product characteristics unique to that carrier, but that maintain compatibility with existing industry standards.

BRIEF SUMMARY

In an embodiment of the invention, a method of organizing contract numbers in a database is provided. The database includes a plurality of sets of contract numbers, each set of contract numbers corresponding to one of a plurality of stock providers and including a plurality of standard category number ranges. The method includes defining, for a set of contract numbers corresponding to a stock provider, a first subcategory number range within a standard category number range and corresponding to a first issuance context. The method further includes defining, for the set of contract numbers, a second subcategory number range within the standard category number range and corresponding to a second issuance context. A first contract issued for the stock provider having a first contract number including a first number from the first subcategory number range is thereby identifiable as having the first issuance context based on the first contract number. In addition, a second contract issued for the stock provider that has a second contract number including a second number from the second subcategory number range is identifiable as having the second issuance context based on the second contract number.

In another embodiment of the invention, an apparatus is provided. The apparatus includes a processor and a memory including instructions. The instructions are configured so that, when executed by the processor, they cause the apparatus to define the first subcategory number range within the standard category number range. The first subcategory range is thereby defined for the set of contract numbers, and corresponds to the first issuance context. The instructions further cause the processor to define the second subcategory number range within the standard category number range. The second subcategory range is thereby defined for the set of contract numbers, and corresponds to the second issuance context. The first contract issued for the stock provider having the first contract number including the first number from the first subcategory number range is thereby identifiable as having the first issuance context based on the first contract number. In addition, the second contract issued for the stock provider having the second contract number including the second number from the second subcategory number range is identifiable as having the second issuance context based on the second contract number.

In another embodiment of the invention, a computer program product is provided. The computer program product includes a non-transitory computer readable storage medium that stores instructions. The instructions are configured so that, when executed by a processor, they cause the processor to define the first subcategory number range within the standard category number range. The first subcategory range is thereby defined for the set of contract numbers, and corresponds to the first issuance context. The instructions further cause the processor to define the second subcategory number range within the standard category number range. The second subcategory range is thereby defined for the set of contract numbers, and corresponds to the second issuance context. The first contract issued for the stock provider having the first contract number including the first number from the first subcategory number range is thereby identifiable as having the first issuance context based on the first contract number. In addition, the second contract issued for the stock provider having the second contract number including the second number from the second subcategory number range is identifiable as having the second issuance context based on the second contract number.

In another embodiment of the invention, a method of assigning contract numbers from a database of contract numbers is provided. The method includes receiving, at the computer, an allocation request from an issuance platform, the allocation request being for a contract issued for the stock provider and including the issuance context. The method further includes determining, at the computer, a stock index that matches the issuance context. The method defines a contract number that includes a number from the first subcategory number range associated with the stock index in the database, and transmits the contract number to the issuance platform. The first subcategory number range defines a portion of the standard category number range stored in the database, which may store the plurality of standard category number ranges. The standard category number range includes the first subcategory number range and the second subcategory number range, each of the first and second subcategory number ranges being associated with the stock provider.

In another embodiment of the invention, another apparatus is provided. The apparatus includes the processor and the memory including instructions. The instructions are configured so that, when executed by the processor, they cause the apparatus to receive the allocation request from the issuance platform. The allocation request may be for the contract issued for the stock provider and includes the issuance context. The instructions may further cause the processor to determine the stock index that matches the issuance context, and define the contract number. The contract number may include the number from the first subcategory number range associated with the stock index in the database, and may be transmitted to the issuance platform. The first subcategory number range may define the portion of the standard category number range stored in the database. The standard category number range may further include the first subcategory number range and the second subcategory number range, each of the first and second subcategory number ranges being associated with the stock provider. The first standard category number range may be one of the plurality of standard category number ranges stored in the database.

In another embodiment of the invention, another computer program product is provided. The computer program product includes the non-transitory computer readable storage medium that stores instructions. The instructions are configured so that, when executed by the processor, they cause the processor to receive the allocation request from the issuance platform. The allocation request may be for the contract issued for the stock provider and includes the issuance context. The instructions may further cause the processor to determine the stock index that matches the issuance context, and define the contract number. The contract number may include the number from the first subcategory number range associated with the stock index in the database, and may be transmitted to the issuance platform. The first subcategory number range may define the portion of the standard category number range stored in the database. The standard category number range may further include the first subcategory number range and the second subcategory number range, each of the first and second subcategory number ranges being associated with the stock provider. The first standard category number range may be one of the plurality of standard category number ranges stored in the database.

DETAILED DESCRIPTION

Embodiments of the invention may be implemented by a processing and database system, such as a Global Distribution System (GDS), to provide a flexible way of allocating contract numbers based on one or more sets of parameters that define an issuance context of a contract. Airline, railway, and other stock providers may thereby issue contracts having contract numbers that are encoded with information relating to issuance parameters of the contract. These issuance parameters may include a type of the stock provider, an identity of the stock provider, a type of contract being issued, a contract media type, a user type (e.g., travel agency, Central Ticketing Office (CTO), Airline Ticketing Office (ATO), etc.), a point of issuance of the contract, and/or a contract nature (e.g., domestic or international). This encoded information may enable billing systems to use revenue accounting methods that differentiate contract types based on the contract number being within a pre-defined range of numbers. To this end, the stock provider may configure the system to allocate pre-defined ranges of contract numbers within existing standard category number ranges, such as those assigned by the International Air Transport Association (IATA). These predefined ranges may be indexed by different combinations of issuance parameters. This feature may allow, for example, different contract number ranges to be allocated for domestic and international air tickets issued for a particular airline in a particular country. Embodiments of the invention may thereby enable stock providers to define contract and/or ticket subcategories having issuance context parameters that satisfy the specific requirements of the stock provider in question. These contract subcategories may be recognized by computing systems based solely on the range of numbers from with the contract issued, thereby reducing the need for database queries or other processing steps to determine the issuance parameters of the contract in question.

Referring now toFIG. 1, an operating environment10in accordance with an embodiment of the invention may include a Global Distribution System (GDS)12, one or more airline systems14, one or more travel agency systems16, and a Billing and Settlement Plan (BSP) system18in communication via a network20. The airline systems14may each include a Computer Reservation System (CRS) for the respective airline that enables the GDS12, the travel agency systems16and/or BSP system18to reserve and pay for airline tickets and other travel products, such as service upgrades. The network20may include one or more private and/or public networks (e.g., the Internet) that enable the exchange of data between the systems.

The GDS12may be configured to facilitate communication between the airline system14and the travel agency system16by enabling travel agents to book reservations on the airline system14via the GDS12. To this end, the GDS12may maintain links with the airline systems14via the network20. These links may allow the GDS12to route reservation requests from the travel agency systems16to the airline systems14. The travel agency systems16may thereby book flights on multiple airlines via a single connection to the GDS12.

The BSP system18may function as an intermediary between the airline and travel agency systems14,16. To this end, the BSP system18may include a revenue accounting module82(FIG. 5) that manages the flow of data and funds between the airline systems14and the travel agency systems16. The BSP system18may thereby provide a single point of connection for both the airline systems14and travel agency systems16so that all billing information passes through the BSP system18. There may be one BSP responsible for handling all billing and settlement for a particular country or a group of countries. The ticketing process may include the travel agency reporting the sale of the ticket to the corresponding BSP in the name of the airline. In the United States, the Airline Reporting Corporation (ARC) normally provides this service. In any case, the BSP may act as a Business Process Outsourcer (BPO) that provides a clearing house which settles accounts between the travel agency, the transporting airline, the validating airline, or any other party to the transaction. The appropriate airline may thereby collect a fare via the BSP for providing the airline seat. The BSP may also issue tickets to travelers, thereby acting as a stock provider.

An airline ticket purchased through one of the airline systems14, travel agency systems16, and/or BSP system18may involve booking, pricing, and ticketing the flight. Booking the flight may include checking an airline inventory for availability of the flight. This check may include sending a booking request from the validating system14,16,18to the GDS12, which may in turn query an airline system14for flight availability. If a seat is available for the requested flight, the flight may be booked and the transporting airline inventory decreased to reflect the booking. As part of the booking process, contract number may be issued and assigned to the ticket to provide a number that uniquely identifies the transaction.

Referring now toFIG. 2, the GDS12, airline systems14, travel agency systems16, and BSP system18of operating environment10may be implemented on one or more computer devices or systems, such as exemplary computer system22. The computer system22may include a processor24, a memory26, a mass storage memory device28, an input/output (I/O) interface30, and a user interface32.

The processor24may include one or more devices selected from microprocessors, micro-controllers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, or any other devices that manipulate signals (analog or digital) based on operational instructions that are stored in the memory26. The memory26may include a single memory device or a plurality of memory devices including but not limited to read-only memory (ROM), random access memory (RAM), volatile memory, non-volatile memory, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, cache memory, or any other device capable of storing information. The mass storage memory device28may include data storage devices such as a hard drive, optical drive, tape drive, non-volatile solid state device, or any other device capable of storing information. A database36may reside on the mass storage memory device28, and may be used to collect and organize data used by the various systems and modules described herein.

Processor24may operate under the control of an operating system38that resides in memory26. The operating system38may manage computer resources so that computer program code embodied as one or more computer software applications, such as application40residing in memory26may have instructions executed by the processor24. In an alternative embodiment, the processor24may execute the applications40directly, in which case the operating system38may be omitted. One or more data structures42may also reside in memory26, and may be used by the processor24, operating system38, and/or application40to store or manipulate data.

The I/O interface30may provide a machine interface that operatively couples the processor24to other devices and systems, such as the network20. The application40may thereby work cooperatively with the network20by communicating via the I/O interface30to provide the various features, functions, and/or modules comprising embodiments of the invention. The application40may also have program code that is executed by one or more external resources (not shown), or otherwise rely on functions and/or signals provided by other system or network components external to the computer system22. Indeed, given the nearly endless hardware and software configurations possible, persons having ordinary skill in the art will understand that embodiments of the invention may include applications that are located externally to the computer system22, distributed among multiple computers or other external resources, or provided by computing resources (hardware and software) that are provided as a service over the network20, such as a cloud computing service.

The user interface32may be operatively coupled to the processor24of computer system22in a known manner to allow a user to interact directly with the computer system22. The user interface32may include video and/or alphanumeric displays, a touch screen, a speaker, and any other suitable audio, visual, and/or tactile indicators capable of providing information to the user. The user interface32may also include input devices and controls such as an alphanumeric keyboard, a pointing device, keypads, pushbuttons, control knobs, microphones, etc., capable of accepting commands or input from the user and transmitting the entered input to the processor24.

Referring now toFIG. 3, a contract number50may comprise a code that includes a stock provider code52, a form code54, and a serial number56. The code may comprise any number of alphabetic characters, any number of numeric characters, or a combination of alphabetic and numeric characters. In a representative embodiment specific to the airline industry, the contract number50may be a 13-digit code including a 3-digit stock provider code52(also referred to as an airline code), a 2- or 3-digit form code54, and a 7- or 8-digit serial number56. The form code54may be one of a plurality of form codes54defined by the IATA in which each form code54corresponds to a standard category of issuance contexts for the contract in question.

FIG. 4depicts an exemplary set60of contract numbers50that may be associated with a specific stock provider. The set60of contract numbers50may include a plurality of standard categories62. Each standard category62may be associated with a number range64defined by a corresponding form code54. In accordance with embodiments of the invention, one or more of the standard categories62may be further divided into a plurality of subcategories66each associated with a corresponding subcategory number range68. By way of example, the form code “AA” corresponding to standard category J may be a number (e.g., 24) that defines an issuance context including an a parameter indicating the contract is for an electronic ticket or “e-ticket”. The issuance context may include additional parameters indicating the contract is for a ticket issued electronically by the airline defined by the stock provider code52. Similarly, form code BB corresponding to standard category K may be a number (e.g., 22) that defines the issuance context of the contract as including parameters indicating the contract is for a ticket issued electronically by a travel agency. Form code CC corresponding to standard category D may be a number (e.g., 82) that defines the issuance context of the contract as including parameters indicating the contract is for an Electronic Miscellaneous Document (EMD) issued by the airline. Form code DDD may be a number (e.g., 457) corresponding to standard category G that defines the issuance context of the contract as including parameters indicating the contract is for an EMD issued by the travel agency. Other standard categories defined by the IATA may include, but are not limited to category H, which indicates the contract is in the form of a paper ticket; category N, which indicates the contract is for a Miscellaneous Charges Order (MCO); and category X, which indicates the contract is for excess baggage (XSB).

Thus, the airline system14, BSP system18, or other suitable system may be able to determine additional characteristics of the travel product beyond that conveyed by form code54based solely on the subcategory number range of the contract number. The subcategory number range feature may thereby allow ticket processing systems to determine additional travel product characteristics without the need for a database query. Embodiments of the invention may thereby reduce processing time and resource requirements as compared to conventional systems having contract number sets60that lack subcategories66. By defining subcategories66within the standard categories62, the subcategory number ranges68may provide stock providers with a tool for allocating contract numbers at a lower granularity than would be possible with the standard categories62alone. The subcategory number range feature may thereby allow stock providers to customize the set60of contract numbers50. This customization may convey issuance context parameters that address the specific needs of the stock provider, while maintaining compatibility with conventional ticket processing systems that lack this feature.

Embodiments of invention may thereby provide a flexible system that enables stock providers to select issuance contexts parameters for differentiation within the standard categories. Subcategories66may be defined for issuance contexts specific to the stock provider in question. This feature may allow the stock provider to allocate a specific number range for transactions corresponding to a specific issuance context without concern for how other stock providers are formatting their contract numbers. Because the subcategories66are defined independently from the stock provider code52, the same subcategory number range may be allocated to a different issuance context by another stock provider. By way of example, an EMD issued by airline having a stock provider code of ‘132’ may define contract numbers in a number range of 132-82-13000000 to 132-82-13999999 as identifying a contract for an excess baggage service. At the same time, another airline having a stock provider code of 456 could use this same subcategory number range (82-13000000 to 82-13999999) to identify contracts for an EMD that adds a chargeable seat feature to a ticket.

Referring now toFIG. 5, a contract number allocation system70may include a stock allocation module72and a reporting module74. The stock allocation module72and reporting module74may be provided by the GDS12as shown, or may be provided independently of the GDS12. In any case, the stock allocation module72may be in communication with an issuance platform80and the reporting module74. The stock allocation module72may include a stock index table76and a stock database78that cooperatively operate to provide contract numbers matching the issuance context of the contract for which a contract number is being requested. The issuance platform80may be part of the airline system14, travel agency system16, BPS system18, or any other system that issues contracts for travel products. The reporting module74may be in communication with the revenue accounting module82, which may be provided by the BSP system18. The reporting module74may be configured to receive contract numbers and issuance context data from the stock allocation module72. The reporting module74may configure this data into a suitable format and provide the data to the revenue accounting module82. In this way, the BSP system18may be able to identify the contract issued by the issuance platform80based on the assigned contract number provided by the stock allocation module72.

The stock allocation module72may manage a plurality of contract numbers for each of a plurality of stock providers. To this end, the stock allocation module72may maintain the stock database78of a given stock provider (e.g., airline) by adding, deleting, or displaying the different contract numbers corresponding to the different types of documents that may be issued by the stock provider. The stock allocation module72may thereby organize the set60of contract numbers50of a given stock provider according to a list of parameters comprising the issuance context of the contract in question.

Referring now toFIG. 6, a table90depicts an exemplary portion of the stock index table76in accordance with an embodiment of the invention. The table90may include a column for each of a plurality of parameters that collectively define an issuance context for each of a plurality of stock issuance context subcategories. Thus, each stock in the table90may have an issuance context that is defined by a row of the table90. The parameters defining the issuance contexts may include, but are not limited to: a user type parameter92, a point of issuance parameter93, a stock provider type parameter94, a stock provider parameter95, a contract type parameter96, contract media parameter97, and contract nature parameter98. The user type parameter92may define the entity performing the transaction. This entity may be an Airline Ticketing Office or Central Ticketing Office, a travel agent, or any other seller of travel products. The point of issuance parameter93may define the location of the point of sale. That is, the point of issuance may be where the system user performed the transaction that resulted in issuance of the contract. The stock provider type parameter94may define the type of entity that issued or distributed the contract. Exemplary stock provider types include, but are not limited to: an airline, a BSP, a rail carrier, or the Airlines Reporting Corporation. The stock provider parameter95may identify the specific organization that distributes the contract. The contract type parameter96may identify whether the transaction is for a ticket, or some other product such as an EMD, MCO, or XSB. The contract media parameter97may identify if the contract is in an electronic, paper, or virtual form. The contract nature parameter98may provide an identifier that allows the stock index table76to identify the kind of contract being handled by the issuance platform80, e.g., a contract for a domestic or an international flight. A stock index100may define the issuance context as including a particular combination of the parameters92-98. Thus, the issuance context of a contract in the stock database78may be identified by the stock index100.

The stock index table76may allow defining and indexing of stock provider contracts based on the issuance context parameters92-98. The stock index table76thereby enables contract definitions to be decoupled from contract number range storage and handling. By way of example, one stock index100may be defined for each existing 7-uplet that defines an issuance context for a contract in the air travel industry. The resulting one-to-one relationship between each 7-uplet and its corresponding stock index100in the stock index table76may define a separate subcategory66of issuance contexts. In an embodiment of the invention, the stock index table76may be managed so that contract numbers conform with Automated Baggage Rules (ABR) issued by the IATA.

Referring now toFIG. 7, a table110depicts an exemplary portion of the stock database78in accordance with an embodiment of the invention. The table110may include columns for the stock provider parameter95, the stock index100, an office ID parameter112, a contract number range114, and a contract description field116. Each column entry in the contract number range114may define a range of contract numbers. A contract number may be assigned from this range to a contract having the issuance context corresponding to the stock index100. Although the tables90and110ofFIGS. 6 and 7are depicted as having a specific number of rows and columns, and each of these rows and columns is further depicted as hosting a particular issuance context, parameter, contract number range, etc., embodiments of the invention are not limited to the illustrated table configurations. Thus, a person having ordinary skill in the art would understand that embodiments of the invention may include stock index tables76and stock databases78having different numbers of rows, columns, parameters, and/or number ranges.

Referring now toFIG. 8, a flow diagram depicts an exemplary process120for allocating a contract number from the stock database78. In response to the traveler indicating that they wish to execute a transaction (e.g., book a flight), the issuance platform80may transmit an allocation request122to the stock allocation module72. In response to receiving the allocation request122, the stock allocation module72may transmit a query124to the stock index table76. The query124may include the context issuance parameters for the transaction in question. In response to receiving the query124, the stock index table76may attempt to identify a stock index100that matches the issuance context of the transaction. In response to the stock index table76identifying a stock index100having parameters that match the issuance context of the transaction, the stock index table76may transmit a response126to the stock allocation module72that includes the stock index100.

In response to receiving the response126, the stock allocation module72may transmit a query128to the stock database78requesting an available contract number from a contract number range114matching the stock index100. In response to receiving the query128, the stock database78may identify the next available contract number from the contract number range114corresponding to the stock index100and/or Office ID112. The stock database may then mark the identified contract number as allocated, and transmit a response130to the stock allocation module72that includes the identified contract number. In response to receiving the contract number from the stock database78, the stock allocation module72may transmit an allocation response132to the issuance platform80. The issuance platform80may then complete the transaction by issuing a contract having the received contract number.

If the stock index table76cannot identify a stock index100that has parameters that provide an exact match to the issuance context of the pending transaction, the stock allocation module72may determine a stock index100that provides a best match. The stock allocation module72may determine which stock index100is the best match based on the number of matching parameters and on relative weights assigned to each of the matching parameters. In an embodiment of the invention, the relative weight of each parameter in the stock index table76may be assigned a value based on scale where each weight is equal to a power of two. That is, each parameter may be associated with a digit of a binary number, with the weight of the parameter corresponding to the numerical value of the digit. Each parameter may thereby be provided with a unique power of two, with the most significant parameters having the largest weight.

To determine the best matching stock index100, the stock allocation module72may select the stock index100having the largest number of parameters that match the issuance context parameters of the pending transaction. If more than one stock index100has this number of matching parameters, the stock allocation module72may calculate a sum of the weights of the matching parameters for the tied stock indexes100. The stock index100having the largest sum may then be selected as being the best matching stock index100and returned to the issuance platform80.

Referring now toFIGS. 9 and 10, an exemplary stock index table140is presented that defines the parameter weight for each of seven parameters as follows: (1) airline parameter weight=210; (2) stock provider parameter weight=29; (3) contract type parameter weight=28; (4) contract media parameter weight=27; (5) user type parameter weight=26; (6) point of issuance parameter weight=25; and (7) contract nature parameter weight=24. An exemplary allocation request122may include the following context issuance parameters: (1) stock provider type=airline; (2) stock provider=057; (3) contract type=ticket; (4) contract media=electronic; (5) user type=none; (6) point of issuance=FR; and (7) contract nature=domestic. Because the exemplary allocation request122does not exactly match any of the stock indexes100in table140, the stock allocation module72may determine a best match for the request.

A weighted match for each of the stock indexes for the exemplary allocation request122is illustrated by the table150depicted inFIG. 10. To determine the best match, the stock allocation module72first determines how many parameters of each stock index100match a parameter of the issuance context for the pending transaction. In the present example, stock indexes I1, I2 and I3 each have six matching parameters, and stock index14has five matching parameters. The stock allocation module72may then calculate the weighted sum for stock indexes I1-I3, which produces the following weighted sums: I1=11111100000 (BIN)=2016 (DEC); I2=11111010000 (BIN)=2000 (DEC); and I3=11101110000 (BIN)=1904 (DEC). Thus, in this exemplary case, the best match to the received query would be stock index I1, which would be returned to the issuance platform80.

Referring now toFIG. 11, a flow diagram depicts an exemplary process160for defining a new stock index100in the stock index table76. Defining the new stock index100may be initiated by entering a system command into the GDS12, such as through a user terminal (not shown). The command may contain all the issuance context parameters associated with the transaction for which the stock index100is desired, and a corresponding number range to be associated with the stock index. An example of a cryptic command that may create this association is:>DSLA/CT-TKT/CM-E/SPT-AIR/SP-176/1000000000-1099999999
The above command may generate a stock index request162requesting creation of the stock index100having a contract type=ticket, a contract media=electronic, a stock provider type=airline, and a stock provider=‘176’. The stock index100so defined may be further associated with the number range 1000000000-1099999999.

In response to receiving the stock index request162, the stock allocation module72may send a request164to the stock index table76. In response to receiving the request164, the stock index table76may determine if the issuance context parameters in the request164exactly match the parameters of an existing stock index100. If a stock index100that exactly matches the entered issuance context parameters is already defined in the stock index table76, the stock allocation module72may retrieve the existing stock index100. If a stock index100exactly matching the entered issuance context parameters is not already defined in the stock index table76, the stock allocation module72may add a new stock index to the table and associate this new stock index100with the issuance context parameters in the request164. The stock index table76may then provide the stock index100(previously existing or newly defined, as the case may be) to the stock allocation module72in a response166.

In response to receiving the response166, the stock allocation module72may transmit a command168that includes the stock range (e.g., 1000000000-1099999999) and the associated stock index100to the stock database78. In response to receiving the command168, the stock database78may add a table entry associating the entered number range (e.g., 1000000000-1099999999) with the stock index100.

The program code embodying any of the embodiments of the invention described herein is capable of being individually or collectively distributed as a program product in a variety of different forms. In particular, the program code may be distributed using a computer readable media, which may include computer readable storage media and communication media. Computer readable storage media, which are inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer readable storage media may further include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be read by a computer. Communication media may embody computer readable instructions, data structures, or other program modules. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above may also be included within the scope of computer readable media.

The methods described herein can be implemented by computer program instructions supplied to the processor of any type of computer to produce a machine with a processor that executes the instructions to implement the functions/acts specified herein. These computer program instructions may also be stored in a computer readable medium that can direct a computer to function in a particular manner. To that end, the computer program instructions may be loaded onto a computer to cause the performance of a series of operational steps and thereby produce a computer implemented process such that the executed instructions provide processes for implementing the functions/acts specified herein.

In addition, program code described herein may be identified based upon the application or software component within which the program code is implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature. It should be further appreciated that the various features, applications, and devices disclosed herein may also be used alone or in any combination. Moreover, given the typically endless number of manners in which computer programs may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computing system (e.g., operating systems, libraries, APIs, applications, applets, etc.), and/or across one or more hardware platforms, it should be appreciated that the invention is not limited to the specific organization and allocation of program functionality described herein.