How to use ITA Matrix to find the best value flights (Part 3)

(How to use ITA Matrix …continuing from Part 1 and Part 2)

Step 5: Simple advanced routing codes

The first two parts went over how to look for a simple return flight, and then how to modify your start position and create an open jaw ticket. This section introduces advanced routing codes, which is where the power of Matrix ITA comes in.

Sometimes there are particular flights or airports you want to include and to exclude. The advanced routing codes effectively programs this into the search.The benefit of such only really comes into play if you're interested in mileage runs or other methods like maximising MPM.

Firstly, you need to ensure the “advanced routing codes” box is switched on in Matrix ITA. Your origin and destinations boxes will look like this if it is not

The “advanced routing codes” link will be slightly lower down if you use the multi-city tab.

And the top bit will look like this if it is activated.

As you may have guess the routing codes go into the boxes labelled “Enter outbound routing codes” and “Enter return routing codes”. So let’s start with the following method — specifying particular airlines to fly the segments. You will need to know the two letter airline codes of the ones you will be specifying. If you’re not sure what they are, you can look it up under almost any airline's page on Wikipedia:

So let’s say I want to have a single segment from LON-NYC and back on British Airways. Doing my search on ITA, I need to enable “advanced routing codes” and then I’d type in “ba” (but omit the ” “) in the advanced routing codes box. (Note that the codes are not case-sensitive). This would produce a one segment path on British Airways for the outbound and one for the inbound.

You can use these special suffices to mean the following:

“?” means zero or one (for example “ba?” would produce zero or one British Airways segment) ,

“*” means zero or more (for example “ba*” would produce zero or more British Airways segment),

“+” means one or more (for example “ba+” would produce one or more British Airways segment),

There is also the following prefix:

“~” is a negation (for example ~ba would produce no British Airways segments).

If you combined the negation prefix with one of the suffices, for example “~ba?”, Matrix will search for zero or one segments but not on British airways.

It is also possible to produce more than one segment by adding spaces and the next airline command. I could have used “ba aa” to produce two segments, first on British Airways then on American Airlines, “ba ba aa” for two British Airways segments then one on AA etc. You can even combine the special suffices from earlier: “~ba+ aa? “.

If I want to add in airport transfers, I can use an airport's 3 letter code or the wildcard “X”, whilst also using the suffices and prefix above. “dfw* ~san+”, if allowed by the fare rules, will produce journey that has zero or more stops at Dallas Fort Worth follow by one or more transfers at somewhere other than San Diego.

If don't mind which airports you transfer at you can use “X” in place of “hkg” and/or “del”. This will search for connections at Hong Kong then Delhi.

Since I primarily collect my air miles with the OneWorld alliance, I might be interested in other flights that are offered by them. I can use the code “/ alliance oneworld”. Likewise if you want to specify the other alliances you can use the codes: “/ alliance star-alliance“, or  “/ alliance skyteam“.

Some more commands relating to airlines and transfers are listed below (source: Google's manual). There are some others which I haven't mentioned, either because I don't tend to use them or they're pretty self-explanatory. The one other important syntax I haven't mentioned is the comma “,” which denotes an ‘OR' command. Observe the difference between my “ba ba aa” example from earlier and the third example in the following table.

Please note that the prefixes “F:”, “C:” and “N:” are optional.

Restricting to specific airlines Routing Code
Direct flight marketed by American Airlines [AA] or [C:AA]
Any number of flights marketed by American Airlines [AA+] or [C:AA+]
Direct flight marked by American Airlines, United, or Delta [AA,CO,DL] or [C:AA,C:UA,C:DL]
Direct flight operated by American Airlines (as opposed to a code-share or subsidiary carrier) [O:AA]
Direct flight operated by American Airlines, United, or Delta (as opposed to a code-share) [O:AA,O:UA,O:DL]
Up to 3 flights, including at least one marketed by US Airways [F? US F?]
Any number of flights, including at least one marketed by American Airlines [F+ AA F+]
Exclude United and only show direct flights [~UA]
Exclude United and show options with zero or more connections. [~UA+]
Search for results with exactly two flights, and excluding United from the 2nd flight [F ~UA]
Search for results with a direct flight excluding flights marketed [~AA,CO,DL]
Search for results with a direct flight excluding flights marketed by American Airlines, United, or Delta [~AA,UA,DL]
A flight on US Airways followed by a flight on United [US UA]
Restricting the number of stops
Non-stop flight [N]
Non-stop flight on United Airlines [N:UA]
Direct flight (may have a stop, but same flight number continues to destination) [F]


Specifying connections
Any number of connections, each with a minimum connection time of 45 min [/ minconnect 45]
Any number of connections, each with a minimum connection time of 1 hour, maximum connection time of 2 hours [/ minconnect 60; maxconnect 120]
Require at least 20 minutes more than airline recommended minimum connection time [/ padconnect 20]
One or more connection points [X+]
One connection point with at least 45 min [X / minconnect 45]
Exactly 2 connections [X X]
Two connections or less [X? X?]
Two connections or more [X X+]
Connect in Dallas-Fort-Worth with no other connection points [DFW] or [X:DFW]
Connect in Dallas-Fort-Worth with any additional connections before or after [F? DFW F?]
Connect in either Dallas-Fort-Worth or Denver with no other connection points [DFW,DEN]
Connect only in Dallas-Fort-Worth or Denver [N DFW,DEN N]
Connect in Dallas-Fort-Worth followed by Denver followed by 0 or more stops [DFW DEN X?]
Find itineraries with exactly one connection and exclude connections in Dallas-Fort-Worth [~DFW]

Step 6: Even more advanced routing codes

This is the last step. It's a little esoteric and only of real use for fine-tunings, but once again Matrix's capabilities work wonders here. A forewarning though because we are getting VERY specific don't expect all your searches to be successful!

If I want to find a particular fare bucket, the syntax is ” /f bc=[insert one letter fare bucket here]” e.g. “/f bc=m”. If you wish to search more than one fare you can use the pipe “|” symbol which on my keyboard is located along with the backslash key. e.g. “/f bc=m|bc=n|bc=o”

To find a particular fare basis (e.g. if there is a sale on and you need to find flights in that particular fare) then you will need to use the “/f [airline].[origin city]+[destination city].[fare basis]” e.g. “/f ba.lon+nyc.b1najb”

This is a valid search but didn't yield any results for me! Note the semi colon at the end of the first routing code box is optional

Beyond here you're into some bizarre details – no helicopters?!

Specifying itinerary duration  Advanced Routing Code
Maximum itinerary duration of 4 hours (specify in minutes) [/ maxdur 240]
Specifying flight attributes
Exclude overnight stops [/ -overnight]
Exclude both red-eye flights and overnight stops [/ -overnight;-redeye]
Exclude propeller planes [/ -prop]
Exclude helicopters [/ -helicopter]
Exclude planes with no first class cabin [/ -nofirstclass]
Specifying specific flight numbers
A particular flight – UA882 [UA882]
Any flights except UA882 [~UA882+]
A particular flight – UA882 – followed by any number of flights [UA882 F+]
One or more flights on UA with flight numbers in the range 1000-2000 [UA1000-2000+]


But that's it! That's all there is to Matrix ITA, and the power now lies with you. Go forth and enjoy your new-found knowledge. I can easily spend my whole lunch break searching through interesting air fares and not get bored. (though I do recommend you eat something rather than play with Matrix)

I hope you benefited from this guide and leave me any comments if you want to know more details!