narksey@cs.ubc.ca
I propose to build a visualization for several days of flight information in which users can quickly and efficiently view at a glance hundreds of flights based on time, cost, and airline.
Users of this visualization will be travel agents at a call-centre working for BTI Canada, a corporate travel management company.
Searching for a flight can be a time-consuming and frustrating task for a travel agent. There are two main problems which make this task difficult. One is the way that flight information is displayed and the other is how flight information is gathered.
Currently, flight information is displayed in a long, plain text list with a lot of details and flight information [see Figure 1]. When a travel agent looks for a flight for their customer, they must sift through multiple pages of flights and often complete multiple search queries if the needs of the traveler are not met with the original list of flights. For each flight, information such as the flight's number, gate and the number of seats for each class of service available is displayed even if these details are not important to the travel agent during the booking process. Looking through pages of flights for multiple queries is time-consuming, inefficient and travel agents can miss flight options for their travelers.
Figure 1 Example of Flight information display
The gathering of flight information is limited because it is distributed through Sabre, a global travel distribution system. All flight information is contained in Sabre's mainframe and is accessed through a network connection. One of the limitations in Sabre is the type of queries which can performed. A travel agent can either query by availability (which flights have seats available to book on) or by low fare (return the cheapest flights you can find). With an availability query, all flights are returned without the price of the flight. A flight must be selected from the flight listing and then priced. If the price does not meet the traveler's needs, the travel agent must start the query over. The low fare query will only return the lowest fares and might not include all travel times. These queries do not meet the requirements of the travelers who are trying to balance many different needs, such as a customer who wants to purchase a refundable ticket (class of service) for the lowest price possible because not all information is available to the travel agent. Also, to query for multiple days, a new query with a new date is needed. To search for many days is very time-consuming and is not often completed.
To solve some of the issues experienced by travel agents, the proposed information visualization solution must:
Be easy to understand and quick to learn.
Return results relatively quickly (within 1 minute).
Display an overview of all flights, but have the ability to get more information about another day and a specific flight if needed.
Filter information the travel agent and traveler do not need to make a decision.
From July 2004 to September 2005, I worked as software developer and project manager for BTI Canada. During this time, I worked on �gent Interface� a front-office application used by the travel agents to book travel. I also worked on the file finishing, quality assurance software and automated ticketing applications. I have gained a great deal of understanding around the world of travel and had the opportunity to work with many different areas within BTI Canada.
Currently, BTI Canada and I have applied for a Industry NSERC award so we can continue our relationship during my Master� program. Their feedback and input will be a valuable asset to this project.
In the proposed solution, FlightView, travel agents will be able to quickly view the airline carrier, cost and length of hundreds of flights over several days [see Figure 4]. An overview will display all available flight information for several days for a specified flight. This will be very powerful to travel agents who, as previously mentioned, would have had to search through pages and pages of text to get the amount of information that can be displayed in the overview. Travel agents will be able to quickly spot special deals for travelers with days worth of flight information. Each flight will be represented as a colored rectangle on a graph where the Y axis will represent the cost of the flights and the X axis will represent the day and time of the flights. Cost and time were chosen for the axis of the graph because these are two of the most important factors for travelers when booking a flight. The Y-axis was chosen for the cost because travel agents can associate low-fares to flights lower on the visualization and higher fares closer to the top. The color will represent airlines will be so travel agents can quickly view flights for a specific airline. It is also important the results for flight information are provided to the user within 1 minute, to minimize the waiting time of the user and the traveler waiting. Initial time trials at BTI Canada showed this is a reasonable expectation and most queries will take much less time than this.
Travel agents will be able to view an overview of the flight information, but also be able to focus on a particular 24 hour time period. One approach to solve this particular focus+context problem is the Bifocal Display which can transform and magnify different dimensions in a visualization [see Figure 2] [1]. FlightView will utilize a simple 1-dimension Bifocal Display to allow travel agents to not only analyze an overview , but also highlight an area for more specific flight details for that time. It is important that travel agents will be able to quickly move over different time periods to share with the traveler all of their flight options.
Figure 2 1-Dimensional Bifocal Display [2]
Travel agents can get more detailed flight information by hovering over the flight. This information will be displayed on the bottom of the screen so the information does not cover up other flights. Also, travel agents will also be able to 'drag & drop' specific flights to a save flight info window at the bottom of the screen so they can compare different flights the traveler may be interested in.
Another important feature in FlightView will be the capability to dynamically filter out fields to simplify their visualization. Utilizing the dynamic filtering ideas used in the FilmFinder [see Figure 3] [3], FlightView will have slider bars on the side of the display where travel agents will be able to filter airlines, price ranges and class of service [see Figure 4].
Figure 3 FilmFinder [3]
One challenge when displaying flights in FlightView will be occlusion. Since an airline, may have many flights for one origin and destination per day for the same price, some of these flights may overlap. One option to fix the occlusion issue is to increase the size of one of the flights so it can be seen [see Figure 5]. This technique will be evaluated with travel agents to ensure it is clear and easy to understand.
A traveler calls into BTI Canada to book flight from Calgary to Vancouver, for business. The travel agent asks the traveler what day he would like to fly. The traveler gives the travel agent the requested date, December 15, 2005. The traveler states they must arrive in Vancouver before 10:00 am, but they can only spend $70 on the flight. The travel agent inputs the dates and the origin and destination into Agent Interface. The travel agent asks the traveler if they have a preferred airline they would like to travel on. The traveler replies that it doesn� matter as long as he gets there on time. FlightView opens up [see Figure 4]. The travel agent reviews the information returned and sees there is not flight available for that day for that prices, but notices there are several flights available the previous day. The travel agent slides the lens over to the previous days flights and informs the traveler there are no flights for the morning, but gives the traveler the flights for the previous day. The traveler states he would like to book one of those flights, the travel agent books the flight by double-clicking in the flight and ends the file.
Figure 4 Initial design for FlightView
Figure 5 Display of flight occlusion
The programming language I will use to develop this solution will be JAVA. I will possibly also use Prefuse or the InfoVis toolkit.
Due to time and space limitations the prototype will use static flight information from a flat file copied from an actual Sabre responses. If the prototype is approved, I will work with BTI Canada to add connections to Sabre and integrate with the current front-office application, Agent Interface.
Nov 4 |
Project Proposal Due |
Nov 5 |
Begin Phase 1: Gather sample data, start implementation |
Nov 16 |
Class update |
Nov 20 |
Phase 1 complete |
Nov 21 |
Begin Phase 2: Implement filters in Java |
Nov 30 |
Phase 2 complete |
Dec 1 |
Begin Phase 3: Implement possible flight information window |
Dec 11 |
Phase 3 complete |
Dec 12 |
Begin write-up |
Dec 19 |
Final presentations & write-up complete |