Hacker News new | ask | show | jobs
by cracauer 2667 days ago
Exactly.

You have to realize the difference between a "pricing search" and a "low fare search", to use ITA terminology.

A "pricing search" knows which specific flights it goes through and you just find the fares (keep in mind the carriers file like 600 fares for planes with 20 seats). The airlines could always do that. Before ITA came along in 2001 or so that is what you were waiting on in the travel agency while the agent tries different flight combinations by hand.

"Low fare search" is also finding the flights. The carriers could not generally do that without ITA. There are exceptions such as Southwest which had a fare structure more like buses that kept the combinatorics down.

But in addition to the immense amounts of fare and rule data that pile on your if you search 400 itineraries out * 400 back you also have the seat availability system. No carrier had (probably has) a system that can answer the amount of "seat" queries that a single low fare search causes.

Keep in mind "seat availability data" has nothing to do with what seats are available. It is a high-frequency (10 Hz or whereabouts) way to turn fares on and off.

1 comments

Interesting. Thanks for the reply.

>"A "pricing search" knows which specific flights it goes through and you just find the fares (keep in mind the carriers file like 600 fares for planes with 20 seats)."

Wow why so many? This seems excessive?

Could you elaborate on:

>"But in addition to the immense amounts of fare and rule data that pile on your if you search 400 itineraries out * 400 back you also have the seat availability system. No carrier had (probably has) a system that can answer the amount of "seat" queries that a single low fare search causes."

I didn't understand the "400 itineraries out * 400 back you also have the seat availability system" part. I din't understand the math and how it enables a "seat availability" system.

Lastly are all of the limitation really due the legacy Sabre booking system that the carriers all use? I guess I didn't realize what a huge innovation ITA was.

I would say the lack of limitations is the problem.

Quoting from my notes for my 2006 conference talk:

The Easter Island west of Chile has - One flight departing today, one flight arriving today. Friday there was no flight at all. - fares touching Easter Island covering this flight: 1432 published, 160,000 constructed

Apparently I didn't count fare-by-rule fares. Yes they have 2 mechanisms to make up fares during the query.

The rules are complicated. In fact Turing-complete. So you can have unlimited number of fares, too.

"400x400 itineraries" means you construct 400 ways to get to the destination and 400 ways to get back, for a round-trip which is what most people search for. So if you go Boston-Hamburg all the intermediate airports cause variants. The same flight at a different time is different and causes a new itinerary. So this is really not as deep a search as you would think.

When I abused my testing rack at ITA to search for flights home (Hamburg), I used 3500x3500 itineraries (using a specially compiled QPX with limits raised). Rarely but occasionally it would find obscure flights that would make it cheaper, flights not covered by regular limits.

Oh and the carriers all insist on using a specific currency conversion table for the day. We had a whole bunch of them. Nobody really defines currency rates. And there are a lot of them.

I already mentioned several hundred of timezones. IIRC all carriers were happy with the same timezone file, amazingly. I think that was because ITA was the first to do one that comprehensively?

And that's just the fares. We didn't talk yet about seat availability.

You have to ask for seat availability for the complete fare-component, the thing that a fare covers. So if you go Boston-Copenhagen-Hamburg you don't just do seat queries for Bos->CPH and CPH->BOS, you are required to ask those questions in a context that says you travel BOS->HAM.

The seat availability for the same seats on the same flights on the BOS->CPH leg is different depending on whether you ask in a BOS->CPH context or a BOS->HAM context.

You can see how asking all those seat availability queries for all the different ways to fly in the query explodes nicely. Combinatorics at work.

Here is more info: http://www.ai.mit.edu/courses/6.034f/psets/ps1/airtravel.pdf

It's from 2003, thing got a lot worse since then. The carriers make the rule mechanisms without having mathematicians or computer scientists at hand that watch the combinatorics. They have enough trouble not misfiling fares altogether (aka $0.02 fare NYC->London next Friday).

Another example from my 2006 conference notes. Assume you want to go from Easter Island to Aalborg, Denmark. Not a commonly traveled market. Cough. Just the number of fares filed by the data directly for this route is 57. Direct fares (for calculation without considering using 2 fares) from Easter Island to Copenhagen is 157.

You can see that when itineraries between other locations want to try out going through Denmark they pull in a lot of those fares. They add up if you do 400x400 itineraries.