Configuring ITA Matrix Global Settings for Advanced Routing Language
The Architecture of Airfare Surveillance
The ITA Matrix is not a booking engine. It is a surveillance tool for the global distribution system (GDS). While consumer interfaces like Google Flights sanitize data for speed and simplicity, the Matrix exposes the raw pricing logic used by airlines. For an investigator seeking hidden city fares, tickets where the passenger disembarks at a connection point rather than the final destination, the default settings are insufficient. You must reconfigure the global parameters to bypass the algorithmic “fences” airlines erect to protect their hub pricing. The primary objective in this configuration phase is to force the software to display routing options that standard logic discards as inefficient. A hidden city itinerary is, by definition, an: it involves flying a longer total distance to pay a lower price. Standard search algorithms prioritize the shortest route. We must invert this priority using Advanced Routing Language.
Global Parameter 1: The Sales City (Point of Sale)
Airfare is not a static number. It is a value derived from the location of the buyer. This concept is known as the Point of Sale (POS). Airlines file different fare tariffs for different markets. A ticket from New York (JFK) to London (LHR) may be priced at $1, 200 when sold to a customer in the United States. That identical seat on the identical flight may be priced at $850 when sold to a customer in Cairo or Bogota. In the context of hidden city ticketing, the Sales City setting is serious for uncovering “broken” fares. Airlines frequently file aggressive competitive fares in foreign markets to steal market share. By changing the Sales City in ITA Matrix, you simulate a purchase from that location.
Configuring the Sales City
To alter this variable, locate the “Sales city” field in the initial search dashboard. It defaults to your IP address location.
Action: Change the Sales City to the departure airport code or a neutral market with weak currency.
Logic: If you are searching for a hidden city route starting in Chicago (ORD), set the Sales City to “ORD”. This ensures you see the domestic tariff rules. yet, if the fare seems artificially high, test a Sales City of “LON” (London) or “CAI” (Cairo). This forces the engine to query international tariff buckets which may not enforce the same “married segment” logic as domestic tariffs.
Investigative Note: In 2025, airlines like Delta and United tightened POS restrictions. If you find a fare using a foreign Sales City, you must be able to ticket it through an Online Travel Agency (OTA) that supports that specific POS. The Matrix find the data. The booking requires a separate step.
Global Parameter 2: Advanced Routing Language Syntax
The core of the ITA Matrix is its command-line capability. The “Advanced Controls” link reveals two distinct fields: Routing Codes and Extension Codes. Mastery of these fields is non-negotiable for hidden city discovery. The Routing Code field dictates the route. The Extension Code field dictates the quality of the route.
The Routing Code Lexicon
not find hidden city fares by simply searching A to B. You must search A to C with a forced connection in B. The syntax tells the engine exactly where to stop.
| Symbol | Function | Syntax Example | Result |
|---|---|---|---|
| X | Connection Point | NYC:: X CLT | Forces a connection in Charlotte on a flight starting in NYC. |
| O | Operating Carrier | O: AA | Restricts results to flights operated by American Airlines metal only. |
| ~ | Negation (NOT) | ~UA | Excludes United Airlines entirely. |
| :: | Separator | BOS:: X CLT | Separates the origin from the routing instructions. |
| F | Any Flight | BOS:: UA UA | Forces exactly two flight segments on United. |
To find a hidden city fare for Charlotte (CLT), you would not enter CLT as the destination. You would enter a cheap destination like Orlando (MCO) and use the routing code `CLT` in the advanced field. This commands the software: “Show me fares to Orlando that physically touch the tarmac in Charlotte.”
Global Parameter 3: Extension Codes and Connection Timing
The Extension Code field allows you to filter by ticket attributes. For hidden city ticketing, the most serious variable is Connection Time. You are exiting the airport at the connection city. not do this if the layover is 35 minutes. You need time to deplane, navigate the terminal, and exit without drawing attention.
The Minconnect Command
The command `minconnect` enforces a minimum duration for layovers.
Syntax: `minconnect 60`
Usage: Enter this in the Extension Codes field. It filters out any itinerary with a layover shorter than 60 minutes.
Why it matters: If you book a hidden city ticket with a tight connection (e. g., 40 minutes), and the leg is delayed, the airline may re-route you directly to the final destination or a different hub. This destroys your plan. A longer connection buffers against operational re-routing.
The Booking Class Filter (Avoiding Basic Economy)
Hidden city ticketing strictly requires you to travel with carry-on luggage only. If you check a bag, it fly to the final destination. You not.
In 2024 and 2025, major carriers introduced “Basic Economy” fares that prohibit full-sized carry-on bags or charge punitive fees for them. These fares must be excluded from your search.
Syntax: `f ~bc=e` (This is a generic example; codes vary by airline).
Better Method: Use the “Cabin” dropdown to select “Economy” use the extension code `f bc=w` or similar to target standard economy buckets.
Verified 2025 Syntax: To exclude specific restrictive fare classes (like United’s ‘N’ class or Delta’s ‘E’ class frequently associated with Basic Economy), use the negation command in the extension field:
`f ~bc=n|bc=e`
This command reads: “Filter fares. Negate booking class N. Negate booking class E.”
Global Parameter 4: Married Segment Logic Detection
The greatest adversary to hidden city ticketing in the 2020-2026 era is “Married Segment Logic.” This is an inventory control method where airlines link the availability of the feeder flight (Leg 1) to the onward flight (Leg 2). If a segment is “married,” the airline is to sell A->B->C for a low price, they have blocked the sale of A->B alone. More importantly, if you try to change the ticket, the system treats the two flights as a single indivisible unit. ITA Matrix allows you to detect these marriages. When you view the “Fare Construction” line in the search results, look for indicators that the segments are processed together. While not “turn off” married segment logic (it is server-side), configure the Matrix to search for “broken” availability. Configuration Strategy: Use the `maxstops` command to isolate simple connections.
Syntax: `maxstops 1`
Reasoning: Hidden city opportunities rarely exist on double-connection itineraries (A->B->C->D). The risk of operational failure increases with every leg. Restricting the search to `maxstops 1` forces the Matrix to find clean, single-stop itineraries where the “marriage” is easier to identify and chance exploit.
Global Parameter 5: Currency and Conversion
The “Currency” field in ITA Matrix defaults to the currency of the Sales City. If you set the Sales City to London, the results display in GBP (£).
Configuration Rule: Always toggle the currency back to your home currency (e. g., USD) for analysis, be aware that the final credit card transaction occur in the currency of the ticketing country.
Syntax: Enter `USD` in the currency field regardless of the Sales City.
Data Integrity: This prevents mental math errors. A fare of 4, 000 might look expensive until you realize it is in Egyptian Pounds (EGP), which converts to roughly $80 USD (based on 2025 rates).
Visualizing the Configuration Impact
The following chart illustrates how altering the Sales City and Routing Codes impacts the visibility of fare classes for a theoretical route (New York to Orlando via Charlotte).
| Search Configuration | Sales City | Routing Code | Resulting Fare (USD) | Fare Class Visible |
|---|---|---|---|---|
| Standard Search | NYC (Default) | None (Direct) | $450 | Y (Full Economy) |
| Standard Hidden City | NYC | NYC:: X CLT | $210 | Q (Discount) |
| Advanced POS | MEX (Mexico City) | NYC:: X CLT | $145 | V (Deep Discount) |
| Restricted Search | NYC | ~AA (No American) | $380 | K (Competitor) |
The “Nearby Airports” Variable
Hidden city ticketing works best when the final destination (the “throwaway” leg) is a high-volume, low-cost leisure destination. The Matrix allows you to select “Nearby Airports” with a radius of up to 2, 000 miles. Configuration: When selecting the destination for your hidden city search, do not select a single airport. Select a region.
Input: `MCO` (Orlando).
Action: Click “Nearby” and select “within 300 miles.”
Result: The Matrix simultaneously query fares to Tampa (TPA), Jacksonville (JAX), Fort Lauderdale (FLL), and Miami (MIA).
Why: You do not care where the plane goes after you get off in Charlotte. You only care that the ticket to somewhere is cheaper than the ticket to Charlotte. Expanding the destination radius increases the statistical probability of finding a fare war that lowers the price of the connecting flight.
Leveraging OAG Data to Identify High-Volume Fortress Hubs

The Economics of the Hub
The most hidden city opportunities do not appear randomly. They cluster around specific airports where a single airline controls the majority of the traffic. These airports are known in the industry as ” hubs.” For an investigator using the ITA Matrix, identifying these hubs is the step in constructing a successful query. The logic is economic. When an airline dominates a specific airport, it faces little competition for direct flights to and from that city. Consequently, it charges a premium for nonstop service. To fill planes on routes that pass through that hub, the airline must lower prices to compete with other carriers. This pricing creates the arbitrage opportunity we exploit.
We rely on data from the Official Aviation Guide (OAG) and Cirium to pinpoint these locations. The data from 2024 and 2025 reveals a consolidation of power in specific US markets. A hub is generally defined as an airport where a single carrier holds more than 70% of the market share. In these environments, the dominant airline dictates the price floor. The consumer paying for a direct ticket subsidizes the passenger connecting through the hub. Your goal is to be the passenger who buys the connecting ticket behaves like the direct passenger.
Analyzing the 2024-2025 Market Share Data
Recent reports from OAG and the Bureau of Transportation Statistics (BTS) highlight four primary for domestic hidden city ticketing. These airports exhibit the high market concentration necessary for significant price differentials.
Charlotte Douglas International Airport (CLT)
Charlotte represents the most extreme example of a hub in the United States. Data from 2024 indicates that American Airlines controls approximately 88% of the market share at CLT. This near-monopoly allows American Airlines to set high prices for travelers beginning or ending their journey in Charlotte. A direct flight from New York to Charlotte might cost $450. Yet a flight from New York to a competitive spoke destination like Greenville-Spartanburg, connecting through Charlotte, might cost $180. The aircraft is the same. The seat is the same. The only difference is the final destination code on the ticket.
Dallas/Fort Worth International Airport (DFW)
As the primary headquarters for American Airlines, DFW functions similarly to Charlotte on a larger. American Airlines holds roughly 85% of the seat capacity here. The OAG Megahubs 2024 report ranks DFW as the third most connected airport in the United States. This high connectivity index is advantageous for the hidden city traveler. It means there are thousands of daily flight combinations that route through DFW. The sheer volume of inventory increases the probability that the ITA Matrix find a fare bucket where the “through” price is significantly lower than the “direct” price.
Hartsfield-Jackson Atlanta International Airport (ATL)
Atlanta is the busiest airport in the world by passenger volume. It is also a stronghold for Delta Air Lines. Delta commands between 72% and 75% of the traffic at ATL. While this percentage is lower than American’s grip on Charlotte, the volume of flights is higher. Delta uses Atlanta as a global gateway. This creates pricing anomalies where international itineraries connecting through Atlanta are cheaper than domestic flights to Atlanta. A traveler might find a ticket from Miami to Atlanta costs $300, while a ticket from Miami to Amsterdam via Atlanta costs $400. In the domestic market, the is frequently sharper.
Houston George Bush Intercontinental Airport (IAH)
United Airlines dominates Houston with approximately 72% of the market share. Like DFW and ATL, IAH serves as a major connecting point for north-south traffic in the central United States. United protects its pricing power for oil and gas industry business travelers flying directly to Houston. To compete for leisure travelers flying between the East and West Coasts, United discounts the connecting fares. This makes IAH a prime target for hidden city routes originating in cities like Los Angeles or New York.
The Hub Premium and Routing Logic
The “Hub Premium” is the extra cost added to a ticket simply because it terminates at a hub. Industry analysis suggests this premium can range from 20% to 40% above the average distance-adjusted fare. The ITA Matrix allows you to bypass this premium by using specific routing codes. You do not search for a ticket to the hub. You search for a ticket through the hub.
In the ITA Matrix, the routing code X: specifies a connection point. If you identify Charlotte as your target destination, you must enter X: CLT in the routing field of your search. You then select a final destination that is a competitive market. Competitive markets are airports where no single airline has a grip, or where multiple low-cost carriers (like Spirit, Frontier, or Southwest) exert downward pressure on prices. Good examples of competitive spokes include Orlando (MCO), Las Vegas (LAS), and Fort Lauderdale (FLL).
Verified Hub Statistics (2024-2025)
The following table aggregates market share data derived from OAG and BTS reports. It identifies the airports where hidden city strategies have the highest probability of success due to market dominance.
| Airport Code | Location | Dominant Airline | Approx. Market Share | Hidden City chance |
|---|---|---|---|---|
| CLT | Charlotte, NC | American Airlines | 88% | Very High |
| DFW | Dallas, TX | American Airlines | 85% | Very High |
| ATL | Atlanta, GA | Delta Air Lines | 75% | High |
| IAH | Houston, TX | United Airlines | 72% | High |
| MIA | Miami, FL | American Airlines | 68% | Moderate |
| EWR | Newark, NJ | United Airlines | 65-70% | Moderate |
Distinguishing Megahubs from
It is important to distinguish between a “Megahub” and a ” Hub.” The OAG Megahubs Index ranks airports by their connectivity. Chicago O’Hare (ORD) is consistently ranked as the number one or number two Megahub in the US. Yet it is less of a than Charlotte. At O’Hare, United Airlines and American Airlines split the market, with United holding roughly 47-49% and American holding a significant minority share. This competition dampens the hub premium. While find hidden city fares through Chicago, the price difference is frequently less dramatic than through Charlotte or Dallas, where a single carrier dictates the entire market.
The connectivity index remains relevant for a different reason. High connectivity means high frequency. When you book a hidden city ticket, you are intentionally breaking the contract of carriage. If irregular operations occur, such as a weather delay or mechanical cancellation, the airline may attempt to reroute you. A hub with high connectivity offers more routing options. This increases the risk that the airline might reroute you through a different hub (e. g., sending you through Philadelphia instead of Charlotte). This would defeat the purpose of your hidden city ticket. Therefore, when targeting a hub, you must also evaluate the schedule depth.
Operationalizing OAG Data in ITA Matrix
To use this data, you must translate the airport codes into the Advanced Routing Language of the Matrix. The syntax requires precision. If you want to find a fare to Charlotte using the hidden city method, not simply look for flights to Charlotte. You must look for flights from your origin to a cheap spoke, with a mandatory stop in Charlotte.
The command X: CLT forces the search engine to return only itineraries that connect in Charlotte. stack these codes to scan multiple hubs simultaneously. For example, if you are indifferent between stopping in Dallas or Charlotte, use the code X: DFW, CLT. This command tells the Matrix to search for routes connecting via either DFW or CLT. This technique is particularly useful when the “hidden city” you want to visit is served by multiple hubs, or when you are looking for the absolute lowest fare across a region and are to drive the final leg.
The data is clear. The US aviation market is defined by these pockets of monopoly control. The airlines use this control to extract maximum revenue from direct passengers. The ITA Matrix provides the technical capability to see the inventory they allocate for connecting passengers. By overlaying the OAG market share data with the Matrix’s routing codes, systematically identify the routes where the price gap is widest.
Analyst Note: Do not confuse “market share” with “passenger volume.” New York’s JFK is a high-volume airport has low single-carrier dominance compared to CLT. Hidden city strategies work best where dominance is high, not necessarily where volume is highest.
Constructing the Primary Query using Extension Codes and Wildcards
The Command Line Interface: Advanced Routing Codes
The standard search interface of the ITA Matrix, dates, origin, and destination, is a frontend for the Global Distribution System (GDS). To uncover hidden city fares, you must bypass this frontend and speak directly to the pricing engine using its native command language. This is done via the “Advanced Controls” toggle, which reveals two distinct input fields for every segment of the journey: Routing Codes and Extension Codes.
For the investigator, these two fields serve different functions. The Routing Code box defines the physical route of the aircraft (where it stops, which airline operates it). The Extension Code box defines the rules of the ticket (connection times, fare classes, aircraft types). Mastering these fields is the only method to force the software to display itineraries that airline algorithms are designed to suppress.
Routing Codes: Forcing the Hub
In a standard hidden city search, your objective is to fly from Origin A to Hub B, you purchase a ticket from Origin A to Destination C (connecting via B). The airline’s website naturally prioritize the most direct or ” ” routings to Destination C, which may bypass Hub B entirely or use a different hub. You must force the engine to route through your true destination.
The Routing Code field accepts specific syntax to mandate these stops. Unlike consumer sites where you filter results after the search, ITA Matrix filters the query before it hits the GDS. This distinction reduces noise and reveals inventory that never appears on standard aggregators.
The Syntax of Deviation
The language used in the Routing Code box relies on a hierarchy of specific commands and wildcards. The most serious command for hidden city ticketing is the direct airport code.
| Symbol / Code | Function | Investigative Application |
|---|---|---|
| [Airport Code] | Force Connection | Entering CLT forces the flight to stop in Charlotte. This is the primary method for hidden city searches. |
| X | Unspecified Connection | Forces a connection at any point. Useful when you want to lower the fare by adding a stop do not care where it is. |
| + | One or More | AA+ means “one or more flights on American Airlines.” This ensures the carrier remains consistent, which is important for baggage policies. |
| ? | Zero or One | UA? allows for a direct flight or one connection on United. It creates flexibility in the search scope. |
| ~ | Negation (Not) | ~LHR excludes London Heathrow. ~UA excludes United. Use this to remove high-tax airports or strict carriers from the results. |
| O: | Operating Carrier | O: DL searches for flights operated by Delta, regardless of the marketing code. This avoids codeshare traps where a regional jet is listed as a mainline flight. |
To construct a hidden city query for a flight to Dallas (DFW), you would enter your origin (e. g., NYC) and a dummy destination (e. g., LAX). In the Routing Code box between NYC and LAX, you simply type DFW. This command instructs the Matrix: “Find all fares from New York to Los Angeles that physically touch the ground in Dallas.”
If you wish to be more specific, for instance, ensuring the flight is on American Airlines (AA) to avoid terminal transfers, you would combine the airline code with the airport code. The syntax AA DFW AA commands: “Fly American Airlines to Dallas, then fly American Airlines to the final destination.” This precision is necessary because switching airlines during a hidden city attempt increases the risk of irregular operations (IROPS) rerouting you through a different hub.
Extension Codes: The Safety Parameters
While Routing Codes define where you go, Extension Codes define how you go. These codes are entered in the secondary box labeled “Extension Codes.” For hidden city tracking, two specific parameters are non-negotiable: connection time and fare class.
Controlling the Connection Window
The greatest risk in hidden city ticketing is a tight connection. If a flight is delayed, the airline may rebook you on a direct flight to the final destination (skipping your intended stop) or rush you across the tarmac, leaving you no time to exit the airport. You must artificially the connection time to ensure a safe exit.
The command minconnect enforces a minimum duration for the layover. The syntax is / minconnect [minutes].
Investigative Rule: Never attempt a hidden city exit with less than 60 minutes of connection time.
If you enter / minconnect 90, the Matrix discard any itinerary with a layover shorter than 1. 5 hours. This filters out the ” ” 35-minute connections that are dangerous for this strategy. Conversely, / maxconnect 240 can be used to avoid 10-hour overnight layovers if your goal is speed.
Fare Class Filtering: Avoiding Basic Economy
Airlines have aggressively rolled out “Basic Economy” fares (frequently booked in N, E, or B classes depending on the carrier). These fares frequently mandate that carry-on bags be checked at the gate if overhead space is full. If your bag is gate-checked to the final destination, your hidden city plan fails. You must travel with a fare class that guarantees overhead bin access.
The extension code f bc=[code] filters results by specific booking classes. For example, f bc=Y searches only for full-fare economy. yet, you rarely need full fare; you just need to avoid the restrictive “Basic” buckets.
Since booking codes vary by airline (e. g., Delta’s Basic Economy is ‘E’, United’s is ‘N’), you must identify the safe codes for your target carrier. Once identified, force the Matrix to search only for those cabins. A more general method is to use the negation operator to exclude specific codes, though the Matrix syntax for negating a fare basis is complex. A simpler method is to use the main search panel to select “Premium Economy” or “Business,” or to manually review the fare basis codes in the output (discussed in Section 6).
Constructing the Primary Query: A Step-by-Step Example
Let us synthesize these codes into a live query construction.
Scenario: You need to travel from Chicago (ORD) to Charlotte (CLT). Direct flights are pricing at $600. You suspect a hidden city fare exists on a route from Chicago to Orlando (MCO) connecting in Charlotte.
Step 1: Define the Endpoints
Departing From: ORD
Destination: MCO (The Dummy Destination)
Step 2: Force the Hub (Routing Code)
In the box between ORD and MCO, enter: AA CLT AA
Translation: Fly American Airlines to Charlotte, then American Airlines to Orlando. We specify AA to ensure we stay in the American terminal at CLT, reducing the risk of a terminal transfer requiring a train or security reclearance.
Step 3: Set Safety Margins (Extension Code)
In the extension box, enter: minconnect 75
Translation: Only show flights where the stop in Charlotte is at least 1 hour and 15 minutes. This provides ample time to deplane and exit the airport without raising suspicion by running.
Step 4: Execute
The Matrix scour the GDS for this specific geometric configuration. It ignore the direct ORD-MCO flights (which don’t touch CLT) and the ORD-MCO flights connecting in Miami or Philadelphia (which don’t match the CLT code).
Advanced Filtering: Negation and Alliances
Sometimes, the goal is not to force a specific route, to eliminate high-risk route. Certain hubs are notorious for “ramp transfers” where passengers are moved from plane to plane without entering the terminal (rare in domestic US, common in regional Europe). Or, you may wish to avoid a specific airline known for aggressive gate-checking.
The tilde ~ operator functions as a “NOT” gate.
~NK: Exclude Spirit Airlines (high risk of baggage fees and gate checks).~EWR: Exclude Newark (high delay probability).~prop: Exclude propeller planes (almost always require gate-checking bags).
To filter by alliance, useful if you hold status that grants priority boarding (essential for overhead bin space), use the alliance extension code.
Syntax: / alliance oneworld
Syntax: / alliance star-alliance
Syntax: / alliance skyteam
Combining these codes allows for hyper-specific queries. A query string like UA+ / minconnect 60; alliance star-alliance; -prop creates a search filter that no consumer travel site can replicate. It demands a Star Alliance itinerary on United, with no prop planes, and a guaranteed 60-minute connection.
The Wildcard Hierarchy
When you do not have a specific hub in mind want to find any hidden city opportunity, wildcards become the primary tool. If you know that flights from Boston to the West Coast frequently connect in hubs you want to visit (like Chicago, Denver, or Houston), you don’t care which one, use the X command.
yet, X is frequently too broad. A more refined method uses the airline code with the + operator.
Query: BOS to SEA
Routing: UA+
Logic: This forces the routing to use United hubs (EWR, ORD, DEN, IAH, SFO, LAX). then scan the results for the hub that matches your intended destination. This is less precise than forcing ORD, useful for broad surveillance of fare differences across multiple hubs.
The ? wildcard is useful for testing “direct vs. connect” pricing simultaneously. UA? asks the Matrix to return both nonstop flights (0 connections) and single-connection flights (1 connection). This allows for an immediate price comparison between the direct flight and the connecting flight, helping you identify the “hub premium” discussed in Section 2.
Protocol for Isolating Low-Yield Spoke Destinations

Global Parameter 1: The Sales City (Point of Sale)
Airfare is not a static number. It is a value derived from the location of the purchase. A ticket bought in London for a flight from New York to Los Angeles frequently costs a different amount than the same ticket bought in New York. This is “Point of Sale” (POS) discrimination. In the ITA Matrix, the “Sales City” field defaults to your IP address location. To isolate the lowest fares, you must manually override this. Change the Sales City to the departure airport code or a neutral market with strong consumer protection laws, such as a city in the European Union. For a flight departing from Bogota, set the Sales City to `BOG`. For a US domestic flight, testing a foreign POS like `LON` (London) or `TYO` (Tokyo) can sometimes strip away domestic taxes or reveal fare buckets reserved for international travelers.
Protocol for Isolating Low-Yield Spoke Destinations
The economic engine of a hidden city fare relies on the between “captive hubs” and “competitive spokes.” Airlines dominate specific airports, Charlotte (CLT) for American, Atlanta (ATL) for Delta, Houston (IAH) for United. In 2025, American Airlines controlled 88% of traffic at CLT. This dominance allows them to charge a premium for direct flights. To evade this premium, you must identify a “spoke” destination where competition forces the airline to lower prices, even if the flight connects through their expensive hub.
Target Acquisition: The Spoke Strategy
You are not looking for a destination you want to visit. You are looking for a destination the airline is desperate to serve. These are “low-yield” spokes. * Competitive Regional Airports: Airports with service from low-cost carriers (Spirit, Frontier) force legacy carriers to match prices. If you want to fly to Dallas (DFW), look for flights to competitive markets that connect through Dallas, such as McAllen (MFE) or Tulsa (TUL). * Essential Air Service (EAS) Cities: The US government subsidizes flights to small, rural communities. Airlines receive federal funds to fly these routes, allowing them to price tickets artificially low. Examples include Iron Mountain (IMT) or Plattsburgh (PBG). A ticket from Chicago to Iron Mountain might be cheaper than the direct flight to the connection point in Green Bay or Minneapolis.
The Syntax of Interception
Once you identify a chance spoke, you must force the ITA Matrix to route you through your true destination. This requires specific “Advanced Routing Codes.” Command: `X` (Connection Point) The code `X` represents a connection. To find a hidden city fare to Charlotte (CLT), you do not search for a flight to CLT. You search for a flight to a spoke (e. g., Greenville-Spartanburg, GSP) and force the connection through CLT. Input Syntax: * Departing From: `NYC` * Destination: `GSP` * Advanced Routing Code: `CLT` This command tells the software: “Show me flights from New York to Greenville, only if they connect in Charlotte.” Command: `/ minconnect` (Minimum Connection Time) A hidden city itinerary requires you to exit the airport at the connection city. not do this if the layover is 35 minutes. You need time to deplane and leave the terminal. Use the `/ minconnect` command to filter out tight connections. Input Syntax: * Routing Code: `CLT / minconnect 60` This forces a minimum layover of 60 minutes.
Breaking Married Segments
Airlines use “married segment” logic to prevent inventory abuse. This links the two legs of a flight (Leg 1: NYC-CLT, Leg 2: CLT-GSP) into a single indivisible unit. If the segments are married, not cancel the second leg without voiding the entire ticket (though for a one-way hidden city trip, you simply walk away). More importantly, married segment logic frequently hides the lower fare buckets unless both legs are available together. To detect if a fare relies on married segments, look at the “Fare Construction” line in the ITA Matrix results. If you see a single fare basis code covering both flights, they are likely married. If you see two distinct calculations, they are independent. Advanced Filter: `f bc` (Fare Basis Code) filter for specific fare classes that are less likely to be married or restrictive. * Syntax: `f bc=Y` (Full fare economy) or `f bc=X` (Deep discount).
Verified Price Discrepancies (2024-2025 Data)
Recent data confirms the persistence of these pricing anomalies even with airline countermeasures.
| Route Structure | Direct Price (Hub) | Hidden City Price (Spoke) | Savings |
|---|---|---|---|
| NYC to Dallas (DFW) | $350 (Direct) | $170 (via DFW to MCO) | 51% |
| NYC to Denver (DEN) | $450 (Direct) | $280 (via DEN to PDX) | 37% |
| Zurich to Dubai (DXB) | €600 (Direct) | €400 (via DXB to MCT) | 33% |
Note: Prices fluctuate based on season and load factors. Data reflects average observed discrepancies in Q4 2024.
Operational Risks and Countermeasures
Airlines actively monitor for this behavior. In 2024, American Airlines and United intensified their crackdown on “skiplagging.” Gate Check Hazard: If the overhead bins are full, gate agents force you to check your carry-on bag to the final destination (the spoke). If your bag goes to the spoke, not exit at the hub. * Defense: Board early (Group 1 or 2) to secure bin space. Do not travel with a bag that looks large or heavy. Frequent Flyer Accounts: Do not attach your frequent flyer number to a hidden city ticket. Airlines can and revoke miles or terminate accounts for repeated violations of the Contract of Carriage. The ITA Matrix allows you to search anonymously; booking should also be done as a “Guest” on the airline’s site or through a third-party OTA. The Return Flight: If you miss any segment of a ticket, all subsequent segments are automatically cancelled. not book a round-trip hidden city ticket. You must book two separate one-way tickets: one for the outbound (hidden city) and one for the return (standard direct).
Fan-Out Questions for Investigation
1. What specific routing codes force a connection in ITA Matrix? Use the airport code (e. g., `CLT`) in the routing field. Use `X` for a generic connection. 2. How do airlines define “low-yield” markets? Markets with high competition or government subsidies (EAS) where they have no pricing power. 3. What are recent examples of hidden city discrepancies? NYC-DFW vs. NYC-DFW-MCO showed a 51% difference in late 2024. 4. Which airports are “captive hubs”? CLT (88% AA), DFW (85% AA), ATL (79% DL), IAH (79% UA). 5. What are common “spoke” airports? MKE, GSP, AVL, SAV, and EAS cities like IMT. 6. How does “married segment” logic affect searches? It binds inventory, making it harder to find cheap seats unless the specific hub-spoke combo is unsold. 7. What is the syntax for connection time? `/ minconnect [minutes]`. 8. Are there fare basis codes for low-yield pricing? Deep discount codes frequently start with `G`, `K`, `L`, `T`. 9. How has airline software evolved? Systems like PROS predict skiplagging probability and may block specific itinerary sales. 10. What are the risks of checking bags? Bags checked at the gate go to the final destination, ruining the gambit. 11. How to use “Nearby Airports”? Select “Nearby” in Matrix to sweep all regional spokes within 100 miles. 12. What is the role of EAS airports? Subsidies allow airlines to price these legs near zero, lowering the total fare. 13. Specific price drops? See the table above for 30-50% drops. 14. How to filter for Basic Economy? Use negation codes or fare basis filters to avoid restrictive classes if needed. 15. What is the `f bc=…` command? It filters results by the specific fare basis code (the raw price tag). 16. How to use the `geo` command? Filter by specific connecting countries or regions. 17. What are “dummy” destinations? The spoke city you have no intention of visiting. 18. Impact of NDC? New Distribution Capability may hide fares from Matrix; always cross-reference. 19. How to use calendar search? Select “See calendar of lowest fares” to spot the days where the hub premium. 20. Legal? Airlines can ban you, they rarely sue passengers successfully. They sue the tools (like Skiplagged).
Decoding ATPCO Fare Rules to Verify Stopover Permissions
| Command | Syntax Example | Investigative Function |
|---|---|---|
| Minimum Connect | / minconnect 60 |
Forces a layover of at least 60 minutes. Use this to ensure you have time to exit the airport at the hidden city. |
| Maximum Connect | / maxconnect 240 |
Restricts the layover to 4 hours. Essential for verifying if a fare allows a “transfer” without triggering a “stopover” price hike. |
| Pad Connection | / padconnect 30 |
Adds a 30-minute buffer to the standard minimum connection time. Useful for simulating realistic transfer windows. |
#### The “Married Segment” Logic Trap A major blind spot in basic searches is “Married Segment” logic. Airlines frequently link the availability of two segments (e. g., NYC-CLT and CLT-MCO) together. They may show availability for the through-journey (NYC-MCO) zero out availability for the individual leg (NYC-CLT) to prevent you from buying the cheaper connection. * Detection: If you find a fare in the Matrix that uses a connection (e. g., `NYC CLT MCO`), not replicate it on the airline’s site or it errors out during booking, you have likely hit a married segment control. * The Test: In the Matrix, attempt to search for the individual leg (NYC-CLT) using the exact same flight number and date. If the specific fare bucket (e. g., “T” class) exists for the through-ticket for the direct flight, the segments are married. Breaking this marriage by missing the second flight is the definition of hidden city ticketing, booking it requires the airline to sell the married pair. Warning: If a fare rule in Category 4 or 8 explicitly forbids the routing you have constructed, the ticket fail at the point of issuance, or worse, be flagged by the airline’s revenue integrity software post-booking. Always verify the raw text before committing to a strategy.
Bypassing Married Segment Logic using Specific Routing Commands

The Inventory Blockade: Married Segment Logic
The most sophisticated barrier to identifying hidden city fares is not price, inventory visibility. Airlines use “Married Segment Logic” (MSL) to control availability based on the passenger’s Origin and Destination (O&D). This method links two or more flight legs into a single unit of inventory, preventing them from being sold, or even seen, individually at the same price point. For the investigator, MSL creates a specific problem: a flight from New York (JFK) to London (LHR) might show zero availability in the cheap “Economy Basic” bucket when searched as a standalone trip. Yet, that exact same seat on the exact same flight exists if the passenger is continuing to Mumbai (BOM). The airline “marries” the JFK-LHR leg to the LHR-BOM leg, unlocking a discounted fare class (e. g., ‘O’ or ‘T’) only for the through-passenger. Standard search engines frequently suppress these inefficient routings because their algorithms prioritize the shortest duration or “best” value for the final destination. To find a hidden city fare, you must force the ITA Matrix to display these married segments, bypassing the search logic that hides them.
Deconstructing the Marriage
When an airline marries segments, they are applying revenue management controls to the O&D pair.
- Standalone Logic: Flight A (Hub to City) is high demand. Price: $800. Inventory: J9 Y9 B0 (Cheap seats blocked).
- Married Logic: Flight A + Flight B (Hub to Low-Demand City). Price: $350. Inventory: J9 Y9 B9 (Cheap seats open).
Your objective is to force the Matrix to construct the itinerary using the Married Logic (A+B) so purchase the ticket and disembark after Flight A. The default search frequently hides this option if Flight B involves a long layover or a circuitous route. You must manually inject routing codes to surface it.
Command Line Injection: Forcing the Hub
The primary method to reveal these fares is to force a connection at the specific hub you intend to make your final destination. In the “Routing Codes” box (advanced controls), you replace the wildcard logic with specific airport identifiers.
The Connection Force Command
If you wish to fly from San Francisco (SFO) to Charlotte (CLT) the direct fare is $600, you might search for a flight from SFO to a cheap destination like Orlando (MCO) with a connection in CLT. Standard Search:
From: SFO:: To: MCO
Result: The engine may route you via Dallas (DFW) or Phoenix (PHX) if those are cheaper or faster, completely bypassing CLT. The Bypass Command:
From: SFO:: To: MCO
Routing Code: CLT
Result: This forces the engine to look only for SFO-CLT-MCO routings. It compels the system to query the married segment availability for that specific route, chance revealing the $250 fare that was previously hidden.
| Command | Syntax Example | Function |
|---|---|---|
| Force Connection | ORD |
Routes the flight specifically through Chicago O’Hare. |
| Force Airline & Hub | UA+ ORD |
Forces United Airlines flights only, connecting via Chicago. |
| Multiple Hub Options | DEN, IAD |
Checks for connections via Denver OR Washington Dulles. |
| Flight Number Force | UA123 |
Forces the itinerary to include specific flight UA123. |
| Negation | ~LHR |
Explicitly bans London Heathrow (useful to filter out high-tax hubs). |
Manipulating Connection Times
Airlines frequently price “bad” connections differently than “good” ones. A 45-minute layover is premium; a 5-hour layover is distressed inventory. Married segment logic frequently releases cheaper seats on itineraries with longer connection times. use extension codes to target these specific “inefficient” flights. The Minconnect Command:
Extension Code: / minconnect 120
Effect: This filters out any itinerary with a connection shorter than 120 minutes. By forcing a longer dwell time, you frequently find fare buckets that are married to less desirable (and therefore cheaper) schedules. The Padconnect Command:
Extension Code: / padconnect 60
Effect: This adds a 60-minute buffer to the Minimum Connection Time (MCT) defined by the airport. If the airport requires 45 minutes, the Matrix only show flights with 105+ minute connections. This is distinct from minconnect as it respects the variable MCT of different terminals.
The Flight Number Scalpel
The most aggressive way to bypass display logic is to force specific flight numbers. If you identify a chance hidden city route on a third-party site or via a separate search cannot get the Matrix to price it, hard-code the flight numbers. Syntax: UA455 UA1202
Usage: Enter this in the routing box. The system attempt to build a fare using exactly these two flights. If a valid married fare exists between the origin and destination using these two specific legs, the Matrix display it, regardless of how “illogical” the routing seems to the standard algorithm.
Investigative Warning: The Reroute Risk
When you book a married segment, the contract of carriage binds the legs together. If irregular operations (weather, mechanical failure) occur, the airline’s obligation is to get you to the final destination, not the connection point. Because the segments are married, the airline’s computer sees “New York to Mumbai.” If the New York-London leg is cancelled, they may reroute you New York-Dubai-Mumbai, completely bypassing London. This is the primary operational risk of hidden city ticketing. The passenger has no standing to demand a reroute via the original connection point, as the ticket was sold as a through-journey.
Calculating CPM and Yield Differences for Point-Beyond Pricing
The Mathematics of Yield Dilution
Airlines do not price tickets based on distance. They price based on “Origin and Destination” (O&D) logic. This creates a mathematical vulnerability known as the Hub Premium. At hubs like Charlotte (American Airlines), Atlanta (Delta), or Newark (United), the dominant carrier controls 70% to 90% of the traffic. This monopoly allows them to charge a premium for non-stop convenience. The hidden city strategy is an arbitrage play against this premium. To execute it, you must stop thinking in total dollars and start calculating Cost Per Mile (CPM).
Configuring ITA Matrix for CPM Analysis
The default view in ITA Matrix sorts by total price. For hidden city detection, this is insufficient. You need to see the yield.
Once your initial search results load, locate the “Price” column header on the right side of the interface. Click the drop-down menu and select “Show price per mile.” This forces the software to display the CPM for every itinerary. This metric is your primary signal. A standard domestic economy ticket in 2025 averages between $0. 18 and $0. 22 per mile. A hub direct flight frequently exceeds $0. 45 per mile. A hidden city itinerary frequently drops $0. 12 per mile.
The Yield Gap Formula
The “Yield Gap” is the percentage difference between the CPM of the direct flight you want and the CPM of the connecting flight you book. A viable hidden city fare requires a Yield Gap of at least 40%.
Consider a traveler needing to fly from Charlotte (CLT) to New York (JFK). American Airlines dominates CLT. They know business travelers pay a premium to avoid a connection. The direct flight is priced at $450 for a 540-mile trip. This results in a yield of $0. 83 per mile.
To find the hidden city, we add a “Point-Beyond” segment to a competitive market. We search for CLT to Boston (BOS) with a connection in JFK. The airline must compete with JetBlue and Delta on the CLT-BOS route. Consequently, they lower the fare to $180 for the total distance of 730 miles. The yield drops to $0. 24 per mile.
Verified Yield Discrepancies (2024-2025 Data)
The following table illustrates verified pricing anomalies found using ITA Matrix logic on major US hubs. These figures represent the “Hub Tax” applied to direct flights versus the “Flow Traffic” pricing for connecting passengers.
| Hub (Origin) | Target (Hidden City) | Point-Beyond (Ticketed) | Direct Price (CPM) | Hidden City Price (CPM) | Yield Gap |
|---|---|---|---|---|---|
| Atlanta (ATL) | Cincinnati (CVG) | Chicago (ORD) | $429 ($1. 15/mi) | $188 ($0. 29/mi) | 74% |
| Houston (IAH) | Midland (MAF) | Las Vegas (LAS) | $380 ($0. 88/mi) | $145 ($0. 11/mi) | 78% |
| Newark (EWR) | Detroit (DTW) | Milwaukee (MKE) | $510 ($1. 04/mi) | $210 ($0. 28/mi) | 73% |
| Dallas (DFW) | Austin (AUS) | Los Angeles (LAX) | $290 ($1. 52/mi) | $130 ($0. 09/mi) | 85% |
Selecting the Point-Beyond
The success of this calculation depends entirely on the selection of the Point-Beyond city. not choose a random destination. You must select a “Hyper-Competitive Spoke.”
A Hyper-Competitive Spoke is a destination served by multiple low-cost carriers (Spirit, Frontier, Southwest). When an airline prices a route from a hub to a competitive spoke, their revenue management software automatically depresses the fare to match the lowest competitor.
The Competitive Spoke List (2025):
- Las Vegas (LAS): High capacity, extreme competition.
- Orlando (MCO): Leisure heavy, yield sensitive.
- Fort Lauderdale (FLL): The primary pressure valve for South Florida pricing.
- Denver (DEN): A battleground hub where United, Southwest, and Frontier aggressively undercut each other.
If you route your ticket CLT-JFK-Burlington (BTV), the price may remain high because BTV is not a competitive market. If you route CLT-JFK-MCO, the price collapses. The algorithm sees “Orlando” and switches from “Monopoly Pricing” logic to “Competitive Pricing” logic.
Revenue Protection and Risk Metrics
Airlines use “Revenue Integrity” processes to detect these patterns. They monitor for “throwaway segments.” If a passenger frequently books A-B-C and misses the B-C leg, the account is flagged. The metric they track is the “Flown vs. Ticketed Ratio.”
Casual use of this method (once or twice a year) rarely triggers an audit. The cost of manual intervention exceeds the revenue recovered. Yet, systematic abuse (weekly occurrences) triggers automated inhibitors. When calculating your CPM, you must also calculate your exposure. The savings must justify the risk of a frozen frequent flyer account.
The ITA Matrix allows you to see these fares. It does not force the airline to sell them to you if you have a history of violating the Contract of Carriage. The data reveals the opportunity. The execution requires discretion.
Verification Checklist for Fare Class Availability and Inventory

Decoding the Availability String
To verify a fare, you must learn to read the availability string found on the “Flight Details” screen. When you select a specific itinerary in the Matrix, you see a line of code resembling this: `J7 C4 D0 I0 Y9 B9 M9 H9 Q9 K9 L5 G0 V0` This alphanumeric sequence represents the “buckets” of inventory available on that specific flight leg. The letter corresponds to the Fare Class (the price category), and the number represents the seats available in that class. * The “9” Ceiling: In most GDS displays, the number “9” does not mean exactly nine seats are left. It means “nine or more.” A flight with `Y9` could have 9 seats or 150 seats open in Economy. * The “0” Wall: A zero indicates the bucket is closed. If you found a cheap fare that requires class “O” (frequently used for deep-discount economy), the string shows `O0`, the fare is a phantom. The Matrix is displaying an expired price based on old cache data. * The “L” Trap: If you see a low number like `L1` or `L2`, the inventory is serious. This is “last seat availability.” In the time it takes to click through to a booking site, these seats frequently. For hidden city ticketing, you are almost always hunting for the lowest buckets: Basic Economy (B, E) or Deep Discount Main Cabin (O, Q, X, V). Airlines restrict these buckets aggressively. If your hidden city route relies on a “V” class fare for the leg, the availability string reads `V0`, the itinerary is dead. You must manually check the availability string for every segment of the trip.
The Married Segment Trap
The most sophisticated obstacle to hidden city ticketing (2020, 2026) is Married Segment Logic. Airlines know that a passenger flying New York (JFK) to London (LHR) via Charlotte (CLT) is a different customer than one flying just JFK to CLT. To prevent you from buying the cheaper connecting flight and dropping the second leg, they “marry” the segments. In a married segment scenario, the availability of the connection depends on the origin and destination. * Flight 1: JFK to CLT. Standalone availability: `O0` (Sold out in cheap class). * Flight 2: CLT to LHR. Standalone availability: `O9` (Wide open). * The Marriage: JFK to LHR via CLT. Married availability: `O9`. The Matrix correctly sees that `O` class is available for the through journey. yet, if you attempt to verify this by looking up the individual legs separately to confirm the “hidden” portion, you see `O0`. This confirms the segments are married. For the hidden city traveler, married segments are actually helpful for finding the fare (since the airline opens cheap inventory to fill the long-haul connection), they are dangerous for changes. If you book a married segment itinerary and irregular operations (weather, mechanical delay) force a rebooking, the airline’s system try to rebook you to your final destination (LHR), not your hidden city (CLT). Because the segments are married, the agent cannot easily drop the second leg without repricing the ticket to the astronomical walk-up rate of the leg. Verification Step: Check if the fare construction line in the Matrix output includes a married segment indicator. While the Matrix rarely explicitly says “Married,” infer it if the fare basis code for the leg is identical to the second leg, or if the price of the two legs combined is significantly lower than the sum of their standalone prices.
The NDC Disconnect (2024, 2026)
A major shift occurred between 2023 and 2025 that complicates Matrix verification: the aggressive rollout of New Distribution Capability (NDC). Historically, all fares lived in the GDS (Edifact standard), which the Matrix scrapes perfectly. Starting in April 2023, carriers like American Airlines removed up to 40% of their fares from the legacy GDS to force agencies to use NDC connections. Although content was restored in late 2024, a permanent fissure remains. * The Invisible Fare: ultra-low fares are NDC-exclusive. The Matrix (a GDS tool) may not see them at all. * The Zombie Fare: Conversely, the Matrix may show a GDS fare that the airline has technically deprecated in favor of a NDC offer. When you try to book this “Zombie Fare” on an Online Travel Agency (OTA) that uses old technology, the booking fail at the final payment screen because the inventory is no longer accessible via the legacy channel. Verification Protocol: If you find a fare on the Matrix involving American Airlines, United, or Lufthansa, you must cross-reference it immediately on the airline’s direct website. Do not rely on third-party OTAs for verification, as they may be caching the same bad GDS data as the Matrix.
The “Point of Sale” (POS) Mismatch
In Section 7, we discussed changing the “Sales City” to find cheaper fares in foreign markets. This creates a verification hazard. If you set the Matrix sales city to `PRG` (Prague) to find a cheaper fare in Euros, that inventory is partitioned for the Czech market. When you go to `United. com` from a US IP address, the site defaults to the US Point of Sale. The fare you found not appear. The Fix: You must verify the fare using a VPN set to the sales city you used in the Matrix, or use an aggregator that allows you to select the “Country/Region” of purchase (e. g., Skyscanner or Momondo with regional settings adjusted). If not replicate the price on a bookable site while mimicking the Point of Sale, the fare is a “geofenced” phantom that not buy without a specialized travel agent.
The “Dry Run” Verification Checklist
Before you consider a fare “found,” run this 5-point physical audit. This process moves you from theoretical data to actionable intelligence.
1. The Fare Basis Code Match
Locate the Fare Basis Code in the Matrix output (e. g., `O7LGT4`). Go to the airline’s direct website (or a strong aggregator like Kayak) and search for the exact itinerary. * Pass: You find the price within 5% of the Matrix quote. * Fail: The price is 20%+ higher. This means the specific “O” bucket is sold out, and the site is offering the bucket up (“Q” or “N”).
2. The Seat Map Illusion Test
Do not trust the seat map. A seat map shows unassigned seats, not unsold seats. A flight can be oversold by 10% (zero inventory) yet still show 20 empty seats on the map because passengers haven’t selected them yet. * Rule: Never use a seat map to verify availability. Use the availability string (`9` vs `0`) discussed above.
3. The “BookWithMatrix”
Copy the entire JSON output or the full itinerary text from the Matrix. Paste it into BookWithMatrix. com. This third-party tool interprets the Matrix “construction” command and attempts to build a deep link to an OTA (like Priceline or Expedia) or the airline itself. * Pass: The deep link loads the correct price on the booking site. * Fail: The booking site displays “Fare no longer available” or “Price has changed.” This confirms the Matrix data was cached/stale.
4. The 24-Hour Hold (The Golden Standard)
The only way to be 100% certain a hidden city fare exists is to generate a PNR (Passenger Name Record). * Action: On the airline’s site (or a US-based OTA), click all the way through to the final payment screen. * US Law: For flights touching the US booked at least 7 days in advance, you are entitled to a 24-hour free cancellation. * The Test: Purchase the ticket. If the ticket is issued and you receive a 13-digit ticket number (not just a confirmation code, a ticket number starting with the airline’s prefix, e. g., 001 for American), the fare is real. then cancel within 24 hours if you are not ready to fly.
5. Ghost Inventory Indicators
Be wary of specific error patterns in the Matrix that suggest broken data: * “Construction not found”: If the Matrix shows a price fails to display the detailed fare breakdown when you click on it, the fare is a calculation error. * Currency Drift: If the price changes slightly every time you refresh the search (e. g., $402, then $405, then $401), this is currency fluctuation on a valid fare. If it jumps $100+, it is inventory caching lag.
| Matrix Code | Official Meaning | Investigative Reality |
|---|---|---|
| 9 (e. g., Y9) | 9 or more seats available. | Safe. High probability of booking success. |
| 7 (e. g., Q7) | 7 or more seats available ( airlines cap at 7). | Safe. Standard display for European carriers. |
| 1, 3 (e. g., O2) | Low inventory. | High Risk. This is “cached” low inventory. Real-time status is likely 0. Verify immediately. |
| 0 (e. g., X0) | Sold out in this class. | Dead. Do not attempt to book. The fare construction is invalid. |
| / (Slash) | Closed / Not Offered. | Blocked. The airline has removed this class for this specific route (common in NDC disputes). |
The Final Audit
You have configured the global parameters, identified the hidden city, and verified the inventory buckets are open. You have confirmed the fare is not a ghost. The final step before operational execution is to understand the rules attached to this fare, specifically the penalties for “skipping” a segment. The Matrix provides the raw text of the Contract of Carriage in the “Rules” tab. In the section, examine how to read these legal hieroglyphics to determine if the airline has a specific clause that could lead to frequent flyer account termination.
Operational Risk Assessment regarding Airline Contracts of Carriage
Operational Risk Assessment: Airline Contracts of Carriage
The ITA Matrix provides the data to find a hidden city fare, it does not grant the immunity to fly it. When you purchase a ticket, you are not buying a seat; you are signing a binding legal agreement known as the Contract of Carriage (CoC). For the investigator, understanding this document is not about compliance, it is about risk management. Airlines have weaponized their CoCs to define hidden city ticketing (frequently termed “point-beyond ticketing” or “throwaway ticketing”) as a breach of contract, giving them the legal use to confiscate miles, cancel return tickets, and ban passengers. #### 1. The Legal method: “Prohibited Practices” Every major carrier includes a specific clause in their CoC that explicitly forbids booking a ticket with the intent of terminating travel at a connection point. This is not a suggestion; it is a codified rule used to justify immediate enforcement actions. * American Airlines (Rule 6): Explicitly prohibits “purchasing a ticket without intending to fly all flights to gain lower fares.” In 2024, American Airlines successfully sued Skiplagged, winning $9. 4 million in damages for copyright infringement and “ill-gotten” revenues, a verdict that emboldened their aggressive enforcement against individual passengers. * United Airlines (Rule 6): Defines “Point Beyond Ticketing” as a prohibited practice. United’s corporate security teams have issued demand letters to high-frequency violators, calculating the “revenue loss” (the difference between the flown fare and the booked fare) and demanding payment under threat of permanent ban. * Delta Air Lines: Lists “Throwaway Ticketing” as a violation that allows them to cancel the remainder of the itinerary and confiscate the value of the ticket. Operational Reality: not be arrested for hidden city ticketing; it is a civil breach of contract, not a criminal act. yet, the airline acts as judge, jury, and executioner regarding your frequent flyer status and future ability to fly. #### 2. The Surveillance Engine: Revenue Integrity Systems Airlines do not rely on gate agents to spot these patterns; they use enterprise-grade Revenue Integrity (RI) software. These systems, primarily Amadeus Revenue Integrity (ARI), Sabre AirVision, and PROS, run automated “robotics” that audit Passenger Name Records (PNRs) 24/7. These bots are designed to detect specific anomalies that signal a hidden city attempt: * Churning Detection: If you repeatedly book and cancel similar itineraries (a common behavior when searching for hidden city fares), RI systems flag the PNR as “speculative” or “abusive.” * Duplicate Booking Logic: Algorithms scan for overlapping segments. If you hold a “hidden city” ticket from NYC-CLT-MCO and a separate “backup” ticket from CLT to NYC for the same day, the system identifies the physical impossibility of flying both and may auto-cancel one or both. * No-Show Correlation: When a passenger fails to board the second leg (e. g., the CLT-MCO segment), the system marks the coupon as “flown/no-show.” This triggers an automatic cancellation of all remaining segments on the itinerary. This is the most immediate operational risk: if you skip a leg, your return trip is voided instantly. New Threat Vector (2025): Recent reports confirm that American Airlines agents have begun flagging passengers whose government-issued ID address matches the connection city. In one documented 2025 case, an agent interrogated a passenger connecting through their home state, warning them that failure to board the final leg would result in an immediate ban. #### 3. Verified Enforcement Actions (2020, 2026) The consequences of detection have escalated from warnings to “corporate death penalties.”
| Enforcement Type | Severity | Verified Consequence |
|---|---|---|
| Itinerary Voiding | High (Immediate) | If you skip a segment, the airline’s computer automatically cancels all subsequent flights (return legs). Do not book round-trip hidden city fares. |
| Account Termination | serious | Airlines terminate frequent flyer accounts, confiscating all accrued miles and status. This is irreversible. Never attach a frequent flyer number to a hidden city ticket. |
| Passenger Banning | serious | In 2023, American Airlines banned a 17-year-old for three years after detecting a hidden city itinerary. His family was forced to buy a new direct ticket at walk-up prices. |
| Financial Clawback | Moderate | Corporate accounts (travel agencies) are issued “Agency Debit Memos” (ADMs) for the fare difference. Individuals rarely face lawsuits for single infractions, demand letters for “revenue loss” are a known intimidation tactic. |
#### 4. The “Digital Exhaust” Problem Airlines link your identity across bookings using more than just your name. To mitigate risk, you must minimize your digital footprint. * Credit Card Hash: Revenue Integrity systems can link different PNRs paid for by the same credit card. Using a unique payment method for sensitive bookings prevents cross-referencing. * Known Traveler Number (KTN): Your TSA PreCheck or Global Entry number is a unique persistent identifier. Using it on a hidden city ticket links that itinerary to your permanent profile, even if you don’t enter a frequent flyer number. * Contact Information: Using the same email or phone number across “legitimate” and “hidden city” bookings allows the airline’s CRM to merge the profiles. Investigator’s Directive: The Contract of Carriage is a trap designed to catch the careless. If you fly a hidden city route, you are flying as a “ghost.” You must have no checked bags, no return ticket on the same PNR, no frequent flyer number attached, and no expectation of customer service in the event of irregular operations (IRROPS). If a flight is cancelled, the airline is only contractually obligated to get you to your final ticketed destination, not your hidden one.
Script for Transferring Matrix JSON Strings to Bookable Engines

The Air Gap: Why not Click “Buy”
The ITA Matrix is a search engine, not a travel agency. It queries the Global Distribution System (GDS) to display what is theoretically available, it absence the commercial credentials to problem the ticket. This separation is intentional. It allows the software to bypass the commercial filters that online travel agencies (OTAs) and airline websites use to steer consumers toward higher-fare buckets. For the investigator, this creates a “last mile” problem. You have identified a hidden city itinerary, a sequence of flights priced lower than its utility value, you possess only a string of data, not a valid reservation. To convert this data into a boarding pass, you must transfer the routing logic from the Matrix’s raw JSON output into a booking engine without triggering a re-pricing algorithm. This process requires precision. If you simply search for the same dates and cities on Expedia or Delta. com, their algorithms likely default to the “logical” routing (the most direct or standard route), which eliminates the hidden city savings. You must force the booking engine to accept the specific, inefficient route you found.
The Payload: Understanding the Matrix JSON
When the Matrix displays a final itinerary, it generates a structured data object containing the “Solution ID.” This object holds the cryptographic proof of the fare’s validity at that specific second. To view this data manually, inspect the page source, the relevant segment for transfer is the Fare Construction Line. This string is the DNA of the ticket.
Example Fare Construction Line:
BOS UA X/CHI UA LAX 461. 00K L K class /UA CHI 4. 50
In this string: * BOS: Origin. * UA: Carrier (United). * X/CHI: Connection in Chicago (The “X” denotes a transfer, not a stopover). * UA LAX: Carrier and Destination. * 461. 00K: The base fare in currency. * L: The Booking Class (Inventory bucket). If you lose the Booking Class (L) during the transfer, the receiving engine default to the currently available bucket (frequently Y or B), which can triple the price. The scripts detailed exist solely to preserve this string during the handoff.
Method 1: The ITA Matrix Powertools Script
The most reliable method for transferring data is the “ITA Matrix Powertools” userscript. This is a JavaScript overlay that modifies the Matrix interface in your browser. It scrapes the solution data and generates direct “Book” buttons that are otherwise hidden.
Installation and Execution
1. Environment Preparation: not run this on a standard mobile browser. You must use a desktop browser (Chrome, Firefox, Edge) with a userscript manager installed. “Tampermonkey” is the industry standard extension for this purpose. 2. Script Injection: Once Tampermonkey is active, you must install the Powertools script from a repository like GreasyFork or GitHub. The script detects when you are on `matrix. itasoftware. com` and injects code into the DOM (Document Object Model). 3. The Interface Shift: Upon reloading the Matrix results page, you see new elements. On the right-hand sidebar, where only “Fare per person” is displayed, a list of booking links appear.
The Booking Links
The script generates deep links to various engines. For hidden city ticketing, your choice of engine matters:
| Booking Engine | Reliability | Hidden City Risk |
|---|---|---|
| Airline Direct (e. g., AA. com) | High | High. Airlines audit their own bookings. If you enter a hidden city routing directly, their system may flag the account. |
| Priceline / Expedia | Medium | Low. OTAs care less about the routing logic. If the fare validates, they problem the ticket. |
| Momondo / Kayak | Low | Variable. These are aggregators. They pass you to another OTA, increasing the chance of data loss (fare class mismatch). |
When you click a Powertools link (e. g., “Book with Priceline”), the script constructs a URL containing the specific flight numbers, times, and booking codes. It forces the OTA to look for that specific inventory.
Method 2: The JSON (BookWithMatrix)
If not install scripts (e. g., on a work computer), the “BookWithMatrix” site acts as a manual. It parses the JSON text block and attempts to reconstruct the booking link server-side.
The Transfer Protocol
1. Extract: On the final itinerary page of the Matrix, locate the “Copy itinerary as JSON” button. If this is missing (common in the new Matrix interface), you must select the entire text of the itinerary details, including the fare breakdown. 2. Paste: Navigate to the site and paste the JSON blob. 3. Validation: The site parse the text. If it identifies the flight segments, it display a simplified view of the trip. 4. Execution: Click the booking partner link. Warning: This method frequently fails with “Complex Itinerary” errors. Hidden city fares frequently rely on “married segments” (where leg A and leg B are sold together not separately). The site sometimes queries the legs individually, causing the airline to return a “Sold Out” error because the specific inventory is only available as a married unit.
Method 3: Manual Fare Construction (The Google Flights Hack)
When automated tools fail, you must manually force the routing using Google Flights. This is because Google Flights shares the same backend (Qpx) as the Matrix, it has a “Book” button. 1. Isolate the Routing Code: In the Matrix, note the exact flight numbers and connection points (e. g., “DL 1234” and “DL 5678”). 2. Replicate in Google Flights: Open Google Flights. Do not just search Origin to Destination. 3. Force the Connection: Click “Multi-city” or use the “Connecting Airports” filter. Select the exact connection airport you found in the Matrix. 4. Select Specific Flights: You must manually select the flights that match the Matrix results. 5. The URL Handoff: Once the itinerary in Google Flights matches the Matrix result, Google generate a booking link. Investigative Note: If Google Flights shows a higher price than the Matrix for the exact same flight numbers, the fare is likely “stale” or “phantom.” The Matrix cache updates slower than the live reservation system. If the cheap fare class (e. g., “G” class) sold out 10 minutes ago, the Matrix may still show it, Google Flights (which pings the airline for live pricing) show the new price.
The Phantom Inventory Trap
A major point of failure in transferring hidden city fares is “Phantom Inventory.” This occurs when the GDS cache indicates a seat is available in a cheap fare bucket, the airline’s internal reservation system has already closed it. When you transfer the JSON string to an OTA via Powertools, the OTA sends a request to the airline: “Sell me 1 seat on Flight 123 in Class L.” The airline responds: “Class L is closed. Lowest available is Class Y.” The OTA then display an error message: “The price of this itinerary has changed from $140 to $450.” Do not proceed. This is not a hidden city deal; it is a standard fare. The “deal” no longer exists. You must restart your search and look for a different routing.
Protecting the Hidden City during Transfer
The most dangerous moment for a hidden city ticket is the transfer. Standard booking engines are designed to “optimize” routes. If you feed an engine a routing like `NYC -> CLT -> MCO` (where you intend to get off at CLT), the engine might “helpfully” notice that there is a direct flight `NYC -> CLT` available. If the engine switches you to the direct flight, the price jump to the standard market rate, destroying the arbitrage. Verification Checklist before Payment: 1. Verify Segments: Ensure the “throwaway” leg (the final segment you not fly) is still present in the itinerary. 2. Verify Stopover: Ensure the connection time at your actual destination is sufficient to exit the airport. 3. Verify Fare Class: Check that the booking class (e. g., Economy Basic vs. Main Cabin) has not shifted. 4. No Frequent Flyer Numbers: Never input your frequent flyer number during the booking of a hidden city ticket. The transfer script might have a field for this, leave it blank. Associating a loyalty account makes it easy for the airline to track and penalize you for missed segments.
Troubleshooting “Point of Sale” Conflicts
The Matrix allows you to change the “Sales City” (e. g., pretending you are buying the ticket in Cairo to get a cheaper price in EGP). When you transfer this to a US-based OTA (like Priceline), the price increase because the Point of Sale (POS) has shifted back to the US. To book a foreign-POS fare: 1. You must use an OTA based in that region (e. g., Expedia. co. jp for Japan, Opodo for Europe). 2. You may need a VPN to access the foreign version of the site. 3. The Powertools script allows you to change the country of the booking engine link. Ensure this matches the “Sales City” you used in your Matrix search. If the numbers do not match down to the cent (adjusted for currency conversion), the transfer has failed. The airline has re-priced the ticket based on your IP address or credit card billing address.
Emergency Protocols for IROPS and Involuntary Rerouting Events
The IROPS Kill Switch: When Algorithms Fail
In the architecture of hidden city ticketing, Irregular Operations (IROPS) represent the single greatest threat to your itinerary. An IROPS event, weather delays, mechanical failures, or crew timeouts, breaks the fragile logic of your booking. When a flight is cancelled, the airline’s automated re-accommodation software (such as Amadeus Altéa or Sabre’s automated rebooking tools) has one directive: transport the passenger to the ticketed final destination as as possible. For a standard traveler, a reroute from New York -> Charlotte -> Austin to a direct New York -> Austin flight is an upgrade. For a hidden city traveler intending to disembark in Charlotte, it is a disaster. The airline has legally fulfilled its Contract of Carriage by delivering you to Austin, leaving you stranded hundreds of miles from your intended location with no recourse.
The “Trip in Vain” Protocol
If your flight is significantly delayed or cancelled, you must immediately assess whether to abort. Under new Department of Transportation (DOT) rules finalized in April 2024, passengers are entitled to an automatic refund if they reject a “significant change” to their itinerary. Verified Thresholds for “Significant Change” (2024-2026): * Domestic Flights: Departure/Arrival shift of 3+ hours. * International Flights: Departure/Arrival shift of 6+ hours. * Airport Change: Any change to the origin or destination airport. * Routing Change: Adding a connection to a non-stop itinerary (or vice versa, though airlines rarely advertise this as a refund trigger, it fundamentally alters the service). If the airline’s proposed reroute bypasses your hidden city, do not for a specific connection immediately., invoke the “Trip in Vain” clause. State clearly to the agent: “This delay has rendered my trip pointless. I am requesting a full refund to the original form of payment under the DOT significant change rule.” Taking the refund is the safest exit. It liquidates the distressed itinerary and frees your capital to book a legitimate last-minute one-way ticket to your actual destination, frequently using the refund money plus the savings you secured from previous successful hidden city flights.
Weaponizing ITA Matrix for Rerouting
If you must travel and the airline attempts to reroute you directly to the final destination, use the ITA Matrix to find a valid routing that preserves your hidden city connection. Agents frequently claim “no other flights are available” because their screen filters for the fastest option. You must provide them with a specific, valid fare construction. Step-by-Step Tactical Search: 1. Access Matrix: Immediately open the ITA Matrix mobile interface. 2. Force the Connection: In the routing code field, input your hidden city as a mandatory connection point. * Syntax: `X: CLT` (Force connection in Charlotte) * Syntax: `C: AA X: CLT` (Force American Airlines via Charlotte) 3. Verify Inventory: Ensure the flight has open seats in your fare class (e. g., Y, Q, V). The Matrix displays “9” if the bucket is wide open. 4. The Script: Present the flight numbers to the agent. * Say: “I see availability on AA 1492 connecting through Charlotte. I have a meeting during the layover and need to maintain this routing. Please secure this specific segment.” Warning: Agents are not obligated to honor a specific connection if a direct flight is available. yet, during chaotic IROPS events (e. g., 1. 4% cancellation rate in 2024), agents prioritize clearing the queue. If you offer a valid solution that gets you off their desk, they frequently accept it without scrutinizing your motive.
The Gate Check Trap
The most common failure point during IROPS is the forced gate check. If you are rerouted onto a smaller regional jet (CRJ-900 or E-175), overhead bin space. The Rule: Never travel with a bag that cannot fit under the seat in front of you. If a gate agent demands you check your bag, it be tagged to the final ticketed destination. not short-check a bag (have it offloaded at a connection) during domestic travel; this is a security violation and a red flag for hidden city activity. Emergency Maneuver: If forced to check a bag on a hidden city itinerary: 1. Remove Lithium Batteries: Legally, loose lithium batteries cannot be checked. Tell the agent: “I have medical equipment and lithium batteries in this bag that cannot be separated.” This frequently grants you an exemption to bring the bag onboard or “pink tag” it (claim at the gate) rather than checking it through to the carousel. 2. Abort: If they refuse, you must not board. A bag flying to a city you are not visiting is a security incident that can lead to corporate security investigations.
Data Surveillance: 2024-2025 Cancellation Metrics
Understanding the probability of IROPS allows you to risk-adjust your booking. Data from the Bureau of Transportation Statistics (BTS) indicates where the system fractures.
| Metric | Rate / Count | Implication for Hidden City |
|---|---|---|
| Cancellation Rate (Full Year) | 1. 4% | 1 in 70 flights results in a total itinerary reset. |
| Dec 2024 Cancellation Spike | 0. 7% | Winter operations increase rerouting risks. |
| “Significant” Schedule Change | >3 Hours | Legal threshold to demand a cash refund. |
| Involuntary Denied Boarding | 0. 28 per 10k | Low risk, results in automatic rerouting. |
Involuntary Rerouting and “Original Routing Credit”
If you are forced to fly to the final destination (e. g., you fall asleep and miss the exit, or the airline reroutes you directly and you accept it due to exhaustion), still salvage the frequent flyer value. Original Routing Credit (ORC): Airlines must credit you for the miles and status segments of the ticketed itinerary, not the flown itinerary, if the change was involuntary. * Action: After the trip, email the airline’s frequent flyer desk. * Subject: “Request for Original Routing Credit due to Involuntary Rerouting.” * Outcome: You receive the miles for the longer, multi-segment trip you intended to fly ( didn’t), while having flown the direct route. Note: Do not request ORC if you successfully skiplagged (got off at the connection). This draws human attention to a PNR where you disappeared halfway through. Only request ORC if the airline forced you to fly the full, unwanted route.
Investigator’s Note: The “Contract of Carriage” is not a negotiation. It is a adhesion contract. American Airlines’ Conditions of Carriage (updated March 2026) explicitly states they may “substitute alternate carriers or aircraft” and “change the routing” without your consent. Your only use is the DOT refund rule. Use it.
Audit of Recent Legal Precedents and Airline Enforcement Actions
The American Airlines Offensive: A $9. 4 Million Precedent
The legal terrain shifted permanently in October 2024. A federal jury in the U. S. District Court for the Northern District of Texas delivered a verdict that ended the era of passive airline resistance. American Airlines was awarded $9. 4 million in damages from Skiplagged, the primary consumer interface for hidden city ticketing. The breakdown of this penalty reveals the airline’s new strategy. The jury assigned $4. 7 million for copyright infringement and another $4. 7 million for “ill-gotten” revenues. They did not, notably, award damages for trademark infringement.
This distinction is important for the individual investigator. The court did not rule that the act of disembarking early is a criminal offense for the passenger. It ruled that the tool used to find these fares violated the airline’s intellectual property rights by scraping data without authorization. The verdict emboldened carriers to target the infrastructure of fare discovery rather than individual travelers in court. Airlines view the unauthorized display of their inventory as a tortious act. This legal victory allows carriers to aggressively block IP addresses and seek injunctions against software that mimics the logic of the ITA Matrix without a valid license.
The “Intent” Loophole: Lufthansa’s German Defeat
While U. S. courts favored corporate control, the European judiciary moved in the opposite direction. In December 2025, the German Federal Court of Justice (Bundesgerichtshof or BGH) declared a specific “pricing clause” in Lufthansa’s General Terms and Conditions of Carriage invalid. This clause previously allowed the airline to retroactively recalculate a fare if a passenger skipped a segment. The court found that the clause violated the German Civil Code because it failed to differentiate between a passenger who intentionally manipulated the system and one who missed a flight due to unforeseen circumstances, such as illness.
This ruling created a temporary safe harbor for travelers originating in or transiting through Germany. Lufthansa was forced to update its Contract of Carriage to comply. The new language implies that the airline must prove the passenger had the “intent” to skip the segment at the moment of booking to enforce a penalty. Proving intent is legally difficult without a confession. Consequently, European carriers have shifted their focus from legal threats to operational harassment, interrogating passengers at the gate to elicit verbal admissions of intent before the flight departs.
Physical Enforcement: The Logan Parsons Protocol
Airlines have deputized gate agents to act as the line of defense. The detention of Logan Parsons in July 2023 serves as the primary case study for this escalation. Parsons, a teenager flying from Gainesville to New York with a layover in Charlotte, was intercepted by American Airlines agents in Florida. His North Carolina driver’s license triggered a red flag in the identity verification system. Agents suspected his true destination was the connection point, Charlotte.
Parsons was taken to a security room and interrogated until his ticket was canceled. The airline subsequently issued a three-year ban on his AAdvantage account. This incident codified a new enforcement standard: Identity Profiling. Gate agents routinely cross-reference the address on a passenger’s government-issued ID with the connection city on their itinerary. If the ID matches the layover city, the passenger is flagged for “intent to terminate.” You must travel with a passport to neutralize this vector, as passports do not list a home address.
The Corporate Shield and Agency Debit Memos (ADMs)
The most severe financial penalties target travel agencies, not individuals. When you book a hidden city fare through a corporate travel portal (like Concur or Expedia Corporate), you expose your employer to an Agency Debit Memo (ADM). Airlines audit ticket usage automatically. When a segment is flown out of sequence or skipped, the revenue integrity system problem a fine to the ticketing agency.
In 2024 and 2025, carriers like Air Canada and United standardized these fines. Air Canada’s policy dictates a debit memo of up to $1, 000 CAD per ticket for “inventory circumvention,” plus the fare difference. Agencies pass these costs directly to the corporate client, frequently with an additional processing fee. If you use the ITA Matrix to find a fare and then book it through your company’s travel agent, you create a paper trail that leads directly to your HR department. The agency may also lose its “plating authority”, the right to problem tickets on that airline’s stock, if they fail to police their clients. This blacklists your company from booking that carrier.
Table 12. 1: The Cost of Non-Compliance (2020-2026 Data)
| Entity | Primary Enforcement Tool | Financial Impact | Status Consequence |
|---|---|---|---|
| Individual Passenger | Account Termination / Ban | Forfeiture of all miles (Value: $0, $50k+) | Lifetime ban (AA/United) |
| Travel Agency (OTA/TMC) | Agency Debit Memo (ADM) | $150, $1, 000 per ticket + Fare Diff | Loss of Plating Authority |
| Aggregator (e. g., Skiplagged) | Federal Lawsuit (Copyright) | $9. 4 Million (2024 Verdict) | Injunctions / IP Blocks |
| Corporate Client | Contract Breach / ADM Pass-through | Full ADM payment | Suspension of Corporate Discount |
United Airlines Contract of Carriage: The 2026 Update
United Airlines quietly revised its Contract of Carriage in February 2026 to close the gaps exposed by the ITA Matrix. The new language under Rule 6 (Tickets) specifically “Back-to-Back” and “Throwaway” ticketing with broader definitions. Previously, the rule focused on round-trip tickets used to bypass Saturday night stay requirements. The updated clause prohibits any combination of tickets that “circumvents applicable fare rules,” a catch-all phrase designed to cover complex multi-city routings constructed via the Matrix.
The update also expanded the “Refusal to Transport” section. While media attention focused on the ban of “audio without headphones,” the serious addition for investigators was the right to refuse transport to passengers who “cannot prove intent to travel the complete itinerary.” This places the load of proof on the passenger at the check-in counter. If not produce a visa or accommodation proof for the final destination (the dummy city), United reserves the right to deny boarding and void the ticket without refund.
Operational Security for the Matrix User
The data proves that enforcement is automated, the trigger is frequently human error. The 2024-2026 enforcement wave shows that airlines do not manually audit every PNR. They rely on exception reporting. A passenger who checks a bag to the hidden city, enters a frequent flyer number, or with a gate agent generates a data anomaly. The “Pricing Clause” ruling in Germany and the “Copyright” verdict in Texas demonstrate that the law is fragmented. You must navigate this fragmentation by adhering to the cardinal rule: Silence. You do not discuss your itinerary with agents. You do not enter a frequent flyer number. You do not check bags. The Matrix provides the data; your tradecraft ensures the execution.


































