How ICAO and IATA Quietly Run the Global Airport Code System

How ICAO and IATA Quietly Run the Global Airport Code System

Two organizations you’ve probably never heard of control how every airport in the world is identified. ICAO and IATA assign the codes that appear on boarding passes and flight plans, governing a system used millions of times daily. Understanding their different roles explains why your boarding pass says “LAX” while your pilot’s flight plan says “KLAX”—and why the system works despite its apparent redundancy.

ICAO: The United Nations of Aviation

The International Civil Aviation Organization provides the foundation for global aviation standards.

UN agency status: ICAO is a specialized agency of the United Nations, established in 1944. It sets international standards for aviation safety, security, efficiency, and environmental protection. Airport codes are one small part of its mandate.

Four-letter codes: ICAO assigns four-character location indicators to every airport, heliport, and significant aviation facility worldwide. These codes follow systematic regional patterns that help identify location geographically.

Regional prefixes: The first letter indicates region. K indicates the contiguous United States. C indicates Canada. E indicates Northern Europe. L indicates Southern Europe. Y indicates Australia. This system allows quick geographic identification from the code itself.

Operational use: Pilots, air traffic controllers, and flight planning systems use ICAO codes exclusively. Flight plans filed with aviation authorities use KLAX, not LAX. Weather reports use ICAO identifiers. Operational aviation runs on the ICAO system.

IATA: The Airlines’ Organization

The International Air Transport Association serves airline commercial interests.

Trade association: IATA is an airline trade association, not a government body. It represents approximately 290 airlines across 120 countries, coordinating commercial activities that benefit from standardization.

Three-letter codes: IATA assigns three-character codes used in commercial contexts—reservations, ticketing, baggage handling, and passenger information. These are the codes on your boarding pass and luggage tags.

Commercial focus: IATA codes prioritize memorability and brand recognition over systematic geographic logic. LAX, JFK, and LHR are designed for passenger use, not operational aviation.

Assignment criteria: IATA assigns codes to airports with scheduled commercial service. Many small airports have ICAO codes but no IATA codes because they lack airline service.

Why Two Systems Exist

The parallel systems seem redundant but serve different needs.

Different users: Pilots and controllers need systematic geographic identification. Passengers and ticketing agents need memorable commercial identifiers. Optimizing for one audience would disserve the other.

Historical development: Both systems evolved from earlier practices and merged from regional standards. Creating a single unified system would require abandoning existing codes that millions of people and systems depend upon.

Scope differences: ICAO codes cover every aviation facility; IATA codes cover only commercially-served airports. Many small airports and heliports have ICAO codes without IATA equivalents.

Governance differences: ICAO operates as a UN agency with governmental authority. IATA operates as a private trade association. Different legal frameworks support different code systems.

How ICAO Codes Work

The systematic structure of ICAO codes encodes geographic information.

First letter: region: Each letter indicates a geographic region. K (United States), C (Canada), E (Northern Europe), L (Southern Europe), U (Russia), Z (China), O (Middle East and South Asia), and so on.

Second letter: country or sub-region: Within each region, the second letter often indicates country. EG is United Kingdom. EI is Ireland. ED is Germany. The second letter provides finer geographic resolution.

Third and fourth letters: specific airport: The final two letters identify the specific airport within the country or region. EGLL is London Heathrow (EG for UK, LL for the specific airport).

US special case: In the United States, ICAO codes are often K plus the three-letter IATA code. KLAX, KJFK, KORD. This simplifies the overlap but doesn’t apply universally—some US airports have different ICAO and IATA codes.

How IATA Codes Work

IATA codes follow less systematic but more memorable patterns.

City-based logic: Many IATA codes derive from city names. SFO (San Francisco), MIA (Miami), SEA (Seattle). The connection to the city name aids passenger memory.

Historical accidents: Some codes reference former airport names or obsolete designations. ORD references Orchard Place, O’Hare’s original name. MSY references Moisant Stock Yards, not New Orleans.

Availability constraints: When obvious city-based codes are unavailable, IATA assigns alternatives that may seem random. EWR for Newark exists because obvious alternatives were taken.

No geographic system: Unlike ICAO, IATA codes provide no geographic information. JFK tells you nothing about its location beyond memorized association with New York.

The Assignment Process

Getting a code requires navigating organizational procedures.

ICAO assignment: New airports apply to ICAO through their national civil aviation authority. ICAO assigns codes consistent with regional patterns. The process is bureaucratic but systematic.

IATA assignment: Airports apply to IATA’s Location Identifier Directory. IATA considers the airport’s commercial significance, proposed code availability, and airline interest. The process involves commercial as much as technical considerations.

Code conflicts: Requests for codes already assigned must be rejected or negotiated. Popular three-letter combinations face competition. Some airports accept less-preferred codes because their preferred options are unavailable.

Code changes: Changing established codes is extremely difficult. Systems worldwide depend on existing codes. Even when airports rename or merge, codes typically remain stable to avoid disruption.

Where You See Each System

Different contexts surface different code systems.

IATA codes appear: Boarding passes, luggage tags, reservation confirmations, flight search engines, airport signage in public areas, airline websites and apps.

ICAO codes appear: Weather reports (METARs, TAFs), NOTAMs (notices to airmen), flight plans, air traffic control communications, cockpit documentation, some airport signage in operational areas.

Overlap situations: Some contexts show both. Aviation weather apps may display “KLAX – LAX” to serve both audiences. Flight tracking services may offer both code systems.

Edge Cases and Oddities

The dual system creates interesting situations.

Airports with only ICAO codes: Small airports without scheduled commercial service have ICAO codes but no IATA codes. General aviation airports, heliports, and military fields fall into this category.

Conflicting codes: In rare cases, the same three letters mean different things in ICAO and IATA systems. These conflicts require careful context interpretation.

Regional code authorities: Some airlines or countries use additional coding systems for internal purposes. Russian domestic aviation historically used different systems that persist in some applications.

Metropolitan area codes: Both ICAO and IATA assign metropolitan area codes covering multiple airports. NYC (IATA) or KNYC (ICAO) might reference any New York area airport in some booking contexts.

System Coordination

The two organizations work together despite different mandates.

Cross-referencing: Both organizations maintain databases linking their codes. ICAO publications include IATA equivalents; IATA publications include ICAO equivalents. Conversion between systems is straightforward.

Conflicting claims: When code requests conflict, both organizations have processes for resolution. Priority typically goes to commercial viability (for IATA) or regulatory requirements (for ICAO).

Code retirement: When airports close, their codes may be retired or recycled. Both organizations coordinate to prevent confusion from recycled codes that might be confused with former uses.

Why This Matters for Travelers

Understanding the dual system helps navigate travel more confidently.

Search accuracy: Flight search engines use IATA codes. Knowing your destination’s IATA code prevents confusion when city names are ambiguous (there’s more than one Portland).

Weather information: Aviation weather uses ICAO codes. Pilots and aviation enthusiasts access METARs using KLAX, not LAX.

International travel: Foreign airports may have codes with no obvious city connection. Understanding that IATA codes don’t follow geographic logic helps decode unfamiliar destinations.

Baggage tracking: Those codes printed on baggage tags are IATA codes. Understanding the system helps verify your bags are routed correctly.

The Quiet Infrastructure

Most travelers never think about the organizations behind the codes they use daily. ICAO and IATA operate invisible infrastructure that makes global aviation function smoothly.

The system isn’t perfect—two parallel code systems is inherently redundant. But it evolved to serve different needs: operational aviation requires systematic geographic identification; commercial aviation requires memorable passenger-friendly codes. Neither organization wants the disruption of change, so the dual system continues.

Next time you check a boarding pass, you’re holding a small piece of international governance—codes assigned by organizations coordinating aviation across every country on Earth. The system works so reliably that we forget it exists. That invisibility is the best measure of its success.

Marcus Chen

Marcus Chen

Author & Expert

Marcus covers smart trainers, power meters, and indoor cycling technology. Former triathlete turned tech journalist with 8 years in the cycling industry.

208 Articles
View All Posts

Subscribe for Updates

Get the latest articles delivered to your inbox.