Cyber Monday fared better than Black Friday for MS opportunities, and it looks like it’s going to continue into today and possibly tomorrow. Stay on top of reselling group messages!

In the mean time:

1. There’s a new PayPal offer for $50 back on $250 in spend at BestBuy when you check-out with PayPal. As usual, I’d recommend buying a BestBuy gift card for liquidation but with a special caveat: BestBuy will ban rewards accounts when a gift card purchased under that account is later used for a purchase flagged as a reseller. To protect yourself, don’t login to your BestBuy account and checkout as a guest if you’re going to buy a gift card for resale. UPDATE: The deal is now $25 back, not $50. Thanks to @BlueCat

2. Alaska Airlines has a good Cyber Monday sale for Tuesday and Delta does too. JetBlue has their own version, and they’re offering $50 off of one-way trips so you may want to replace existing round-trip bookings with two one-ways. Southwest didn’t want to be left out so they’ve got one too, but theirs runs through Thursday. (I don’t think the “Monday” in Cyber Monday means what the airlines think it means.)

With Southwest in particular, it’s a good time to book your Spring Break travel because they’ll likely change the schedule anyway and let you switch to any other flight ± 2 weeks from the original booking when that happens.

3. Office Depot/OfficeMax has $15 off of $300 or more in Mastercard gift card purchases between now and Saturday. Don’t forget to link your cards to Dosh for an extra $10 cash-back.

4. The web framework behind my favorite travel tool, ITA Matrix, is deprecated and going to have to be yanked by Google one day soon. Fortunately for all of us, a dedicated team of Google travel hackers are building a replacement with a modern web framework and they’re making good progress. You can find it here:

ITA Matrix Beta

At this point it’s less buggy than the primary interface for some of my searches, though others just spin. I’d consider it a rapidly improving work in progress. Now we just need book with matrix to be updated too.

An image of a November calendar with 35 days.
The calendar used by airlines for Cyber Monday.


It’s time for another punch in my series on travel hacking with ITA Matrix. As a reminder, ITA Matrix great for hidden city ticketingfuel dumpsfree one-waysforced fare bucketsaircraft selection, multi-class cabin bookings, and avoiding married segments just to name a few. Today I want to tackle a fun one: Gaming elite upgrades.

One of the tropes you’ll find brandished in the mainstream media is that dressing nice, letting the gate agent know that you’re on a honeymoon, or uttering the words “revenue management” will score you a free upgrade. Of course you probably know that’s all a bunch of crap. Airline upgrades don’t work that way and gate agents who play those kinds of shenanigans are disciplined and may end up losing their job.

At a hotel you can usually use the $20 trick for a an upgrade, but trying that at the gate just won’t work. Trust me. So how do you get an edge? Spoiler alert, there is an airline equivalent to the $20 trick that doesn’t involve a crooked gate agent. Let’s call it the “jump-the-bucket” trick. Catchy right? Right? Ok, I know it’s not.

Elite Upgrades in the US

All major US airlines with a first class cabin onboard have some sort of upgrade program for their elite flyers, and there’s a well defined order to which elites are upgraded to the big seat upfront and with what priority. Just because it’s well defined doesn’t mean that airlines publish specific terms and conditions though. Rather, airlines speak about priorities in generalities and as a result it can be a trick to suss out how it really works. To compound the complexity, each airline has slightly different policies and sometimes upgrade instruments get into the mix too.

The major US carriers do share one thing in common for elite upgrades: different ticket fare buckets have different upgrade priorities, and you can hack your way into a higher upgrade priority with the “jump-the-bucket” trick.

Fare Buckets

Ok, so fare buckets matter for upgrades, but WTF is a fare bucket? The boring definition is that each bucket is a letter (like S, or J) or pair of letters (like OW) that corresponds with a given fare on file in their systems. There isn’t a standard for buckets on all airlines, but they do share a lot in common. First class fare buckets are often Z or F, and economy buckets are often S, L, Y, and B for example. Typically there are around 20 fare buckets per airline.

Fare buckets also have a hierarchy. F > Z, and Y > B > M. See the pattern? Nah, me neither. That’s ok though. You don’t need to memorize the hierarchy, just know that it exists and how to find it.


And now my friends, you’ve got enough background to understand how to game the upgrade lottery. When airlines process upgrades, one of the universal tie breakers is your segment’s fare bucket. To win that battle you just have to make sure you’re in a higher bucket than the other guy. Unfortunately that’s not free, but it’s usually less than $20 or so to jump to the next bucket when you book a ticket. Even better, it’s almost a certainty that no elites on your plane have booked into anything other than the cheapest bucket that was available when they bought their ticket. (There’s a small wrench here, sometimes government contracts and big business contracts will book into high buckets per the specific terms of their agreement with the airline. That usually doesn’t matter if you’re not going to or from DC though, especially during peak leisure travel.)

Now, let’s talk about how to jump-the-bucket with ITA Matrix:

1. Search ITA Matrix for your desired flight
2. Pick your desired itinerary
3. Look at which fare buckets the itinerary has

Example: I searched for a Delta direct flight between Los Angeles (LAX) and Chicago O’Hare (ORD) on Sept 10, and picked the cheapest flight that wasn’t basic economy since those fares aren’t upgrade eligible. In this case, it was an economy flight in fare bucket V, which you can see in my example ITA Matrix search at the end of the line in parentheses after the word “Economy”:

A sample itinerary. Note the V booking code embedded in Economy (V) at the end of each leg.

Now I need to find which bucket has a higher priority than V. On Delta, that would be X. (See the next section for priorities. I don’t memorize this and I bet you don’t want to either.) So, to continue with the prior steps:

4. Determine the next higher fare bucket (see next section) — in my case X
5. Return to the main ITA Matrix booking page
6. Enter your desired cities and dates again
7. Click “Advanced controls” to turn them on if they’re not already on
8. Tell ITA Matrix that you want a specific fare bucket (booking code) by entering “f bc=X” in the “Outbound extension codes” and “Return extension codes”. Replace X with the appropriate fare bucket as needed.
9. Click through to find your itinerary
10. Cut and paste your itinerary into to book

Side tip: Remember how I glossed over searching for a flight that wasn’t basic economy in my example? Well, basic economy on Delta is fare bucket E, and you can enter “f ~bc=E” to tell ITA matrix to ignore any fares in the E bucket. The tilde means “not”.

In this particular example, an X bucket fare was $145.20 which is exactly $13 more than the V bucket. If I book this itinerary, I’ll be ahead of similar leveled elites that booked the cheapest fare they could, which is probably all of them provided the bucket was available when they booked.

The same itinerary after jumping-the-bucket. The higher bucket with a better shot at an upgrade costs an extra $13.00.

Cool eh? Cheaper than the $20 trick, and personally I’ve had great success with this technique in the past.

One last gotcha: Sometimes different segments each have their own fare bucket. That’s ok too, just use the Multi-city tab on ITA Matrix and enter fare codes segment-by-segment and you’ll get what you’re after.

Airline Fare Bucket Priorities

How do you know the order of fare buckets for a given airline? First answer: Ugh. Second answer, visit To save myself the hassle I’ve written them out and I guess I’ll share them with you too (ordered highest to lowest):

  • Delta: W, Y, B, M, S, H, Q, K, L, U, T, X, V, E (highest first, lowest last, E is basic economy)
  • United: O, A, R, Y, B, M, E, U, H, Q, V, W, S, T, L, K, G, N (highest first, lowest last, N is basic economy)
  • American: Y, H, K, M, V, Q, S, N, L, O, B (highest first, lowest last, B is basic economy)
  • Alaska: Y, B, H, K, M, L, V, S, N, Q, O, G, X (highest first, lowest last, X is basic economy)


A few things to watch out for:

  • As flights get closer, lower fare buckets may sell out or get zeroed out by the airline, pushing close-in bookings into a higher fare bucket. So if you book 5 months in advance and jump-the-bucket at the time, you may not be ahead of everyone by the time you fly
  • There are other criteria for upgrades too, and they vary by airline. Your status level for example is almost always a higher priority than your fare bucket. (Unless it’s a special Y-up bucket, but that’s beyond today’s post)
  • Using certain upgrade instruments trumps all fare classes. (SWUs on AA, RUCs on DL, GPUs on UA)


There’s an airline cousin to the hotel $20 trick, and it’s called the jump-the-bucket trick. For a few extra bucks you can often up your chances for an elite upgrade. #winning #twirlingtowardfreedom

A rusty bucket.
The United “basic economy” fare bucket. Or, is that the Economy+ bucket on an ERJ-145? It can be hard to tell.


As part of my series on travel hacking with ITA Matrix, I’d like to talk about another use for my favorite tool for airfare searches and related travel hacking: Forced routings. As a reminder, ITA Matrix great for hidden city ticketingfuel dumpsfree one-waysforced fare bucketsaircraft selection, multi-class cabin bookings, and avoiding married segments — though I use it for more than that too.

For this one, let’s tackle forced routings.

Why Forced Routings?

A forced routing is one of the simplest travel hacking concepts out there. All it means is that you want to buy an airline ticket, but you only want to pass through certain hubs or use certain carriers to do it.

I use forced routings to the following airports at times:

I use forced routings to avoid:

  • ORD in the late summer and early fall (delays run rampant)
  • SFO most of the year (delays run rampant when the fog sets in or a runway is under construction, which is approximately always)
  • PHX in the summer (aircraft are often weight restricted and have to kick people off to meet reduced takeoff weights)
  • ATL in the late fall and in January (delays run rampant)
  • ATL the rest of the year (I really dislike the airport)
  • MIA/PHL/CLT when traveling to Europe (I want my time in the wide-body plane to be long enough to sleep, not just a short hop so I’d rather connect further west)
  • United when I know they’re flying a regional jet on a particular route

Forcing Routings in ITA Matrix

How do we use forced routings in ITA Matrix? It’s actually really simple.

  1. Turn on “Advanced controls” if they’re not already enabled
  2. Enter the airport abbreviation in “Outbound routing codes” as appropriate:
    1. Enter “ATL” to force routing through ATL
    2. Enter “~ATL” avoid routing through ATL (the tilde means “avoid”)
    3. Enter “DEN,ORD” to route through one of DEN or ORD, either way is fine
    4. Enter “~DEN,ORD” to avoid routing through either DEN or ORD
    5. Enter “DEN ORD” to route through two hubs, DEN and ORD in that order
  3. Enter the rest of the data as needed for the trip
  4. Click “Search”

Here’s a screenshot showing a trip that avoids passing through DEN or ORD (scenario 4):

Sample forced routing from San Diego to Orlando, avoiding Denver or Chicago O’Hare as layovers.

Forced Routings and Carriers in ITA Matrix

Not bad, eh? Let’s get a little more complex though. With a little elbow grease you can force yourself to be on specific carriers and route through particular hubs. Let’s say I want to fly Delta to ORD and United to ATL on the same ticket. No problem, carriers just go before and after the hub as carrier codes.

Let’s look at this example:

  1. Turn on “Advanced controls” if they’re not already enabled
  2. Enter carriers and hubs in “Outbound routing codes” as appropriate:
    1. Enter “DL ORD UA” for a direct flight on Delta to ORD, then a direct flight on United to the destination
    2. Enter “DL+ ORD UA” for a direct or connecting flight on Delta to ORD, then a direct flight on United to the destination
    3. Enter “~F9 ORD UA+” to fly a direct flight on any airline but Frontier to ORD, then a direct or connecting flight on United to the destination
  3. Enter the rest of the data as needed for the trip
  4. Click “Search”

The carrier codes for the major US airlines are: Delta: DL, United: UA, American: AA, Frontier: F9, Southwest: WN (though Southwest is different and doesn’t show fares through ITA Matrix, so that one is just trivia for now). Also, in case you didn’t glean it above, the “+” means “one or more legs”.

My example (Delta to ORD then United to ATL) will look like this:

Forced routing through O’Hare on Delta from SLC to ORD and United from ORD to ATL, all on the same ticket

Booking the Results

Ok, so you’ve now got your convoluted, forced routing itinerary priced out. How do you book it? Simple, copy the results page and paste it into, which will then let you forward the itinerary to several booking agencies (in this case my options were Delta or Priceline, but that varies based on the itinerary).

The “I hate my in-laws” routing. Just enter “IAD JAX” as your advanced routing codes in ITA Matrix to book this one.

Fun fact: Once I really did connect in JAX between IAD and MCO on purpose. The ground crew was incredulous that anyone would connect in JAX.

I’m going off-brand with today’s post, but stick with it, it’ll be worth it I promise.


I use ITA Matrix essentially every single time I’m looking at airfares and often for reference when I’m searching for award travel. Not only that, but it’s quite possibly the most powerful tool that exists for an advanced travel hacker when dealing with airline tickets: It’s great for hidden city ticketing, fuel dumps, free one-ways, forced fare buckets, aircraft selection, forced routing through a particular hub, and avoiding married segments to name a few. There’s so much to this tool, and I’m going to make this post the first in a series about ITA Matrix for travel hacking, starting with Delta companion tickets.

There are two types of Delta companion tickets: 1) The domestic Main Cabin variant that you get with the Delta Platinum card, and 2) the domestic Main Cabin, Comfort+, or First Class variant that you get with the Delta Reserve. There’s a lot of nuance to where you can use these tickets, but for the most part just assume that you can use them on any round-trip Delta route within the continental US’s lower 48 states.

Fare Codes

When you purchase airfare or redeem miles, you’re booking into a specific fare class which is potentially different for each and every leg. Delta companion tickets require specific fare bucket availability for your itinerary:

  • Platinum: L, U, T, X, and V
  • Reserve: I, Z, W, S, L, U, T, X, and V (and W & S have further restrictions that in practice don’t really matter)

So, to look for Delta Companion ticket availability, you need to be able to look for specific fare buckets. This is child’s play with ITA Matrix. It also gives you better results than Delta’s booking engine will, and often lets you find cheaper tickets that qualify for the companion fare than you’ll find on or by talking to an agent and having them search for you.

The Actual Search

  1. Visit
  2. Make sure “advanced controls” are enabled (the link to enable them is right under the destination city)
  3. Enter your “Departing From” and “Destination” airport codes (e.x.: LAX and ORD)
  4. Enter DL+ in both the “Outbound routing codes” and “Return routing codes”, which forces the engine to return only Delta flights (bonus tip: enter DL without the ‘+‘ if you want only direct flights)
  5. Enter the fare buckets for a companion certificate in both the “Outbound extension codes” and “Return extension codes”. This one is rather obtuse, so cut and paste the following:
    1. Platinum variant: f bc=L|bc=U|bc=T|bc=X|bc=V
    2. Reserve variant: f bc=I|bc=Z|bc=W|bc=S|bc=L|bc=U|bc=T|bc=X|bc=V
  6. Enter your dates
  7. Choose 2 adults
  8. Click “Search”

I’m going to break my “one picture per post” rule in this series because I know some of you are visual learners. My search box for a Reserve companion ticket will look like this:

Sample search for Delta Reserve companion ticket


Normally I use for booking anything from ITA Matrix because you just cut and paste the booking results table into that website and it’ll forward you to Delta (or another OTA if you choose) with the exact flights and fare buckets already pre-filled. With companion tickets though, Delta doesn’t let you do that; instead, you’ll have to start your booking at and go from there.

If you can’t replicate the results ITA Matrix produces with Delta’s booking engine, first try setting up your airfare using a multi-city search. If that doesn’t work, you can call and give the agent each of the exact flight dates, flight numbers, and fare codes and they can manually book it for you. I’ve only had to do that a single time though, so it’s likely a rare occurrence.


I use all of my Delta companion certificates every single year, and they’re really valuable.

A final travel hacking tip: Delta says you need to use your co-branded Delta American Express card to pay for airfare when using a companion ticket. Don’t trust them, they lie. Any American Express will do, like the Personal Platinum which awards 5x on airfare.

Delta’s companion ticket rules aren’t always, uh, rules.