Key takeaways
- Four characters at most: An ICAO type designator consists of two to four letters and digits and is listed in ICAO Document 8643. Air traffic control, flight planning and most flight trackers use it.
- Manufacturer, model, variant: Most codes follow the pattern manufacturer letter plus model number plus variant digit – A359 is the A350-900, B789 the 787-9.
- Letters at the end are signals: N stands for neo at Airbus (A20N), M for MAX at Boeing (B38M), W for the 777-300ER (B77W), K and X for variants with a two-digit number (A35K, B78X).
- Types are distinguished by performance, not by use: Passenger and freighter versions of the same type usually share a code. The 747-8F is B748 just like the 747-8I.
- Codes outlive names: The A220-300 is still BCS3, the H135 still EC35. If you know the old name, you understand the code.
Contents
- 1.ICAO type codes: the short answer
- 2.ICAO or IATA: two systems for aircraft types
- 3.The kit: manufacturer, model, variant
- 4.The letters at the end: N, M, W, K and X
- 5.The hidden extras: L2J and the wake turbulence category
- 6.Codes that carry old names
- 7.The most common pitfalls when reading
- 8.Decoding an unknown code: step by step
- 9.Using type codes in practice while spotting
- 10.Conclusion
You open the flight tracker, tap the dot on approach and read: A20N. Next to it a B38M, behind it a B77W. For beginners this looks like gibberish, but for experienced spotters it is the fastest way to name an aircraft type. This guide shows you how ICAO type codes are built, the patterns the big manufacturers follow, what extras like L2J and M mean, and where the logic deliberately does not follow the model name.
Collect type codes instead of just reading them
With Planetrack you post every sighting with photo, aircraft type, registration, airline and airport – and see in the hangar which types you are still missing. Planetrack is launching soon – join the waitlist and get early access.
ICAO type codes: the short answer
An ICAO type code, officially the Aircraft Type Designator, is an identifier of two to four letters and digits for an aircraft type. The International Civil Aviation Organization (ICAO) publishes the list in Document 8643. The code appears in the flight plan, on air traffic control screens and on most flight trackers. Most codes can be read like a kit: manufacturer letter, model number, variant. A359 is the Airbus A350-900, B789 the Boeing 787-9.
What matters is the purpose: ICAO distinguishes types by whether they behave differently for air traffic control – that is, by weight, speed, climb performance and engines. Whether an aircraft flies passengers or cargo is of no interest there. That is why an ICAO code is sometimes coarser, sometimes finer than the model name you know from the manufacturer.
ICAO or IATA: two systems for aircraft types
Besides the ICAO code, almost every airliner has a three-character IATA type code. It comes from the airlines’ Standard Schedules Information Manual and is used in schedules, booking systems and on departure boards. IATA distinguishes by commercial characteristics such as role, size or equipment – which is why freighters often have codes of their own there.
| Type | ICAO code | IATA code | What the comparison shows |
|---|---|---|---|
| Airbus A320neo | A20N | 32N | same logic, different notation |
| Boeing 737 MAX 8 | B38M | 7M8 | ICAO uses the model number 737-8, IATA uses MAX |
| Boeing 777-300ER | B77W | 77W | the W appears in both systems |
| Boeing 747-8F | B748 | 74N | ICAO does not separate cargo and passenger, IATA does |
| Airbus A320 with sharklets | A320 | 32A | ICAO has no sharklet code, IATA does |
What role IATA codes play for airports and airlines and how to tell FRA from EDDF is covered in the basics article IATA and ICAO codes explained. This one deals exclusively with ICAO type designators, because those are exactly what you read on the live map.
The kit: manufacturer, model, variant
For the large airliners the code mostly follows a simple principle. The first letter stands for the manufacturer, followed by the digits of the model, and the last position names the variant.
- Airbus: A332 is the A330-200, A333 the A330-300, A359 the A350-900, A388 the A380-800. The last digit matches the variant number after the hyphen.
- Boeing: B744 is the 747-400, B752 the 757-200, B763 the 767-300, B788 the 787-8, B789 the 787-9. After the B come the first two digits of the model number, then the variant: 747-400 becomes B744.
- Embraer: E190 and E195 stand for the first E-Jet generation, E290 and E295 for the E2 variants. The 2 in second position marks the new generation.
With smaller manufacturers the code is more of an abbreviation of the name. AT72 is the ATR 72 of the older series (the ATR 72-600 has its own code, AT76), DH8D the De Havilland Canada Dash 8-400, CRJ9 the Bombardier CRJ900, C172 the Cessna 172. The D in DH8D stands for the fourth version of the Dash 8 series – the smaller siblings run as DH8A, DH8B and DH8C.
Reading trick for beginners
Read the code from the back first. The last position almost always reveals the variant or generation – digit, N, M or a special letter. Only after that is it worth looking at manufacturer and model.
The letters at the end: N, M, W, K and X
It gets interesting when the end is not a digit. Then a generation or a special version is usually behind it.
| Code | Aircraft | What the letter means |
|---|---|---|
| A19N, A20N, A21N | Airbus A319neo, A320neo, A321neo | N for neo, the generation with new engines |
| B37M, B38M, B39M | Boeing 737 MAX 7, MAX 8, MAX 9 | M for MAX, the digit before it from the model number 737-7, -8, -9 |
| B3XM | Boeing 737 MAX 10 | X replaces the two-digit 10 |
| B77W | Boeing 777-300ER | its own designator for the heavier, longer-range -300ER |
| B77L | Boeing 777-200LR and 777F | L for the long-range base, which the freighter also uses |
| A35K | Airbus A350-1000 | K instead of the four-digit 1000 |
| B78X | Boeing 787-10 | X for the two-digit 10 |
The pattern behind it is easy to see through: four characters are not enough for every combination of manufacturer, model and variant. As soon as a variant becomes two-digit or a new generation is added, ICAO falls back on a letter.
Reading A20N: Airbus A320neo
A20N is a good example of the shortage of space. “A320neo” would need seven characters, so the 3 drops out: A for Airbus, 20 for the A320 model, N for neo. Likewise there are A19N and A21N. There is no A18N, because Airbus did not build an A318neo. The family’s classic models keep their full numbers A318, A319, A320 and A321. How to tell ceo from neo at the fence even without a tracker is shown in the guide Telling the A320neo from the ceo. The type itself is introduced in the profile of the Airbus A320neo; according to the type list, A21N by the way also covers the LR and XLR versions of the A321neo.
Reading B38M: Boeing 737 MAX 8
With B38M it is worth a look at the official model designation. Boeing internally calls the MAX 8 the 737-8, and that is exactly where the code comes from: B for Boeing, 38 from 737-8, M for MAX. The MAX 7 thus becomes B37M, the MAX 9 B39M. For the MAX 10 a digit is not enough, hence B3XM. You will find more on the type at the Boeing 737 MAX 8 and the Boeing 737 MAX 10.
Reading B77W: Boeing 777-300ER
With the 777 the scheme breaks down most clearly. B772 is the 777-200, B773 the 777-300 – logical so far. The 777-300ER, however, got its own code because it is much heavier and flies farther. You also find the W in the IATA code 77W for the same variant. The 777-200LR also has its own designator, B77L, which the freighter 777F shares with it. You can read the profile of the long-haul workhorse under Boeing 777-300ER; the differences from the 787 are explained in Telling the Boeing 777 and 787 apart.
The hidden extras: L2J and the wake turbulence category
In Document 8643, next to each code there is a short description of three characters. Many trackers and receiver programs like tar1090 show it or let you filter by it.
- First letter – construction type: L for landplane, H for helicopter. There are also separate letters for seaplanes and amphibians, gyrocopters and tiltrotors.
- Digit – number of engines: 1, 2, 3 or 4 for most types.
- Last letter – type of propulsion: J for jet engine, T for turboprop or turboshaft, P for piston engine.
Added to that is the wake turbulence category (WTC). It is based on the maximum certificated takeoff mass and determines how much separation air traffic control leaves behind an aircraft.
| Category | Meaning | Maximum certificated takeoff mass |
|---|---|---|
| L (Light) | light | 7,000 kg or less |
| M (Medium) | medium | over 7,000 kg and under 136,000 kg |
| H (Heavy) | heavy | 136,000 kg or more |
| J (Super) | super | explicitly classified as such – currently only the A380-800 |
This gives every code a small profile. The values come from Eurocontrol’s aircraft performance database:
| Code | Aircraft | Description | WTC | Max. takeoff mass per Eurocontrol |
|---|---|---|---|---|
| C172 | Cessna 172 Skyhawk | L1P | L | 1,050 kg |
| EC35 | Airbus Helicopters H135 (EC135) | H2T | L | 2,950 kg |
| DH8D | Dash 8-400 | L2T | M | around 29,000 kg |
| A20N | Airbus A320neo | L2J | M | 79,000 kg |
| B38M | Boeing 737 MAX 8 | L2J | M | 82,600 kg |
| B77W | Boeing 777-300ER | L2J | H | 351,500 kg |
| A388 | Airbus A380-800 | L4J | J | 560,000 kg |
On the radio, by the way, you hear the category too: heavy aircraft often report with the addition “Heavy” after the callsign, the A380 with “Super”. Why this matters for separation is explained in Wake turbulence and separation. In Europe, Eurocontrol additionally works with the finer RECAT-EU classification, which lists A20N and B38M as “Upper Medium”, for example – but that plays no role in reading type codes.
Codes that carry old names
Type codes are rarely renamed when the brand name changes. For spotters that is a small history lesson in the tracker.
- BCS1 and BCS3: Today’s Airbus A220 was developed as the Bombardier CSeries. The codes for the A220-100 and A220-300 still recall that today.
- EC35: The Airbus Helicopters H135 still runs under the abbreviation of its former name, Eurocopter EC135.
- DH8D: The Dash 8-400 was long marketed as the Bombardier Q400, while the code points to the original manufacturer De Havilland Canada. The type has since returned to that name – so the code was proven right. More on this in the profile of the Dash 8-400.
The most common pitfalls when reading
If you transfer type codes into your logbook, sooner or later you stumble over the same spots. You should know these five.
- B737 is not the whole 737 family. The code designates only the 737-700. The 737-800 is B738, the 737-900 B739, and the older Classic models run as B733, B734 and B735. Which generation you have in front of you is explained in Telling Boeing 737 Original, Classic, NG and MAX apart.
- A320 does not mean “just any A320”. A320 stands for the ceo generation, the neo is A20N. If you note both as A320, you lose the information about the generation.
- No separate code for sharklets. An A320 with sharklets remains A320 at ICAO. Only the IATA system has codes of its own for that, such as 32A.
- Freighters hide. A 747-8F is B748, a converted 737-800BCF stays B738. Whether cargo or passengers – only the registration or the airline reveals that. More in Recognizing freighter aircraft.
- The tracker can be wrong. Aircraft do not transmit their type via ADS-B. Trackers match it from a database via the transponder’s hex address. If an entry there is outdated, the wrong type appears on the map. Background: ICAO 24-bit address (hex code).
When a B77W or A388 is on approach
Planetrack tells you via sighting alert when a type, airline or specific registration you are watching is on approach to your airport. Planetrack is launching soon – join the waitlist and get early access.
Decoding an unknown code: step by step
Sooner or later a code shows up on the map that you have never seen. With this routine you usually arrive at the type within seconds.
1. Check the manufacturer letter
A points to Airbus, B to Boeing, E to Embraer. Abbreviations like AT, DH, CRJ or C stand for ATR, De Havilland, Bombardier CRJ or Cessna.
2. Read the model digits
The digits in the middle mostly match the model number, shortened if necessary – 20 for A320, 38 for 737-8, 77 for 777.
3. Interpret the last position
A digit means variant, N means neo, M means MAX. K, X, W or L mark special cases that you are best off looking up once and then remembering.
4. Cross-check description and category
L2J and M fit the short- and medium-haul jet, L4J and J only the A380. If the profile does not fit your guess, you are wrong.
5. Confirm with the registration
The type code only says which type is flying. Only the registration makes the sighting unambiguous – and helps you spot database errors.
The authoritative source is ICAO’s searchable type list for Document 8643. For everyday use, though, the trackers’ info windows are enough, as they mostly show code and spelled-out type together. What that looks like on Flightradar24 is described in the Flightradar24 guide.
Using type codes in practice while spotting
At the fence, type codes are above all a tool for filtering and organizing.
- Filter with purpose: Many trackers and receiver programs filter by type code. In tar1090 the expression
B73.captures the whole 737 family, the descriptionL2Jall twin-engine jet landplanes. How this works is covered in the guide Installing readsb and tar1090; for the ADS-B Exchange web interface, ADS-B Exchange explained helps. - Document cleanly: If you keep the ICAO code in your logbook instead of a free-text type name, you can sort, count and compare later. Tips on this are in Documenting sightings: the logbook.
- Set collecting goals: Many spotters keep their type list by ICAO codes because that makes the boundaries unambiguous. You will find ideas for this in Collecting all aircraft types.
- Day planning: A B77W or A388 in the day’s flight schedule is, at many airports, the reason to be standing at the Munich Airport visitors’ hill (Besucherhügel) or the Hamburg “Affenfelsen” (Monkey Rock) viewing area earlier.
Still, you should not take the type code as a substitute for looking. If you want to recognize types even without a tracker, the best start is Identifying aircraft types for beginners and Telling Airbus from Boeing.
Can you read ICAO type codes with confidence?
- I know that A20N is the A320neo and A21N the A321neo.
- I can assign B38M, B39M and B3XM to the right 737 MAX.
- I know that B77W is the 777-300ER and B773 the regular 777-300.
- I know that B737 designates only the 737-700.
- I can read L2J and L4J.
- I know the four wake turbulence categories L, M, H and J.
- I know that freighters as a rule have no ICAO code of their own.
From code to collection
Post your sightings with aircraft type and registration, keep your hangar with a wish list and swap notes about rare types in the community. Planetrack is launching soon – join the waitlist and get early access.
Conclusion
ICAO type codes look cryptic but follow a comprehensible logic. Mostly the manufacturer is at the front, the model in the middle and the variant at the back. Letters like N, M, W, K or X mark new generations and special cases. Document 8643 also supplies a short description like L2J and the wake turbulence category. Because ICAO distinguishes by flight performance and not by use, freighters and sharklet versions stay invisible in the code. For an unambiguous sighting, the registration therefore always belongs with it.
In short
Read ICAO type codes from the back: digit means variant, N means neo, M means MAX, special letters like W, L, K and X are special cases. A20N is the A320neo, B38M the 737 MAX 8, B77W the 777-300ER. Watch out for the pitfalls B737 and A320 and confirm every sighting with the registration.
Summary
- ICAO type designators are short codes for aircraft types, distinguished by flight performance and therefore by relevance to air traffic control. IATA keeps its own three-character system for flight schedules and booking.
- Each code comes with a short description such as L2J (landplane, two jet engines) and a wake turbulence category from L to J.
- The typical patterns: digit at the end for the variant (B738), N for neo (A20N), M for MAX (B38M), special letters for special cases (B77W, B77L, A35K, B78X, B3XM).
- There are plenty of pitfalls: B737 is not the whole family but the 737-700. Sharklet A320s and freighter versions do not get their own ICAO code.
Frequently asked questions
What is an ICAO type code?
An ICAO type code, officially an Aircraft Type Designator, is an identifier of two to four characters for an aircraft type. ICAO publishes the list in Document 8643. Pilots enter the code in the flight plan, air traffic control works with it, and flight trackers show it next to the callsign and registration.
What does A20N mean?
A20N is the ICAO type code of the Airbus A320neo. A stands for Airbus, 20 for the A320 model, N for neo. The same pattern gives A19N for the A319neo and A21N for the A321neo, with A21N also covering the long-range LR and XLR variants. The classic models without the new engines run as A319, A320 and A321.
What does B38M mean?
B38M is the Boeing 737 MAX 8. B stands for Boeing, 38 for the 737-8 – that is the official model designation of the MAX 8 –, M for MAX. Accordingly B37M is the MAX 7, B39M the MAX 9 and B3XM the MAX 10, where the X replaces the two-digit 10.
Why is the 777-300ER B77W and not B773?
Because the 777-300ER differs so clearly from the original 777-300 in weight, range and engines that it was given its own code. B773 is the regular 777-300. In the IATA system it is also called 77W.
What does L2J mean for an aircraft type?
That is the type’s short description from Document 8643. The first letter gives the construction type (L for landplane, H for helicopter), the digit the number of engines and the last letter the type of propulsion (J for jet engine, T for turboprop or turboshaft, P for piston engine). So L2J is a twin-engine jet landplane – such as A20N, B38M or B77W.
Do freighters have their own ICAO type code?
As a rule, no. ICAO codes distinguish by flight performance, not by use. The Boeing 747-8F runs as B748 just like the 747-8I, and the 777F shares B77L with the 777-200LR. In the IATA system, by contrast, freighters often have codes of their own. The surest way to tell whether an aircraft flies cargo is the registration.
Where do I find an aircraft’s type code?
On almost all flight trackers it is shown right in the flight’s info window, often next to the registration. The authoritative list is ICAO Document 8643, which ICAO offers online in a searchable form. Important: the type does not come from the ADS-B signal there, but from a database that matches an aircraft to the transponder’s hex address.
Look it up instead of guessing
In the aircraft types database you’ll find a dedicated page for every aircraft type with a profile, identifying features and spotting tips – sorted by manufacturer.
Read more in Identifying aircraft types
- How to tell the A318, A319, A320 and A321 apart
- A330 or A340? Spotting engine count, landing gear and variants
- A350 or Boeing 787? Cockpit window mask, wingtips and nose
- A380 or Boeing 747? How to tell the double-deck giants apart
- Airbus or Boeing? How to tell them apart
- Identifying AWACS and recon aircraft: E-3, P-8, RC-135 and Global Hawk
Related airports & manufacturers
Airports, manufacturers, airline groups and alliances – who is behind them and what you should know as a spotter.
Airbus
European aerospace company and one of the two big manufacturers of commercial aircraft – with aircraft families from the A220 to the A350.
ManufacturerBoeing
Boeing is the American counterpart to Airbus and has built airliners in series since the 707. If you can tell the 737, 777 and 787 apart by landing gear, wingtips and tail, you can identify a large share of the traffic at any European airport – even without a livery clue.
ManufacturerEmbraer
From the Bandeirante feeder turboprop to the 146-seat E195-E2: Embraer of São José dos Campos is regarded as the third major force in airliner building after Airbus and Boeing – and also builds business jets, the C-390 military transport and the Super Tucano. Here you learn how to tell the families apart and where to get them in front of your lens in Europe.
Related spotting locations
Specific vantage points with the runway configuration, light times, coordinates and an honest take on whether the trip is worth it.
Affenfelsen (“Monkey Rock”) at Hamburg Airport
The best-known spotting point at Hamburg Airport: from the Affenfelsen on Holtkoppel you look over the fence onto runway 15/33 without a ladder – with a kiosk café right next door and the morning sun at your back.
Spotting hillMunich Airport visitors’ hill (Besucherhügel)
The best-known vantage point at Lufthansa’s Munich hub: from the visitors’ hill in the Besucherpark you look out over the airport grounds from above – with its own S-Bahn stop right next door.
You might also like
IATA and ICAO codes explained: decoding airports, airlines and aircraft types
Three letters on the boarding pass, four on the flight tracker: why airports, airlines and aircraft types each have two codes, how they are built and how to read them confidently while spotting.
Identifying aircraft typesA320neo or ceo? Engines, Sharklets and other identifying features
Fuselage, cockpit and tail are almost the same – the engines make the difference between the A320neo and A320ceo. Wingtips, door layout and type code serve as a cross-check.
Identifying aircraft typesHow to tell the Boeing 737 Original, Classic, NG and MAX apart
Four generations, one layout: how to tell at the fence whether a 737 comes from the sixties, the eighties, the NG era or the MAX family – engine, wingtip and tail cone give it away.



