The past couple days I’ve been trying to help a friend of mine book a relatively complicated itinerary from Seattle to Stockholm. At 12,663 miles round trip the “normal” routing via Newark isn’t so bad.
But the routing rules available on the discounted business class fare (P class) are pretty loose, opening up a number of options if you’re willing to spend a bit of extra time flying. Said friend was pretty aggressive in his itinerary planning and came up with an alternate routing which would cover roughly 15,000 miles for the same price. It also added an overnight in Frankfurt, allowing for an extra city to visit on the trip.
The P fare allows for 2 transfers in Area 1 (Americas) and 3 in Area 2 (Europe/Africa) in each direction. Combine that with these routing rules:
There are a lot of options worth exploring. I’m a bit biased in my searches, focusing on the ITA site as a first point of proving whether the trip can be made to happen or not. It is generally faster for me to punch the data in there than searching individual segments for inventory or checking each connection. He did a ton of research, finding flights with P class available and making sure that they met the routing rules. Here’s where we ended up on ITA:
And then, when push came to shove it was nearly impossible to book. Nearly.
Part of the problem is that there are so many segments. Most multi-city itinerary tools max out at three city pairs; even the most flexible seem to top out at six. And while it is possible to skip certain hubs in the city pairs (e.g. just search IAH-ARN for the second flight above rather than IAH-EWR + EWR-ARN) that isn’t a guarantee that it will work out in your favor. Indeed, as I tried to replicate the search for him and find the seats I hit a few roadblocks as well. And so I turned to Hipmunk.
Hipmunk is one of a few search engines which leverages the latest version of the ITA Matrix search interface (Google Flights and Kayak are the others I know of). None of these sites allow for booking directly but they can connect you to the proper booking engine once you find the fare you want. And they dump you right to the “buy now” page rather than making you fight the engine again to find the flights. Of course, getting Hipmunk to price out a trip like this isn’t trivial. The company made a splash initially with their “agony” scoring matrix, trying to optimize flights to reduce connection times, the number of connections and other factors which most customers find annoying. Trying to convince the Hipmunk engine to skip those factors can be a challenge. Fortunately, because it is built on the ITA platform, it also supports the ITA syntax.
For the above itinerary just putting in SEA-IAH, IAH-ARN, ARN-SEA wouldn’t work at all. It takes a couple tries to figure out where to put the city breaks (Hipmunk isn’t very good at allowing overnight connections where not forced to do so) but with a bit of practice it isn’t so hard to actually get this to a bookable state. Here’s what my Hipmunk search looks like for this itinerary:
The text boxes get cut off in the above screen so here are the specific entries I used:
SEA::UA780 IAH UA1094 EWR UA68
I’m starting in SEA and then telling the system I want to fly on UA780 to Houston then UA1094 to Newark and then UA 68. The “to” field has ARN indicating that I’m stopping that segment in Stockholm.
Next up is the relatively easy ARN::LH803 indicating that I want to leave Stockholm on Lufthansa flight 803. I put FRA in the destination box so it knows to stop there.
Finally, the last set of flights has quite a string:
FRA :: LH1184 ZRH UA937 IAD UA402 ORD
I’m leaving Frankfurt on the morning of the 6th on LH1184, connecting in Zurich then on UA937 to Dulles then UA402 to O’Hare. Putting SEA in the destination field there the system finishes the routing out for me.
Set the final two parameters – number of passengers and class of service and set it loose. Here’s what I got back for each page:
You can see that the last page left me a few extra choices because I didn’t specify the flight number for the last segment. Similarly, if I wanted some flexibility on the IAH-EWR segment at the beginning of the trip I could specify just UA there instead of UA1094. That would look like this:
Obviously that last one at $8642 doesn’t have the correct inventory available but if you wanted a day in NYC the quick connection in Houston might work out OK. Or a longer layover in Newark to protect against a misconnect. Or choosing UA1146 to get the 787 flight from Houston to Newark confirmed in the BusinessFirst seat rather than flying the 767 up. Lots of options available.
Even more useful – specifically on the Hipmunk site – is that the ITA syntax is supported by a type-down tool tip interface. Simply put the :: after the airport code and start adding the codes. It will actually translate what you’ve typed into reasonably plain English. Taking my “SEA::UA780 IAH UA1094 EWR UA68″ from above this is what it explains:
And that’s exactly what I’m trying to book. A flight from SEA on UA870 to IAH and then UA 1094 to EWR and then UA68 to ARN.
There are a few other options along the way worth considering. For the last IAD-SEA chunk of the trip a connection in EWR, SFO or LAX would be a lot more miles than the ORD hop. If I want to try that routing I can put in the following:
FRA :: LH1184 ZRH UA937 IAD UA SFO,EWR,LAX UA+
The text is a bit long, overrunning the popup box on the page but you can see that after IAD it will force a connection on UA metal via SFO, EWR or LAX and then one or more UA flights to SEA.
And the best part is that after going through all the options and selecting the segments I want I get this results page:
In other words, despite many engines not supporting the many multi-city search parameters necessary to make the crazy routing happen, Hipmunk can get it done. There are other tools, too, but this set of features has quickly moved Hipmunk to the top of my bookmarks list when it comes to finding cheap flights. It isn’t fool-proof by any stretch. I spent a couple hours working on the itinerary this afternoon. Part of that is because I didn’t have the full fare rules at the time and I was trying to force extra connections on the trip which kept blowing up the price on ITA and Hipmunk. And part of it is because, even on Hipmunk, there is some work required to get the itinerary out of the system; I cannot count how many “No results found” pages I hit. But I’m getting better at it and I’ve tried to distill some of that information above.
Another awesome thing about Hipmunk is that the search query is wholly contained in the URL. That means once you figure out a trip you can easily share the search with others. And I’m sharing this one with all of you. If you want to see how the search looks on the Hipmunk site try this link. Keep in mind that the P inventory changes all the time so there’s a decent chance by the time this post foes live the seats might not be there so the fare might skew. But it should get you on to the site and show how the data gets entered in to make searches like this happen.
Oh, and we didn’t even fully maximize the routing rules on this one. With the multiple connections permitted in Europe and the routing rules it is theoretically possible to do SEA-IAH-IAD/EWR-FRA-MUC-ARN. I’m not sure how well Hipmunk would handle that and I’m a bit scared to try to find out. Maybe tomorrow…