OMG, I've been waiting for someone to build something like this forever.
I've always hated the fact that all major travel sites work based on the assumption that you already know exactly when and where you're going, rather than at least giving you the option to explore your options.
The problem you have is that flight data is incredibly fast-changing and computationally expensive to get. So in order to get enough data for this you need to do a lot of long queries very often. Companies that provide pricing information (like ITA, who Kayak uses) charge a lot for these resources, so it's not like the usual internet where your incremental cost per user or search is minimal: there's a real cost here. The entire architecture was build on one-off "price from X to Y on this day", building a layer of generality to that is fairly difficult.
Full disclosure: I used to work at TripAdvisor on flights.
Yep, that's exactly right. Every metasearch site out there uses essentially the same interface: given an origin, destination, departure date, and arrival date, return a list of itineraries in order of increasing price.
Needless to say, the number of combinations of these variables precludes doing any kind of exhaustive search (especially since you're being charged per query). And availability is constantly changing, so your results are potentially out-of-date the instant you receive them.
Given these restrictions, the only way to support such broad-ranging queries as "where can I go for less than $1000?" is to cache results from previous searches and attempt to guess at the answer. Which is why, when you start narrowing down date ranges and choosing more obscure airports, the results quickly become so sparse as to be useless.
Broadly agree with this and the parent - but there's an interesting alternative way to look at travel metasearch.
If you think of obtaining prices as being akin to 'indexing', then what metasearch engines are doing is building up a search index for flights. And not all price sources necessarily charge for data (do Google pay to index Hacker News?)
Flight prices become stale as do indexed web pages - and as long as the user doesn't pay a transaction price for any search activity, then you can re-check pages based on user activity - in the case of travel, re-check the price once the user nears the booking phase of the funnel.
As noted though, sparseness of travel queries is certainly tricky! The 80/20 rule applies to some extent, and popular routes will be the ones which have the best price cache.
Another disclosure: I work for Skyscanner (our core is a flexible travel search engine)
I imagine that the kind of traveller looking at this map wouldn't care so much about the direct A-to-B-ness of flights, given that they don't even care that much about where they're going in the first place. They just want to go somewhere interesting, for cheap.
Therefore, rather than only considering the single lowest-cost edge on the graph (that is, an A-to-B flight to an interesting place), you could consider lowest-cost paths, using a pathfinding algorithm (secondarily weighted by the popularity of intermediate cities/vertices as temporary destinations.) Thus, instead of going to city X, it would recommend going to Y, staying a month and taking in the local culture, and then finishing the trip to X with a short, local flight in the off-season (or any other method of travel—it could integrate with Google Maps to see if it would be cheaper to drive between each pair of intermediate nodes than fly.)
I fought this challenge a few years ago and made some some (albeit, little) progress. Besides not being fully versed in programming, I ran into many other problems from processing time, threading, concurrency, but as a number of you mentioned, the biggest challenge is cost. The throughput with or without intent to purchase wouldn't come close to covering the cost of queries. There are ways to offset this- using on/off site marketing, limiting query combinations, and partnerships, but the problem is big- and grows bigger with each subtle change in the query. Cacheing results can help, but the real value of the tool diminishes with each cached result.
I went back and forth with Bill O (at Kayak) while leveraging their API, and know the cost/query was fairly high a few years ago. I suspect it has decreased, but probably not to the point where the processing power needed for massive permutations and cost/query makes this any more feasible.
I set up a proof of concept in 2006/2007 that still works (most of the time). I ended up using Flash/Flex front-end to overcome the number of browser HTTP connections (and keep some of the processing on the client). I'm not sure this actually helped the server or not b/c I never did any testing. I also limited to "where can you go" (multiple city pairs) and "when should I go" (single city pair with multiple dates), but not a combination of both.
Feel free to take a look. It will shut down after the max number of queries/day is reached.
We actually started building such a product for India where the problem complexity is much smaller (only about 20 prominent airports, majority travel by train where prices are static, only availability varies with time).
Availability of data APIs turned out to be a big hurdle for a bootstrapped startup. The market is still up for grabs. Here is another attempt by an Indian startup:
Yea, I was actually seriously looking into the idea of starting a travel site like that a couple of years ago. But it all basically fell apart once I realized how much it would cost to get the necessary data I'd need.
so, i built something almost exactly like this for myself to use, except it doesn't display itself on a google map. instead, it cross-references itself with a database of people.
i use it when i'm hiring sports officials, to find the ones that would be the cheapest to fly in. never really considered how useful it would be for others.
i feel dumb as hell, looking at this and seeing what i could've done :*-(
don't feel dumb, just put it up, add user accounts/Facebook, and make it a group travel planning tool. I could've used something like that while helping plan a bachelor's party.
i probably will, but it just kind of takes the wind out of the sails to know you're half copying something. that spark of "i'm doing something neat" isn't quite there.
I think he means it would be useful when used for a geographically distributed group. You could find the cheapest place for a reunion based on total cost of airfares, and split the cost evenly.
noodle, this is a great idea, don't give this up just because there's another competitor in town.
Please ping me if you are interested in pursuing this further. I can link you up to startup that could definitely make use of this to compliment their trip planning service.
i suppose the issue i was trying to convey is that i wasn't giving up, i was never aware that i had something to give up on. never thought of the thing as a useful tool for me and a few others, since everyone i showed it to thought it was neat, but i was the only one who ever actually used it.
Sure, just so long as it doesn't tell us all to vacation in Frankfurt airport;)
To put it another way: The results for this kind of query are often going to be the big travel hubs. These may not always be the kind of destination that your users want.
Once you have the basics in place, adding a filter to say you only want to go a place with nice beaches or close to ski slopes or whatever should be fairly trivial. And anyway I'm sure my friends and I could have an awesome vacation in Frankfurt.
You just need to take it to a personal level. Bring it down to Facebook, see what your friends like/shared and generate options saying "Friend A is thinking of Trip B in Timeframe C. Would you like to join in?" or something along those lines.
Yea but dont rely on the data that is displayed, i just checked out 5 flights and the flights listed there were not even close to what i found on the website itself.
my problem is, I know my travel dates (mid-August) and I know my budget, but still not sure where to go. Unfortunately Kayak searches (including this very cool hack) are useless at solving that.
P.S. ITA Software Matrix is good at this if you have a list of places, but not for random destinations.
What am I missing, why is this useless? You can specify your budget as the max price, and the "Thinking about" to August 2010. Granted, you can't specify "mid-August", but within a single month, usually airfares only change based on the days of the week of both segments.
Now that's just plain neat. And useful, since I'm currently considering where to go on summer holidays.
I do notice that it doesn't add extra destinations as you zoom in, though. For instance I can zoom in on Colorado as much as I like and it won't tell me that I can fly to Denver (even though there's probably twenty flights a day). Nor will it give me a price for Paris, but Nadi, Chennai and Oaxaca are much higher priorities.
Yeah... it also changes the destinations based on which timeframe you choose up top. I'm willing to bet that Kayak is for the most part simply caching the results that other people have recently searched for on the site and showing those when available.
Wow, talk about impressive. Just curious about the tech behind this. Do they just cache a bunch of average prices together between major airports and just set a max limit? Surely it can't do fully comprehensive search at the speed it runs at.
Their database only contains cached results from previous searches. Kayak doesn't store the entire population of flights themselves - they forward users' queries onto a 3rd party flight inventory provider (ITA Software), then cache the results to power services like these.
This means that results are likely to be current and complete on popular routes, but far less so on the long tail.
They're definitely showing you historical prices from their cache. Kayak gets such a huge volume of traffic that they can use the lowest price on that route seen in the last 24 hours and have pretty good coverage/accuracy.
Personally, this thread is eye opening because I work on a similar product. I saw this when it came out (a couple weeks ago maybe). My first impression wasn't that it was particularly impressive, but apparently I just don't know what's cool for users in a travel product =P
The novice sometimes has "the potential" fogging their view of reality. While for the expert, sometimes the shadow from what-is-lacking mountain covers both.
One thing I would love to see is adding larger/fuzzier destination areas such as "the tropics", "the carribean", "the mediterranean", "Africa", "South America", or "Mexico".
It doesn't contain any real information, and is targeted at people who want to take holidays, instead of just flights, but is the same concept.
It'll also do some analysis of your facebook profile to automatically sort results so you instantly get relevant places to go.
It's still purely a proof of concept, and a bit crashy on Heroku because of a bug in the facebooker ruby gem (don't facebook connect right now!), but that should be fixed when we have more time to work on it.
This is great and I've been looking for something like this for a long time.
The only thing it needs now is to allow you to better refine the time period (e.g. only weekend trips, or only two weeks in October, etc). As it is now, it's great for people with a month or more off of vacation, but doesn't quite do it for the rest of us yet.
Well, it gives a rough order of magnitude, and might encourage people to consider destinations that they would have thought were too expensive. As in "Gee, I was going to go to Salt Lake City, but it turns out I can get to Lima for the same price..."
It's a neat tool (if you're in the UK check out the similar "I'll fly anywhere" option at http://flightchecker.moneysavingexpert.com/) but the problem with it is that for most people the cost of the flight is going to be less than the cost of the hotel.
So if you're after a cheap holiday it's much more important to fly somewhere where you can get a cheap hotel than to get a cheap flight. Hopefully they'll add hotels to the calculation in the future.
If you're travelling in a pair, and you're staying for a reasonable length of time (say, a week) then the hotel cost shouldn't dominate. 7 nights * $100 a night / 2 people is only $350 -- less than the airfare to most places.
Besides, saving money on a hotel is mostly a matter of deciding how awful a place you're willing to put up with. You don't get that option with airfares.
Hmm maybe it's just a European thing, you can typically fly most places in Europe/North Africa for for a couple of hundred dollars. Getting to the US isn't much more. Hotels on the other hand tend to be more expensive + hotel tax can be pricey.
And you do actually get the awful trade-off with planes in Europe as well, you get budget airlines like Ryan Air which many people don't travel on because they're so bad.
Ah yes, in the European context, where flights are cheaper and hotels more expensive (and extremely variable between richer and poorer parts of Europe), you could very well be right.
You can go from london to south east asia with AirAsia X for $500 and a decent midrange hotel costs around $20 to $30 a night. Also if your backpacking (hostels) or couchsurfing, it can be quite valuable.
That might be a pretty cool app idea: random trip planning. As in: "I don't really care, I have $1200 to blow on a 5 day trip June 4th-9th. When do I show up for my flight?"
This is the sort of thing I'd expect a good old-school human travel agent to do pretty well.
I bet too they'd do it better (within a given locus) than the computer, knowing things like that there was a carnival at such-a-place and that the vistas at t-time of year are magnificent, etc..
Something similar, from big guys in the online travel business: Amadeus Affinity - http://www.amadeus.com/amadeus/x163551.html
- accurate prices
- choice per price range, comparison of prices on date range
- destination per type of activity (beach, golf, whatever)
- etc.
The URL for a major air travel company using it is - wait for it - ...
Yup, they don't do a very good job of making it obvious, but clicking on "check latest air fare" confirms these are round-trip prices (other than that, this is really cool).
Very cool, especially as I'm busy planning a trip (BCN-ROM-STR-BCN). There are ~4 possible airports for STR but most search engines don't let you choose them (aside from 'nearby' airports, which can be a bit moot with Europe's typically awesome rail infrastructure). And Kayak doesn't track many Low Cost Carriers. I normally a huge Kayak fan, but I've had to use www.skyscanner.net and www.wegolo.com a lot for this particular trip.
Finally it's a bit odd that there are "0" flights shown from BCN to Canada with zero filters. As a beta product it's still mega-cool. :)
Small issue: seems like the seasons are not hemisphere dependent. E.g., if you travel from Melbourne, Australia, then it shows Spring 2010 rather than Autumn 2010, etc.
For more visual intuitiveness, perhaps some isolines or a 3d, height based on price kind of thing? Probably just flashiness for no end though. But, using different colors for the labels along the price axis probably wouldn't be.
Seems to be &-ing the checkboxes, which is a bit odd for the languages.
Yeah, it would look very much like messy islands/mountains, probably lots of extra lines for little helpful effect. That is why the height map occurred to me. But, like I said, that might be getting too close to flashy, spinning-whizzbang infographic land.
i find skyscanner to be far superior. kayak's is a great overview but i didn't find it actually took me straight to when those cheap flights were - you still had to guess the cheap dates. when you know where you want to go and just want to find the cheapest time to fly: it shows you the flight costs over a month, and you don't have to hope that the fare is still available.
The UI is nice - but the slider doesn't need two ends, just the max end. It's also hard to dial in numbers <$1000 because of the range of the slider. Some +/- buttons would fix that up, or an old-fashioned text field.
I just wish it had the option to find all available flights under a certain price. I'm a college student and wouldn't mind just randomly going to a random local for a little while if it was cheap enough.
I like it, but one thing I noticed if if you select a starting date, it doesnt automatically set the return date to the next day. So if you select a date some time in the future you have to scroll twice
I have unknowingly been waiting for this for my whole life ... thank you so much !
It would be event better if there where some details added, like the possibility to choose one-way/two-ways flights.
It's still not perfect - it shows Buenos Aires, Argentina, to Montevideo, Uruguay for a meager U$ 600, while Montevideo to Buenos Aires correctly shows U$ 110 (a more reasonable average price).
whoa - it'll be cheaper for me to fly to Moscow (from DC) and travel to Eastern Europe by rail than actually flying directly in -- by about $420. This is dead useful; thanks for the link!
Depending on how, if at all, you are getting around the region otherwise, eastern European railroad might not be something you want to add to your itinerary.
The inter-country express trains tend to be pretty good. The slower local trains on the other hand can be a bit hit or miss. I mean they'll basically always get you to where you want to be, but perhaps not always exactly on time. But really when all is said and done trains in Europe generally work just fine.
More seriously, I would expect RyanAir charges a hefty fee to third parties who want access to their API, just like they change much higher fees to passengers who use a credit card than other airlines.
I've always hated the fact that all major travel sites work based on the assumption that you already know exactly when and where you're going, rather than at least giving you the option to explore your options.