Matrix by ITA Software
Matrix by ITA Software is a tool that is helpful in searching for fares. Currently there are two versions of the software: the Original Matrix and Matrix2. While purchasing fares is not possible at either website, it is handy for planning flights and mileage runs.
- 1 Original Matrix
- 2 Undocumented Features
- 2.1 SPECIFYING BOOKING CLASSES
- 2.2 SPECIFYING BOOKING CLASSES FOR PARTICULAR AIRLINES
- 2.3 PREVENTING AIRLINES
- 2.4 RESTRICTING TO AIRLINES
- 2.5 Aircraft Type
- 2.6 Duration Limits
- 2.7 Booleans that can limit the search query
- 2.8 SEARCHING BY ALLIANCE
- 2.9 DISPLAY BY "PRICE PER MILE"
- 2.10 PUTTING LOTS OF THINGS TOGETHER
The Original Matrix has numerous undocumented Features
This Flyertalk thread discusses many of them.
SPECIFYING BOOKING CLASSES
Command is "/f bc=y|bc=c" Ex: Force booking class to Y or C. from: IAD :: /f bc=w to: FRA :: /f bc=w|bc=q
Notes: if you're using another feature before this one (e.g. "nocodeshare"), the proper syntax is "from: ABC :: /nocodeshare, f bc=y".
The pipe "|" acts as an OR. The "&" acts as an AND. Boolean logic is used.
To prohibit a booking class, use the Tilde "~" before "bc=x".
Example: "XYZ :: /f ~bc=l
SPECIFYING BOOKING CLASSES FOR PARTICULAR AIRLINES
Command is "/f lh..f|aa..y" Ex: Force booking class to Y or C. from: IAD :: /f bc=w to: FRA :: /f bc=w|bc=q
Notes: if you're using another feature before this one (e.g. "nocodeshare"), the proper syntax is "from: ABC :: /nocodeshare, f bc=y". The pipe "|" acts as an OR. The "&" acts as an AND. Boolean logic is used.
Command is "-airlines XX ..." Ex: prohibit Jet Blue or Delta from: BOS ::/ -airlines B6 DL to: LAX ::/ -airlines B6 DL
RESTRICTING TO AIRLINES
Command is "airlines XX ..." Ex: consider only Jet Blue or Delta from: BOS ::/ airlines B6 DL to: LAX ::/ airlines B6 DL
|/aircraft t:<iata type>||selects a/c of type <iata type>|
|/-aircraft t:<iata type>||inhibits a/c of type <iata type>|
Example: find airrail flights that use a bus, train or an Airbus A318
bru,zyr :: /aircraft t:318 t:trn t:bus muc
Example: use the negation syntax to boycott Boeing for supporting CISPA
lax :: /-aircraft t:734 t:744 t:748 t:74S t:752 t:762 t:763 t:764 t:772 t:773 t:777 t:76H t:76L t:76T t:76Z t:76P t:76Q t:76W alr,akl
|minconnect <MM>||Minimum number of minutes on all connections between flights.|
|maxconnect <MM>||Maximum number of minutes on all connections between flights.|
|padconnect <MM>||Require MM minutes in addition to the airline's minimum recommendation.|
|maxdur <MMM>||Maximum number of minutes for the corresponding city pair on the itinerary (not the whole itinerary).|
Semantical Limitations: it's important to realize that minconnect and maxconnect limit time between all flights sequencing the corresponding city pair, but if a flight stops and then continues with the same flight number, this constraint does not apply. There is also no way to constrain some connections between the city pair and not others. E.g. if the route is A-B-C-D-E, the layovers at B, C, and D must all be constrained equally.
Example: LIMIT DURATION OF City pair, IN MINUTES
No more than 5hrs for each part of trip:
BOS ::/ maxdur 300
LAX ::/ maxdur 300
Example: SET MINIMUM OR MAXIMUM TIME FOR CONNECTIONS, IN MINUTES
No less than one hour, no more than two hour connections:
BOS ::/ minconnect 60, maxconnect 120
LAX ::/ minconnect 60, maxconnect 120
Example: EXTRA CONNECTION TIME
Require at least 20 minutes more than airline recommended minimum connection time:
BOS ::/ padconnect 20
LAX ::/ padconnect 20
Booleans that can limit the search query
|-nofirstclass||Exclude flights that do not have a first class cabin. (IOW, all flights for the city pair must have a first class cabin).|
|-overnight||No overnight stops.|
|-change||No airport changes.|
|-redeye||No red-eye flights.|
|-prop||No propeller planes.|
|-surface||No surface transportation.|
Note that these options can only be used to get the mentioned effect. There is no means to get the opposite effect. For example, there is no syntax that can force a search to only include propeller aircraft.
No overnight stops, no airport chanes, no redeyes, no propellor planes:
BOS ::/ -overnight, -change, -redeye, -prop
SEARCHING BY ALLIANCE
Command is "alliance <alliance-name>” in “routing codes” box, type “/ alliance <alliance-name>” <alliance-name> can be “star-alliance”, “oneworld”, or “skyteam”
from: BOS ::/ alliance oneworld
DISPLAY BY "PRICE PER MILE"
Display/sort by “price per mile” (hidden feature, new matrix only). Two ways: 1. On the search results page, hold the shift key down while you click on the “price” column (unfortunately this doesn't work in some browsers) 2. Secret URL: http://matrix.itasoftware.com/?showPricePerMile=true The option is sticky, the site will remember how you set it last.
PUTTING LOTS OF THINGS TOGETHER
Separate with commas. Ex: from: BOS :: UA UA / f bc=l|bc=y, -redeye, -prop to: LAX :: UA+ / f ua.bos+lax.yup, padconnect 20, -overnight
If that doesn't work, try separating with semicolons: Ex: from: BOS :: UA UA / f bc=l|bc=y ; -redeye ; -prop to: LAX :: UA+ / f ua.bos+lax.yup ; padconnect 20 ; -overnight
And this note from ITA Software support, October 2011: the trick is just that you need to separate -overnight and -redeye with a semicolon. In general, commands after the backslash have to be separated by a semi colon.
from: LAX :: ua,co+ / -overnight; -redeye to: STT :: ua,co+ / -overnight; -redeye (this example produces no valid flights, which is correct)