ICAO vs. IATA Codes — What’s the Difference?

Alexander Leslie
6 min readAug 6, 2020


Credit: International Civil Aviation Organization

This entry is the first in a series on web-based tools, tips, and reference guides for OSINT (open-source intelligence) exploitation, open-source research, conflict monitoring, independent journalism, and breaking news analysis. It will take several months to complete — with consistent work and cooperation — but will be updated daily with increasingly in-depth content that successively builds on the skills learned in previous articles.

Hopefully, by the end of this series, readers will be able to accurately report on breaking news with a relative degree of authority, fact-check, conduct research, and monitor/disseminate live developments at a proficient level as cyberjournalists.

I appreciate the patience as I work on this long-term project and welcome any and all recommendations.

~ Alex

Before divulging the purposes of ICAO/IATA codes and how to use them, it is important to clarify the differences between the organizations and why they’re often used in conjunction in order to identify entities associated with aircraft and commercial air travel:

ICAO: The International Civil Aviation Organization (ICAO) is a United Nations Specialized Agency based in Montreal that is tasked with governing the standards of international air navigation, transport, and planning. It is the sole international organization with legal authority to implement — and revise — standards on infrastructure, navigation technology, flight inspections, and cross-border procedures for international flights. Its members are the signatories to the 1944 Chicago Convention on International Civil Aviation, currently totaling 193 — all United Nations member states with the exception of Liechtenstein.

IATA: Also based in Montreal, the International Air Transport Association (IATA) is a non-governmental entity and trade association that is primarily concerned with the enforcement of private sector standards — with an emphasis on commercial airlines, travel agencies, and consumers. Its purpose is to ensure safety and efficiency for travelers by implementing international standards through its IATA Operation Safety Audit — which is mandated by many governments. The IATA has approximately 120 member states and 290+ airlines, representing about 80% of all international air traffic.

Although the ICAO and IATA often cooperate to streamline international air traffic, their designation is markedly different and they serve different purposes — the former is concerned with regulating international travel at a state-level, whereas the latter is focused on the private sector.

The most obvious distinction between the reporting codes used by the ICAO and IATA is very simple — ICAO codes are four (4) letters, whereas IATA codes are three (3) letters.

Confusingly, many international airports, airlines, and web-based flight radars employ BOTH ICAO and IATA codes for the same things — making it sometimes difficult to discern the purpose and distinction.

For example:

O’Hare International Airport in Chicago, Illinois, USA is colloquially known as ORD — the IATA abbreviation. However, its official reporting code is KORD the ICAO abbreviation.

Frankfurt am Main Airport in Frankfurt, Germany is colloquially known as FRA (IATA), whereas its international reporting code is EDDF (ICAO).

While the distinction within the United States is fairly straightforward — simply add a “K” to any international airport within the contiguous United States to create an ICAO code from its IATA counterpart (this will be explained in-depth later in a separate article) — international reporting codes, such as Frankfurt, are much less intuitive.

Credit: FlightRadar24

If we use FlightRadar24 (an in-depth guide to this tool is coming soon) to track this UPS flight from Louisville, USA to Cologne, Germany, we see that the IATA airport codes are used for the flight. SDF-CGN. However, the official flight path as designated by the ICAO is KSDF-EDDK.

ICAO codes are used in place of IATA codes for “official” purposes — such as with air traffic control (ATC), company flight plans, and airline identification in case of emergencies.

IATA codes are used in place of ICAO for “commercial” purposes — such as with airline ticketing, baggage checks, travel itineraries, domestic flight numbers, and more.

It is also important to clarify that IATA codes are much more accessible and common — particularly in the United States and smaller countries without robust air travel industries — because ICAO codes are primarily assigned to larger airports in their member states with “international” designation and therefore used to facilitate major cross-border trips or respond to emergencies.

In some cases, smaller general aviation airports or private airfields do not have an ICAO code, nor an IATA code.

For example:

Credit: Wikipedia, “List of airports in Illinois”

Illinois, for example, has a great number of “general aviation” and public-use airports that do not have EITHER code assigned — or, they have an ICAO code but not an IATA code. Or vice versa. This is why coding is sometime confusing for those listening to ATC feeds or viewing live radars, because there are considerable inconsistencies in coding — particularly in the United States at a local level for domestic and short flights.

Credit: Wikipedia, “List of airports in Illinois”

When we look closer at the southern part of Illinois, which is primarily rural and has airports that facilitate private flights and short-distance flights — international reporting codes are near-nonexistent.

Also, it is important to note that airlines themselves have IATA codes assigned to them for easy consumer identification, such as below:

Credit: eDreams

ICAO codes, which are primarily concerned with identifying their members states and facilitating international travel, assigned letters to each of their members in order to quickly delineate flight paths. And in-depth explanation will come in a later article — and will require a lot of memorization — but here is an example of ICAO codes by member state:

Credit: Wikimedia Commons

This was a long-winded way of explaining the obvious differences between ICAO/IATA reporting codes, but I hoped it helps to clarify why the two are used together, why they’re different, and why it is crucial to know both when trying to identify airports, flight paths, or ATC broadcasts.

In short:

ICAO codes are four-letter codes used by a appendant body of the United Nations to designate international flights and govern the standards of air travel.

IATA codes are three-letter codes used by a non-governmental trade organization to efficiently identify airports, airlines, and flight paths for consumers.

This article is the first of many to come, and each article in this OSINT series will build considerably on each of the previous.

Alexander Leslie is a foreign policy analyst, freelance journalist, and has an M.A. in Eurasian, Russian, & East European Studies from Georgetown University. His interests include U.S.-Georgia relations, energy politics, and studies in counterterrorism policy.

Contact: aejleslie@gmail.com

Follow me on Twitter!