System for synthesizing travel cost information5191523Abstract The present invention is directed to method and apparatus forming a system for deriving from computer-based travel reservations systems specific cost and time information, on per-unit basis, such that accurate cost information may be produced for comparison purposes. Using a programmable computer under control of a program instruction set, individual data segments of a given trip between two points (origination-to-destination) is reduced to a common per-unit basis permitting uniform comparison and analysis. The process identifies each trip having an origination and destination by a unique name, determines the number of connecting segments flown, the number of miles flown, the amount of time from departure to arrival, and the costs on per-hour and per-mile basis. Claims What is claimed is: Description TECHNICAL FIELD
______________________________________
Origin Destination
Price
______________________________________
NYC LAX $900.00
______________________________________
A similar direct flight might stop briefly in Kansas City with no discernible difference in origination-to-destination travel distance, having a slightly reduced fare, and resulting in the following reservation system format information:
______________________________________
Origin Destination
Price
______________________________________
NYC LAX (KCY) $750.00
______________________________________
Under the hub-and-spoke system, a similar flight might originate in New York, change planes in Atlanta, and then go on to Los Angeles. Such a hub-and-spoke trip will have a much longer origination-to-destination travel distance, have a similar fare, and result in the following information:
______________________________________
Origin Destination
Price
______________________________________
NYC ATL $000.00
ATL LAX 750.00
______________________________________
A more complex series of segments might include a first stop in Atlanta, travel to Denver with a change of airplanes, then on to Los Angeles. This might be displayed as follows:
______________________________________
Origin Destination
Price
______________________________________
NYC ATL $000.00
ATL DEN 000.00
DEN LAX 750.00
______________________________________
Clearly, segment data is more difficult to present. It is not displayed on a single line but rather on multiple lines in a manner which greatly complicates the determination of associated data. Flight time information for a given flight is also obscured; a given non-stop flight might be listed with the following format time information:
______________________________________
Origin Destination
Price Depart Arrive
______________________________________
NYC LAX $900.00 08:15 AM 1:15 PM
______________________________________
Now examining a similar flight, again with a stop at Kansas City, the following information might be displayed:
______________________________________
Origin Destination
Price Depart Arrive
______________________________________
NYC LAX (KCY) $750.00 08:15 AM 2:00 PM
______________________________________
Here, the slight difference is obviously an accumulation of the additional landing, ground, and take-off time for the Kansas City stop, which information is again easily determined. The total travel time in this example is, simply, 5 hours and 45 minutes plus 3 hours for the time zone conversion. A hub-and-spoke trip stopping in Atlanta, however, might be displayed:
______________________________________
Origin Destination
Price Depart Arrive
______________________________________
NYC ATL $000.00 8:15 AM 11:15 AM
ATL LAX $750.00 12:15 PM 5:15 PM
______________________________________
And a flight from New York to Los Angeles with a stop in Atlanta and a change of planes in Denver may be displayed as:
______________________________________
Origin Destination
Price Depart Arrive
______________________________________
NYC ATL $000.00 8:15 AM 11:15 AM
ATL DEN 000.00 12:15 PM 1:15 PM
DEN LAX $750.00 3:15 pM 6:45 PM
______________________________________
The total flight time of the individual segments is greater than the flight time of either a non-stop or a direct, one-stop flight, and without indicating arrival/departure/arrival delays for the segments, the information available from the reservation system database distorts the total travel time unless origination departure to destination arrival times are separately available; they are ordinarily displayed on separate reservation lines, adding difficulty in determining the total travel time determination. Multiple stops in different time zones, especially on an East to West flight, tends to obscure the flight time when only segment flight data is available. The segment data available does not permit determining the shortest distance between points. Cost-per-unit time and/or distance and both total travel time and time-per-unit determinations are very difficult to obtain from the above example. Without a standardized reference of costs, such as cost per mile or kilometer, and without an accumulated or other time reference, the cost per mile and cost per hour cannot readily be determined. SUMMARY OF THE INVENTION The present invention combines a programmable computer with a processor, such as a microprocessor, with communication links to one or more remote reservation system databases accessible via computer, output display or printing terminals for providing human-readable output, and a machine-readable program instruction set to provide a system for determining true origin-to-destination travel data from segment travel information stored as segment data in a travel reservation database system. From the complex segment information, the present invention derives certain travel information not explicitly contained within the segment data, and through reference to a separate local database or data storage unit, determines true travel cost and time data with reference to standard units, providing for example, cost-per-distance-unit and travel distance-per-time-unit, enabling further processing to determine effective direct costs such as fare price and indirect costs such as travel costs per unit of employee time. The segment data is processed according to the program instruction set to provide a unique, single line block of data reflecting the segment-derived data block, then a unique identification tag or name is associated with the data. As necessary, longitude and latitude information for the origin and the destination is retrieved from another, local database, and great circle distance calculations performed to determine the true distance between origin and destination. Also as necessary, the fare basis codes are assessed to determine the most restrictive fare rule applicable to the particular trip and translated into a FareDex code, and the trip is then analyzed to determine the advance purchase period between purchase and travel, which information can supplement the FareDex code. As necessary, the departure and arrival times are adjusted for time zone differences (as well as Standard/Daylight Savings time variations) to determine the trip time. The great circle distance, the fare cost, and the trip time are then subjected to further calculations to determine cost per mile, cost per hour, and distance per hour. It is an object of this invention to improve the reliability of actual cost determinations in calculating travel expenses. It is an object of this invention to improve the reliability of actual travel time determinations in calculating travel expense. It is an object of this invention to improve the reliability of actual cost determinations, including paid travel time in calculating travel expenses. A feature of the present invention is the determination of actual shortest-path travel distances from a series of travel segment data. Another feature of the present invention is the association of a group of segment data with a unique label or tag. BRIEF DESCRIPTION OF THE DRAWING FIGURES With these and other objects, features and advantages of the invention that will hereinafter become apparent, the nature of the invention may be more clearly understood by reference to the following description of the best mode of the invention, the appended claims, and the several views presented in the attached drawing figures, in which like reference numbers represent like elements in all views: FIG. 1 is a simplified block diagram of the invention; FIG. 2 is a more detailed block diagram of the invention, including certain additional features; FIG. 3 is a summary of the analysis procedure performed according to the method of the invention; FIG. 4 is a simplified flow chart illustrating portions of the analysis procedure; FIG. 5 is another simplified flow chart illustrating further portions of the analysis procedure; FIG. 6, consisting of 6AA-6B, is an object code listing of the program instruction set used by applicants; FIGS. 7a and 7b illustrate four examples of use of the present invention; and FIG. 8 shows a subroutine for correcting the origin-to-destination fare. BEST MODE FOR CARRYING OUT THE INVENTION The system for synthesizing accurate travel costs forming the present invention 10, also known as an Origin and Destination analyzer, is shown in simplified block diagram form in FIG. 1. Remote from the system 10 is a travel reservation database system 12 such as COVIA, PARS, or SABRE in which detailed information about a given trip, such as an air travel trip, is stored as a collection of multiple-segment portions of the trip. The present system 10 alternatively envisions the substitution of such a reservation database system by any other database storage systems capable of locally storing large amounts of data, including optical storage technology or the like, such as may be provided with compact disk-read only memory (CD-ROM) and write once, read many times (WORM) storage devices. A programmable computer 14, including a processor 16 (central processing unit), provides a means for manipulating travel data and performing multiple calculations; it may be preferably situated at a location designated for use of the present system 10, such as a travel agent's main or remote office, or a corporate business or government office. Plural systems may be linked, and plural terminals may be linked as subsystems to a system 10. Also included with the programmable computer 14 are an input device 18 such as a terminal and which is connected to processor 16, an instruction set 20 in communication with processor 16 for directing control thereof, and at least one output device 22, such as a display unit or printer, also connected to the processor. Further elements of the system 10 include a means for selecting data 24, a data block generation means 26, and a data block naming means 28, which elements may be included as operating portion's of the programmable computer 14. External to the programmable computer 14, and forming a part of the system 10 are a data communications and retrieval unit 30 and associated telecommunications link 32 in signal communication with the remote travel reservation database system 12. These elements preferably comprise a high-speed modem and telephone line or the equivalents thereof. In the case of the travel reservation database system 12 being located with the system 10 of the invention, the telecommunications link may simply be a cable or the equivalent. Direct link, leased lines, and radio communication may also be used. Turning now to FIG. 2, an expanded network of Origin and Destination analyzer systems for synthesizing accurate travel data according to the present invention is illustrated in greater detail, including illustration of plural systems at different locations and a remote subsystem connected to one system. A system 10 for determining true origin-to-destination travel data from segment travel information stored as segment data in a computer-based travel reservation database 12 is installed at a travel agency, and having the terminal 18 and processor 16 for capturing, storing and processing segment data and the data communications and retrieval unit 30 and telecommunication link 32 shown in FIG. 1. The system 10 communicates with a computerized travel reservation system 12, also as shown in FIG. 1. The system 10 may also include or be connected to a corporate operated travel management system 110 for storing and processing segment data having a terminal and a processor, via another telecommunications link 38 to the travel agency's Origin and Destination analyzer system 10 or to computerized accounting equipment 40 when available. The travel agency system 10 is joined to the remote travel reservation database system 12 where multiple data storage units 42, 44, 46 are usually located for storing schedule information (i.e., the schedule segment data), tariff or fare price data, and fare rules data, respectively. Upon the completion of the booking of a particular trip, the travel segments forming the complete booked trip are requested via the data communication and retrieval unit 30 via telecommunications link 32 and communicated back to the travel agency Origin and Destination analyzer system 10 or computerized accounting equipment 40. The segment data may be processed at the agency or communicated to the corporation travel management system 110 via telecommunications link 38 for local processing there. Operation of the travel cost information system 10 in its broadest sense is illustrated in flow chart form in FIG. 3. The system 10 is initialized to prepare for operation, then a system operator enters data through input means 18 to control retrieval of flight segment data from a travel reservation database system 12 via the retrieval means 30 at step 200, which may be accomplished through program instruction set 20 control, with assistance from the program instruction set 20, or separately, as determined by the system and software configuration available. This segment data is captured from the database 12 and particularly, from the data storage 42, and then stored locally within the programmable computer 14. Data may also be retrieved from the data storage 44 or 46. The data retrieval is to be routinely accomplished at the time of flight reservation and ticketing. This information may also be retrieved prior to making the reservation, or thereafter for later analysis, including after the trip has been completed, provided that the database 12 data has not been updated to destroy the applicable data. Once the segment data is received from database 12, the operator initiates the program instruction set 20 routines via the input means 18 at step 202, initiating analysis and processing of the retrieved segment data into true origin and destination data by the programmable computer 14 at step 204. Processing of the segment data (steps 204 and 206) is shown in FIG. 4 and described in greater detail hereinafter. In step 206, the programmable computer 14 generates true origin and destination data for the selected trip. In order to simplify further processing of data associated with the selected trip, the programmable computer 14 (operating under control of the program instruction set 20) assigns a new name or identification tag for the true O&D data block in step 206. The operator may also then select and initiate routines of the program instruction set 20 to compute the O&D fare, the O&D distance, the O&D trip time, the O&D cost per unit distance traveled, the O&D cost per trip time, the O&D cost per unit of time, and/or the fare base according to standard fare codes. This information may be displayed for review by the operator and printed out or otherwise communicated to a client at step 208. Turning now to FIG. 4, the steps 204 and 206 of FIG. 3 are described in greater detail. Following startup, data retrieval, and initialization of the process in steps 200, 202, the program instruction set 20 includes the steps of beginning data analysis at START step 300. The number of flight segments for each origin and destination is counted to produce a "Segment Count"; the segment count is set to 1 in step 302. This process identifies the origin row and the destination row of data; the steps of identifying these rows may vary among reservation systems. The process illustrated in FIG. 4 analyzes data in one common format. The precise method steps or identifying the origin and destination rows may vary among reservation systems and in a given system over time. The method disclosed herein is thus to be viewed as illustrative and not specifically limiting of the appended claims. The "O&D" Base, which is used to sum the cost of the segment flights, is set to 0, step 304. The program instruction set 20 directs the programmable computer 14 to read the first row of segment data (i.e., segment one) at step 306. The flight "Origin City" is set equal to the "Depart City" code found in segment one at step 308. The "Origin Time" is set equal to the "Depart Time" in segment one at step 310. The "Fare Code" is set equal to the Fare Base Code found in segment one at step 312. The programmable computer 14 then compares the destination city with the arrival city in a test to determine whether the "To City" equals the "Arrive City," step 314. In block 314, FIG. 4, the arrival of one flight and departure of a subsequent flight can be analyzed to determine if a connecting flight or a layover is represented. This is described more clearly in FIG. 6BB-6BH. This analysis is facilitated by adjustment for changes from travel through successive time zone changes, variations in local time zones, including Daylight Savings/Standard Time, and/or such time system changes as occur during the travel period. See FIG. 6BB et seq. and the discussion of FIG. 5, blocks 370 and 372. Returning to FIG 6BH, the elapsed time in hours and minutes is calculated, then ordinary time zone differences are included, and adjustments are made as required. If the result of this test at step 314 is false, the segment one row of data does not contain information about the passenger's final destination. The programmable instruction set then initiates a loop consisting of steps 320, 322 and 324. The "Segment Count" is incremented by a count of one (1) at step 320. The "O&D Base" is incremented by adding the "Segment Fare" at step 322. The programmable computer 14 then retrieves and reads the next row of segment data at step 324 under program instruction set 20 control and again compares the destination city with the arrival city in a repeat of the test if the "To City" equals the "Arrive City" at step 314. When the result of the step 314 test is true, step 330 will identify the row that contains accurate information about the trip destination, and the program instruction set will advance to the next step. A unique name or identification tag is next determined for the true Origin and Destination data associated with the trip and assigned to that block of data. This block of data may now be represented as a single row of information. The "Segment Count" is compared with the number 1 in step 332. If the "Segment Count" equals one (1) in step 332, the "Connection City" is set to null (0) in step 334; there was no connecting flight. If the test result is false, the "Segment Count" is incremented by 1 and the test is repeated to test if the "Segment Count" equals two (2) at step 336. If the result of this test is true, then there was one connection. The program sets the "Connection" count equal to the "To City" in segment row one (1) in step 338. If the result of the test is false, then the passenger incurred more than one connection stop. The "Connection" count is then set equal to the "Segment Count" minus one (1) in step 340 to indicate the number of stops made by the passenger. Next, the "Destination" is set equal to the "Arrive City" for the current segment row at step 342. "Destination Time" is set equal to the "Arrive Time" in the current row at step 344. Returning now to FIG. 3 at step 204, the source data required for generation of secondary data at the completion of step 204 has been read and analyzed. Secondary data is defined here as that data which must be inferred from the analyzed O&D trip data since this information is not available in the reservation system database 12. This secondary data is also referred to as "true origination and destination travel data" herein. The processing of the O&D data at step 206 of FIG. 3 is set out in greater detail in FIG. 5. The flow chart of FIG. 5 is a continuation of the flow chart diagram of FIG. 4. The program instruction set 20 directs the programmable computer 14 to identify a row of true O&D data associated with the desired trip being analyzed at step 348. Among the information usually found most useful is cost information, which can be derived from segment fare data stored in the reservation system database 12 data storage units 42, 44, 46. The O&D Base Fare is identified in step 350, which base fare is the sum of segment fares of FIG. 3, steps 312, 314, 320, 322, 324. Under control of the program instruction set 20, the programmable computer 14 next calculates the applicable tax by multiplying the "O&D Base Fare" by the percentage of the required tax in step 352. The "Applicable Tax" is then added to the "O&D Base Fare" to derive the full "O&D Fare" at step 354. Next, the "Origin City" and the "Destination City" codes are identified by reference to the local data storage 34 in steps 356 and 358. The respective latitude and longitude for the "Origin City" and the "Destination City" are identified by reference to the local data storage 34 in step 360. Based upon these respective latitude and longitude coordinates, the direct, or Great Circle flight distance is calculated in a convenient distance unit, such as miles or kilometers, for the distance between the "Origin City" and "Destination City," step 362. The result of this calculation is stored as "O&D Miles" in local data storage 34. The "Cost Per Mile" is then calculated in programmable computer 14 under control by the program instruction set 20, by dividing the "O&D Fare" by the "O&D Miles," step 364. The "Origin Time" and the "Destination Time" are identified in steps 366, 368, respectively. These items must be converted to a common reference as the travel route may well extend beyond a single international time zone, and certain trips may extend in duration through a change from Daylight Savings time to Standard time, and vice-versa. Thus, the time zone and daylight savings time factors for the "Origin City" and the "Destination City" are identified from the local data storage 34 at step 370 and the trip time between the two cities is calculated in step 372, based upon time zone and daylight savings factor and the departure and arrival times. The result of this calculation is stored as the "Trip Time." Trip "Cost Per Hour" is calculated by dividing the "O&D Fare, by the "Trip Time" in step 374. Turning now to FIG. 8, there is shown a subroutine for correcting the origin-to-destination fare, at the step represented by block 363, in generating a true origin-to-destination fare amount. The fares are processed so that the sum of the fares always equals the total invoice amount. See FIG. 6AP-AQ. From block 362 (FIG. 5), the O&D Amount is compared with a segment fare value of zero, block 365 (FIG. 8). "IF (SUM.sub.-- OD.sub.-- FARE .GT INV.sub.-- AMT) THEN . . . " (see FIGS. 6AP-AQ); and in block 375 (FIG. 8): "ELSE IF (ZERO.sub.-- FARES .EQ 0) THEN . . . " (see FIGS. 6AP-AQ); and where the O&D amount exceeds the invoice amount or is less than a minimum amount, a further comparison takes place in block 369. When there is more than one O&D zero fare segment and the itinerary does not equal zero, the subroutine proceeds to block 367; "ELSE IF (ZERO.sub.-- FARES .EQ 1) THEN . . . " (see FIGS. 6AP-AQ); and if the itinerary equals zero then the subroutine proceeds to block 371: "ELSE" (see FIGS. 6AP-AQ); At block 367, where only one of the segment fares is zero, the subroutine locates it and makes it equal to the amount missing, e.g., "subtract sum of O&D's from itinerary amount to compute missing amount". Alternatively, where several segments reflect zero fare amounts, block 371, the total cost per mile from block 364 (FIG. 5) is used to allocate the difference between O&D's by the miles. That is, for each zero fare segment, the total cost per mile for the missing fare miles is used to calculate the individual O&D segment fare. The corrected origin-to-destination fare is output at 373. Fare codes are common in the travel industry. Airline fare base codes, for example, are comprised of accepted industry abbreviations. These codes can be expected to vary with time and initially, among air carriers. The "Fare Base Code" is identified in step 376. The fare base code is assessed to determine the most restrictive fare rule that applies to the fare for the particular trip, step 378. For convenience in handling the true origin to destination data, equivalents of similar standard codes in current use may be produced and applied. The codes used in the present invention have been produced by Prism Group, Inc., Laurel, Md., and are called herein "FareDex" codes. These codes are the property of Prism Group, Inc. and are presented here for illustrative purposes only and are not to be viewed as limiting of the appended claims as other equivalent codes and code systems may also be used herein. Based upon the most restrictive fare rule identified in step 378, the FareDex code equal to the most restrictive rule in the "Fare Base Code" is set in step 380. FareDex codes change over time; examples of some FareDex codes are:
______________________________________
FAREDEX TRANSLATION TABLE
FARE BASIS FAREDEX
CATEGORY FARE-TYPE EXAMPLES CODE
______________________________________
Full Fare
First Class F, Y First
Business Class
C, J Business
Coach Y, Y9, Y29 Coach
Negotiated
Government DG NGov
Fares Military MM NMil
Round Trip
No Restrictions
R RT
Excursion E RTR
Advance 3-30 Day A, AP AP (3-30)
Purchase Advance
Restricted
Airport JFK, DCA, IAD
DAIR
Discounts
Passenger VUSA DPAX
Flight FLT DFLT
Weekday X DDAY
Weekend W DEND
Peak PEAK, PK, H DHI
Off-Peak DOFF, L DLOW
Controlled M, Q, H, Z DCAP
______________________________________
The "Ticketing Date" and the "Origin Date" are identified in step 382, enabling computation of the number of days between the "Ticketing Date" and the "Origin Date" to determine the number of "Advance Purchase" days, step 382. At this stage, most of the information usually desired but not available from the available segment data has been extracted; however, additional information may be calculated with additional input, as for example, an executive's valuable time may be calculated in the cost per hour, or cost per mile calculations when the executive's salary is input by &.he operator. Under control of the program instruction set 20, the programmable computer may be directed to repeat the procedure. If this is the case, a determination is made to determine if there is another row of O&D data at step 386. If another row of O&D data is present to be analyzed and processed, the test result is true 388, and the procedure is returned to step 300 of FIG. 4 to begin the procedure again. If no further O&D data is present, the test result is false and the procedure ends, 300. A detailed, annotated listing of representative code illustrating one form of the program instruction set 20 with which the present invention is carried out is presented in FIG. 6. The program code listing is representative; applicant thus claims equivalent code in other program languages within the scope of the appended claims. Four example trips, illustrated in FIGS. 7a and 7b, are described in the following cases: Case 1 Reservation Data--Case one incorporates two non-stop segments; each segment has the complete data for the origin and destination of the flight in one row of data. The only data missing from Row 2 in this example is the passenger's name and the carrier (the carrier is shown in Row 1). O&D Data--The O&D analyzer system 10 first enters the passenger's name and invoice number for Row 2, enabling determination of the exact flights flown by each passenger. The O&D analyzer 10 then calculates the following derived information: segment amount with tax, miles flown, cost per mile, trip time (expressed as hours and minutes), cost per hour, a translation of the fare basis code to a FareDex code, and the number of days the ticket was purchased in advance of departure. Case 2 Reservation Data--Case two comprises one connecting flight. The origin is Newark (EWR) with one connecting stop in Chicago (ORD), continuing on to a final destination in Portland (PDX). The segment amount shown in Row 1 is 0.00 because the passenger has purchased a flight to Portland, not to Chicago. Row 2 shows the actual flight fare amount but only the second segment flight information. The price reflects the complete trip, not just the Chicago to Portland segment. O&D Data--The O&D analyzer system 10 identifies that the To.sub.-- City in Row 1 is not the destination city. By comparing the To-City in Row 1 with the From.sub.-- City in Row 2 and the time between connections, the analyzer system determines that the flight is a connecting flight. A new row of data is written indicating that the trip is from EWR to ORD to PDX, and that the trip includes two segments. It then calculates the actual fare with tax, the distance from EWR to PDX in miles, the cost per mile, the trip time between EWR and PDX, the cost per hour for the trip, a translation of the fare base code, and the number of ticket advance purchase days. Case 3 Reservation Data--Case 3 depicts a round trip on flights with different connecting carriers. While the trip actually included only two destinations, Newark to Phoenix and Phoenix to Newark, the data shows four flight segments. O&D Data--The O&D Analyzer 10 rewrites the four flight segments into two origin and destination rows. Row 1 depicts the connection in Washington, D.C. at Dulles Airport: EWR IAH PHX. Row 2 shows the return flight connection to Denver: PHX DEN EWR. Additional information for each origin and destination is written for each row as is described in Case 1 and Case 2, above. Case 4 Reservations Data--Case four shows a trip including two connecting flights to Phoenix and a return trip on one connecting flight to Newark. Although the trip includes only two destinations, the reservation format displays five rows of data. O&D Data--Two connections are required to the first destination en route to Phoenix. The O&D analyzer 10 rewrites these three rows of data as one row with the following route: EWR 2 PHX; thus distinguishing the first trip from other trips making only one stop. The second flight including two segments is written as one origin and destination row with the route: PHX DEN LGA. Additional O&D data is then written for each row as is described in Case 1 and Case 2, above. Having described an exemplary embodiment of the invention, it will be appreciated that various alterations, modifications, and improvements, though not expressly described hereinbefore, are nevertheless intended to be included within the scope and spirit of the invention. Accordingly, the foregoing discussion is intended to be illustrative only, and not limiting; the invention is limited only by the following claims and the equivalents thereof.
|
Same subclass Same class Consider this |
||||||||||
