UN/LOCODE

UN/LOCODE, the United Nations Code for Trade and Transport Locations, is a geographic coding scheme developed and maintained by United Nations Economic Commission for Europe (UNECE), a unit of the United Nations. UN/LOCODE assigns codes to locations used in trade and transport with functions such as seaports, rail and road terminals, airports, post offices and border crossing points. The first issue in 1981 contained codes for 8,000 locations. The version from 2011 contained codes for about 82,000 locations.

Anglicized names
Beside the abbreviation, UN/LOCODE also defines a spelling for each location that can be written using only letters of the English alphabet. This was achieved by stripping off the diacritics from the romanized local name.

Structure
UN/LOCODEs have five characters. The first two characters are letters. They code a country by the table defined in ISO 3166-1 alpha-2. The three remaining characters code a location within that country. Letters are preferred, but if necessary digits 2 through 9 may be used, excluding "0" and "1" to avoid confusion between "O" and "0" and between "I" and "1".

For each country there can be a maximum of 26*26*26 = 17 576 entries, using only letters, or 34*34*34 = 39 304 entries using letters and digits.

For the US, the 17 576 possible letter combinations have been almost exhausted. In 2006, the Secretariat added 646 entries to the 2006-2 issue of UN/LOCODE, in which the third position of 3-character codes is a digit from 2 to 9. The 2007 issue of UN/LOCODE contains 689 such US entries.

Loose consistency with existing IATA airport codes
For airports, the three letters following the country code are not always identical to the IATA airport code. According to the Secretariat note for Issue 2006-2, there are 720 locations showing a different IATA code.

Official UN/LOCODE tables
UN/LOCODEs are released as a table. An individual revision is officially referred to as an "issue". A discussion of the table's structure follows.

Examples

 * Explanations:


 * US NYC for New York City in the United States. Subdivision is the U.S. state of New York (see ISO 3166-2:US). Function: port, rail, road, airport, postal. IATA code is NYC. Coordinates: 40.7°N, -74°W.


 * IN MAA for Chennai City(formerly termed as MADRAS during British colonization) in India. Subdivision is the Indian state of TamilNadu . Function: port, rail, road, airport, postal. IATA code is MAA. Coordinates: 13.13333°N, 80.45°W.


 * DE BER for Berlin (city) in Germany. Subdivision is the German state of Berlin (see ISO 3166-2:DE). Function: port, rail, road, airport, postal. IATA code is BER. Coordinates: 52.51667°N, 13.38333°W.


 * DE TXL for Berlin-Tegel Airport in Germany. Function: airport. IATA code is TXL.


 * FR PAR for Paris (city) in France. Subdivision is the French department of Paris (see ISO 3166-2:FR). Function: port, rail, road, postal.


 * GB PAR for Par in United Kingdom. Subdivision is the English county of Cornwall (see ISO 3166-2:GB). Function: port.


 * SE GOT for Göteborg (Goteborg without diacritics) in Sweden. Subdivision is the Swedish county of Västra Götaland (see ISO 3166-2:SE). Function: port, airport, postal. The IATA code of XWL indicated in the table is that of a train station in the city centre of Göteborg (though not the Central Station), while the IATA code for the main airport (Göteborg-Landvetter Airport) is actually GOT. It also has a separate reference entry showing an alternate spelling of Gothenburg.

Data fields
The fields are listed in the official order.

Ch (Changes)

 * A change from the previous issue is indicated by one of the following characters in the first column:
 * X Marked for deletion in the next issue
 * #</tt> Change in location name (usually spelling)
 * ¦</tt> Other change in the entry (not location)
 * +</tt> Entry added to the current issue
 * =</tt> Reference entry
 * !</tt> Retained for certain entries in the USA code list ("controlled duplications")

Locode

 * The code is represented with a space between the country code and the 3-letter element.

Name

 * The name of the location.

Name Without Diacritics

 * The name of the location, but all non-latin-base characters are converted.
 * Can contain ' e.g. L'viv

SubDiv (Subdivision)

 * The ISO 1 to 3 character alphabetic and/or numeric code for the administrative division (state, province, department, etc.) of the country, as included in ISO 3166-2/1998. Only the latter part of the complete ISO 3166-2 code element (after the hyphen) is shown.

Function
Each defined function gets a classifier; the most important are:
 * 1 = port (for any kind of waterborne transport)
 * 2 = rail terminal
 * 3 = road terminal
 * 4 = airport
 * 5 = postal exchange office
 * 6 = Inland Clearance Depot – ICD or "Dry Port", "Inland Clearance Terminal", etc.
 * 7 = fixed transport functions (e.g. oil platform)"; the classifier "7" is reserved for this function. Noting that the description "oil pipeline terminal" would be more relevant, and could be extended to cover also electric power lines and ropeway terminals.
 * B = Border crossing function

Status

 * Indicates the status of the entry by a 2-character code. The following codes are used at present:
 * AA: Approved by competent national government agency
 * AC: Approved by Customs Authority
 * AF: Approved by national facilitation body
 * AI: Code adopted by international organisation (IATA or ECLAC)
 * AS: Approved by national standardisation body
 * RL: Recognised location - Existence and representation of location name confirmed by check against nominated gazetteer or other reference work
 * RN: Request from credible national sources for locations in their own country
 * RQ: Request under consideration
 * RR: Request rejected
 * QQ: Original entry not verified since date indicated
 * XX: Entry that will be removed from the next issue of UN/LOCODE

Date

 * The date the location was added or updated: 0207 is July 2002, 9501 is January 1995, etc.

Observation: The edition published in 2008 contains for additions the value 0701, while in other cases the exact month is used like 9710, 0212.

IATA

 * The IATA code for the location if different from the second part of the UN/LOCODE.

Coordinates

 * Some entries have coordinates in the database. They are represented by two numbers: the first followed by either N or S, the second by either E or W.

Remarks

 * The remarks column can among other things contain a hint to what specifically was changed (See data field - "Change").

Errors
In 2006-07 IQ IRB</tt> for Irbil was added while IQ ABL</tt> Arbil with almost the same coordinates existed. In the 2007 edition IQ ABL</tt> gets marked for deletion and IQ EBL</tt> Erbil International Apt is added to the database, but with a different coordinates, reflecting the distance between airport and city. The error is to delete ABL and to insert IRB.}

Occasionally locations are listed twice; this is not necessarily an error. In issue 2006-1, ARSMC </tt> San Miguel de Tucumán (functions 2,3) was added while ARTUC </tt> Tucumán (function 1) already was in the list. The coordinates are with very little deviation the same. Also in 2006-1, ARSSJ </tt> San Salvador de Jujuy was added (function 4) while ARJUJ </tt> Jujuy (functions 1,2,3,5) already existed.

2007 added a 2nd code for Bánovce nad Bebravou. SK BAN Bánovce Nad Bebravou—3- RL 0701 4843N 01815E SK BNB Bánovce nad Bebravou -23–6-- RL 0607 4843N 01815E

The 2007 edition contains character encoding errors in the .txt and .csv files. The name for the new code FR ONM</tt> Moёlan-sur-Mer does not show the ё correctly. In the .mdb file it is encoded correctly but the column "NameWoDiacritics" contains the name with diacritics .i.e. "Moёlan-sur-Mer". Users who cannot access .mdb files, cannot obtain from the website a correct list for their databases.

Another error from 2007 code list: DE GXD Gross-Umstadt Gross-Umstadt HE—3- RL 0201 4952N 00855E + DE UMS Gross-Umstadt Gross-Umstadt HE -23- RL 0701 4952N 00856E

US TRI + US BOS, same coor and within TRI different coor

US BFS Bristol                           VA RL -234 0212 3636N 08211W cf US JCI, US BSO, US TRI US BSO Bristol Apt                       TN RL -234 0212 3635N 08210W cf US JCI Apt, US BSO Apt, US TRI Apt US TRI Bristol-Johnson City-Kingsport Apt TN RL -234 0212 3635N 08210W cf US JCI, US BSO, US TRI US TRI Johnson City-Kingsport-Bristol Apt TN RL -234 0212 3635N 08210W cf US JCI, US TRI, US BSO US TRI Kingsport-Bristol-Johnson City Apt TN RL -234 0212 3635N 08210W cf US JCI, US TRI, US BSO US TRI Kingsport Apt                     TN AI ---4 0212 3632N 08233W cf US BSO Apt, US JCI Apt

2009-1
The 2009-1 release added several entries for Ukraine where the longitude is off by a few orders of magnitude. Ranging from 23230E to 38829E, they are outside what would constitute an eastern longitude. Ivano Frankovsk and Chuguyev have two entries now, along with Nikolayev. For all three, the romanized spelling varies. + UA IVA Ivano Frankivsk                   26–3- RL 0901      4855N 24422E UA IFO Ivano-Frankovsk                      ---4 AI 0001 + UA CHU Chuguev                           63–3- RL 0901      4950N 36411E + UA CGV Chuguyev                          63  -23- RL 0901      4950N 03641E UA NLV Nikolaev                             ---4 AI 0001 UA NIK Nikolayev                            1--- AI 9501

Other entries with wrong coordinates: + UA BOH Bohorodchany                      26–3- RL 0901      4848N 24321E + UA IZI Iziaslav                          7   --3- RL 0901      5606N 26492E + UA KAM Kamianets-Podilskyi               68–3- RL 0901      4841N 26345E + UA KHA Khartsyzk                         14–3- RL 0901      4802N 38829E + UA KHM Khmelnytskyi                      68–3- RL 0901      4950N 36411E + UA KIR Kirovohrad                        35–3- RL 0901      4830N 32157E + UA KON Konstantinovka—3- RL 0901      4722N 32170E + UA MIR Mironovka                         14–3- RL 0901      4829N 38150E + UA MYR Myronivka                         32–3- RL 0901      4939N 30590E + UA POL Nikopol                           12–3- RL 0901      4734N 34240E + UA LAH Nova Vodolaha                     63–3- RL 0901      4943N 35520E + UA OVI Ovidiopol                         51–3- RL 0901      4616N 30260E + UA CRY Ripky                             74  -6-- RL 0901      5148N 31600E + UA TAL Talne                             71–3- RL 0901      4853N 30421E + UA TRU Truskavets                        46–3- RL 0901      4917N 23300E + UA VOR Vorzel                            32–3- RL 0901      5033N 30090E + UA YAV Yavoriv                           46–3- RL 0901      4956N 23230E + UA ZHO Zhovkva—3- RL 0901      5040N 23580E

For the US more codes with one letter and the number 9 alone were added. For the range H to M they are: + US R9  Harpersville                        VA—3- RL 0901      4313N 07626W + US T9  Henrietta                           MO  -23- RL 0901      3914N 09356W + US U9  Hugo                                MN  -6-- RL 0901      4509N 09259W + US D9  Indian Head                         MD  -6-- RL 0901      3836N 07709W + US F9  Lindenwood                          IL  -6-- RL 0901      4203N 08901W + US T9  Mantua                              OH  -6-- RL 0901      4117N 08113W + US W9  Matthews                            MO  -6-- RL 0901      3645N 08935W US L9 Maylene                             AL—3- RL 0701      3312N 08652W + US N9  Milan                               NM—3- RL 0901      3510N 10753W US D9 Minidoka                            ID  -23- RL 0701      4245N 11330W US C9 Mitchell                            MS—3- RL 0701      3443N 08851W + US R9  Morgan                              PA  -6-- RL 0901      3955N 07939W + US V9  Morrisville                         NJ—3--6-- RL 0901      3958N 07503W US H9 Mount Hope                          OH—3--6-- RL 0701      4037N 08147W US F9 Munroe Falls                        OH  -23- RL 0701      4109N 08126W

Problems
Some entries do not have coordinates, so it is not clear where they actually refer to. If an IATA code changes, then the UN/LOCODE could also be considered to have changed. MS MNI Montserrat Montserrat AI ---4 9601
 * Gerald's Airport from 2005, ICAO: TRPG
 * W. H. Bramble Airport until 1997, ICAO: formerly TRPM

For Kochi / Cochin the postal function has KOC (1998) and all other functions have COK (2003). IN KOC Kochi Kochi     AI 5--- 9805 IN COK Cochin Cochin KL AA 1234-6-- 0307 0958N 07614E

Release history

 * Notes:
 * +</tt> Additions to the current issue
 * ¦</tt> Other changes
 * <tt>#</tt> Change in location (spelling or other)
 * <tt>X</tt> Entries marked for deletion in the next issue