Geek talk: Why pinning flights is so complex
(And why smart, dynamic pins are such interesting beasts)
Flights are fidgety, transient little beings. Prices fluctuate. Availability changes. Flight numbers flip. Departure and arrival times creep at the very last minute…
Yup, keeping track of flights is hard stuff.
That’s why building a tool for users to pin flights (that is, save an itinerary from any travel site to track prices and other info) is tricky business.
Well, it all boils down to building smart, dynamic pins.
Allow me to go geeky on you. Like really geeky. Here are my top five reasons why building smart pinning for flights is such an interesting challenge:
1. Flight prices, schedules, and availability are always changing, and you have to build the intelligence to keep track of all of these pieces… often from multiple sources within the industry. Unlike images, flights are dynamic data objects comprised of many variable pieces of information. Just keeping track of which site a flight was pinned from isn’t enough; you also need to keep track of all the attributes a buyer cares about when making a purchasing decision.
2. Keeping track of a flight means looking for it on multiple travel sites (airlines and online travel agents). Travel sites are continuously varying the inventory they display, so just because a site doesn’t show a specific flight anymore, that doesn’t mean it isn’t available somewhere in the market. It could still be available on another travel site. Often, the specific itinerary can be constructed directly through the airline.
3. Seeing if a flight is “available” also means checking it is “bookable.” You’re probably thinking, “Huh?” Okay, the short story here is that travel sites often show cached lists of flight options. When a user clicks “book,” that’s when many sites actually check if the flight is still available to book for the fare and class specified. (And this is also why prices often appear to magically change after you click book!)
4. Flights have a lot of parameters (class, fare, rules, etc.), and different people care about different parameters. For example, some people are very flexible about flight class (first, business, economy) and want to know about availability for every type of ticket for the flight they care about. This significantly increases the amount of information to track for a given flight.
5. A pinned flight signifies intent, and so a recommendation engine is a natural (but complex!) part of any strong solution. It’s a no-brainer that most people who are interested in a flight from San Francisco to LA for $80 might be interested in a flight with the same exact schedule for $75. But what if the new flight is 10 minutes longer? Or leaves 20 minutes later? Or is not on the user’s preferred airline? Knowing which options to present in a recommendation engine requires really understanding the customer. You need to know their price sensitivity, travel preferences, and online purchasing preferences over time. If you don’t, you’ll just be another vendor spewing irrelevant, annoying recommendations to already busy customers.
Flights are especially tricky, but a lot of these principles are applicable to pinning other kinds of things on the web, like retail goods. The key is to figure out exactly what attributes people care about and find efficient, effective ways to track them.