FIPS 10-4 Codes and history


FIPS Publication 10-4, COUNTRIES, DEPENDENCIES, AREAS OF SPECIAL SOVEREIGNTY, AND THEIR PRINCIPAL ADMINISTRATIVE DIVISIONS, as well as its predecessor FIPS Publication 10-3, provides a list of the basic geopolitical entities in the world, together with the principal administrative divisions that comprise each entity.

The codes for basic geopolitical entities are made of two letters (e.g. US for the United States of America). The codes for principal administrative divisions are four letters: the first two are the letters for the entity and the last two enumerate the regions (01, 02, ..., 99, A1, A2, ..., A9, B1, ...).

Over time, as the entities and divisions adressed by FIPS 10-4 change, some codes are retired and others are added. The principle is that a code corresponds to a geographic area. For example, the “old” Maluku division of Indonesia was split in the “new” Maluku division and the Maluku Utara division. The old division had the code ID16, and the two new divisions have the codes ID28 and ID29 respectively; thus there are different codes for the old and new Maluku, because they have different geographical extents. Such changes are announced in change notices, Change Notice 6 in this case.

While the principle is generally followed, there are exceptions. For example, the Selangor state of Malaysia (MY12) was split into Putrajaya (which received code MY17) and a “new” Selangor state, and a code should have been assigned to that “new” state. Instead, MY12 ambiguously represents the “old” and the “new” Selangor state.

For our purposes, we sometime want to augment FIPS 10-4 with codes for divisions which have not been recorded. All the virtual codes we add are of the form xx_A, xx_B, ...

The names used by FIPS 10-4 may not always be the most appropriate for a given use, and may even contains obvious mistakes. Since our goal is to expose the FIPS 10-4 data, we do not try to “improve” those names or correct mistakes. We treat the names given by FIPS 10-4 as almost arbitrary labels, with the expectation that they can be mapped, by means external to FIPS 10-4, to any set of names one may prefer. One such external mean is the list of names from the US Board on Geographic Names.


The primary source of the data is:

Data files:

In addition, the script produces fips-tabular.txt that makes it a bit easier to see the evolution of the codes over time.

All the files are in UTF-8, one record per line, fields delimited by _ (underscore):

  1. FIPS code. For countries, it is of the form xx00.
  2. first fips version. The first version in which the code is present, with the same designation and names.
  3. last fips version. The last version in which the code is present, with the same designation and names.
  4. designation, English. "country" for countries, "county", "state", ... for the others
  5. designation, other language.
  6. designation, other language.
  7. designation, other language.
  8. name
  9. convential name
  10. former name




Bahrain: In 2002, five governorates were established (by this decree). Change notice 12 adds five codes, but removes only one of the old ones. Given the pattern followed in similar situations, it seems that all codes before BA15 should have been retired, not just BA03.


Bangladesh: BG87 (Rangpur) is the result of a split of the Rājshāhi division, BG83; a FIPS code should have been assigned to the resulting Rājshāhi division.


Buthan: BT23 (Gasa) is the result of a split of the Punakha (BT15) district; a FIPS code should have been assigned to the resulting Punakha district. BT24 (Trashi Yangtse) is the result of a split of the Trashigang (BT19) district; a FIPS code should have been assigned to the resulting Trashigang district.



Kazakhstan: Version 400 has a single code KZ for the country, and version 401 introduces codes for the 14 oblasts and 3 cities as they exist in 2000. Using the history described at, we can recreate the lineage from the 19 oblasts and 1 city as they existed at the time Kazakhstan became independent. We have assigned virtual FIPS 10 codes to the entities, and use the statoid names:


Liberia: LI07 (Monrovia) does not appear as a division in any source. Secondary sources indicate four counties which are not present in the primary sources:

Bomi LI15
Grand Kru LI16
Margibi LI17
River Cess LI18

Malaysia: MY17 (Putrajaya) is the result of a split of the Selangor state, MY12; a FIPS code should have been assigned to the resulting Selangor state. MY15 (Labuan) is the result of a split of the Sabah state; there is a code for the resulting Sabah state (MY16) but no code for the resulting Selangor state.

Mongolia: MG24 (Govisumber) is the result of a split of the Dornogovi province, MG07; a FIPS code should have been assigned to the resulting Dornogovi province.

New Zealand: versions before 410 correspond to the organization before 1989, in 22 local government regions. In 1989, New Zealand reorganized in 14 regional concils. A further adjustment occurred in 1992, and FIPS version 410 captures the result of that further adjustment, except that it does not include a code for the newly formed Tasman region. Here is a picture starting from the 1989 situtation, with virtual codes:

North Korea: FIPS 10-4 still includes KN14 Namp'o-si. According to Wikipedia, was a provincial-level Directly Governed City (Chikhalsi) from 1980 to 2004, when it was designated a "Special City" (T'ŭkgŭpsi) and made a part of South P'yŏngan (KN15). On the other hand, it is lacking codes for the Kumgangsan Tourist Region (Kŭmgangsan Kwangwang Chigu) and the Sinuiju Special Administrative Region (Sinŭiju T'ŭkpyŏl Haengjŏnggu).

Spain: FIPS 10-4 does list the 17 autonomous communities, but does not list the 2 autonomous cities, Ceuta and Melilla.

Sri Lanka: FIPS 10-4 (all versions listed here) lists the 25 districts. There is also a subdivision in 9 provinces, which is not accounted by any of the primary FIPS sources, but is returned as the result of a ADM1 query on the NGA name server (, “lookup tables”, “ADM 1 codes”) and is described in many secondary sources. Note that there is a single code for the two provinces Eastern and Northern:

Central CE29
North Central CE30
Eastern CE31, North Eastern
North Western CE32
Sabaragamuwa CE33
Southern CE34
Uva CE35
Western CE36

United States: FIPS 10-4 does not have a code for the Guantanamo Bay base: we will use US_A.

Details of changes

The change notices do not detail the changes. For example, change notice 10 only describes that AF20 and AF22 have been replaced by AF39 through AF42. However, looking at the history of changes at, we can see that this corresponds to two independent changes, AF20 replaced by AF39 and AF41 on the one hand, and the AF22 replaced by AF40 and AF42 on the other. The table below attempts to capture the changes to the smallest level of granularity. Many thanks to Gwillim Law describing the changes with enough details. This table does not yet capture the changes from version 399 to version 400.

Country Version Old New Notes
AC 413   AC09

apparently not covered by previous versions

AF 300 AF04 AF12 AF25 AF30 AF31 AF32 AF33  
409 AF15 AF16 AF34 AF35 AF38  
409 AF21 AF36 AF37  
410 AF20 AF39 AF41  
410 AF22 AF40 AF42  
AL 402   AL29-39

apparently, 10 of the original counties split

409 AL* (01-39) AL* (40-51) 36 districts reorganized in 12 counties
AN 406 AN01 AN06 AN07  
BA 412 BA03 BA15 BA16 BA17 BA18 BA19 According to Wikipedia, the first level administrative boundaries of Bahrain have changed in July 3, 2002, from 12 municipalities to 5 governorates. Change notice 12 seems to address this, and one could have expected that the 12 municipalities (BA01-03, BA05-06, BA07-BA14) would have been retired, but they have been retained. Also, the Wikipedia names for the governorates are English names, while FIPS uses Arabic names: Central = BA19, Northern = BA18, Muharraq = BA15, Southern = BA17, Capital = BA16.
BC 410 BC02 BC07 BC11  
BE 407 BE02 BE10 BE11 BE12  
BG 401 BG* (01-79) BG* (80-83)  
410 BG80 BG84 BG85 BG86  
BK 408   BK01 BK02  
BM 401 BM07 BM15  
401 BM09 BM16  
401 BM14 BM17  
BN 409 BN03 BN10 BN07  
409 BN06 BN18 BN11  
409 BN04 BN15 BN12  
409 BN01 BN08 BN13  
409 BN02 BN09 BN14  
409 BN05 BN16 BN17  
BP 410 BP04 BP11 BP12  
  410 BP05 BP10 BP13  
BU 405 BU* (29-37) BU* (38-65)  
BY 407 BY05 BY022 BY23  
CA 403 CA06 CA13 CA14  
CB 401 CB01 CB06 CB11 CB15 CB16 CB20 CB21 CB22 CB23 CB24 CB25 CB26 CB27 CB28  
406 CB20 CB29 CB30  
CD 413 CD04 CD15 CD18 CD21  
413 CD11 CD17 CD19  
413 CD10 CD16 CD20  
CF 410 CF03 CF13 CF14  
CG 402 CG07 CG10 CG11 CG12  
CH 401 CH27 CH32 CH33  
CI 413 CI09 CI14 CI17  
413 CI13 CI15 CI16  
CV 409 CV12 CV19 CV20  
409 CV03 CV13 CV18  
409 CV06 CV14 CV17  
409 CV09 CV15 CV16  
DA 412 DA* (01-16) DA* (17-21)  
DJ 410 DJ02 DJ03 DJ06 DJ07 DJ08  
DR 409 DR17 DR35 DR36  
409 DR05 DR34 DR37  
EC 406 EC21 EC23 EC24  
EN 401 EN06 EN09 EN15 merged into EN03  
401 EN10 merged into EN11  
401 EN16 merged into EN01  
401 EN17 merged into EN18  
ET 407 ET* (01-43) ET* (44-54)  
EZ 406 EZ* (01-77 minus 52) ET* (78-90 plus 52)  
FI 402 FI02 FI03 FI04 FI05 FI07 FI09 FI10 FI11 FI12 FI13 FI14 FI15  
GV 407 GV08 GV30 GV31  
407 GV20 GV33 GV34 GV35  
407 GV24 GV36 GV38  
407 GV14 GV26 GV32 GV37 GV39  
HA 411 HA08 HA14 HA15  
HU 412   HU41 HU42  
413   HU43  
IC 410 IC* (01-37) IC* (38-45)  
ID 403 ID27 TT creation of TIMOR LESTE
406 ID16 ID28 ID29  
407 ID06 ID30 ID33  
407 ID25 ID32 ID35  
407 ID23 ID32 ID34  
410 ID19 ID37 ID40  
410 ID09 ID36 ID39  
410 ID20 ID38 ID41  
IN 407 IN04 IN34 IN38  
407 IN27 IN36 IN39  
407 IN15 IN35 IN37  
IR 401 IR02 IR32 IR33  
405 IR17 IR35 IR37  
405 IR27 IR36 IR38  
405 IR24 IR34 IR39  
410 IR31 IR40

should probably be:
IR30 IR31 to IRxx IR40
IRxx to IR41 IR42 IR43

410 IR30 IR41 IR42 IR43
IV 401 IV01 IV59 IV60  
406 IV04 IV43 IV58 IV61 - IV73  
410 IV * (01-73) IV * (74-92)  
JO 402 JO07 JO10 JO11 JO13 JO14 JO15 JO16 JO17 JO18 JO19 JO20 JO21 JO22 JO23  
KG 407 KG05 KG08 KG09  
KN 408 KN16 KN17 KN18  
KS 407 KS08 KS20 KS21  
KU 402 KU01 KU04 KU05  
402 KU02 KU02 KU06  
412 KU03 KU06 KU07 KU08 KU09  
LA 401 LA04 LA05 LA06 LA08 LA09 LA10 LA11 LA15 LA16 LA17 LA18 LA19 LA20 LA22 LA23 LA24 LA25 LA26 LA27  
LE 407 LE02 LE06 LE07  
412 LE03 LE09 LE10  
412 LE01 LE08 LE11  
LE 401 LI03 LI04 LI06 LI08 LI11 LI12 LI13 LI14  
410 LI02 LI19 LI22  
410 LI05 LI20 LI21  
MD 404 MD* (01-45 minus 13) MD* (46-56 plus 13)  
410 MD* (13, 46-56 minus 51) MD* (57-92 plus 51)  
MG 408 MG05 MG22 MG23 MG24 MG25  
MI 409 MI10 MI26 MI28  
409 MI14 MI27 MI29 MI30  
ML 409 ML02 ML09 ML10  
MO 401 MO33 MO42 MO43 MO44  
410 MO* (01-44 minus 33) MO* (45-58 plus 33)  
411   MO59  
MU 413 MU05 MU09 MU10  
MV 401 MV* (01-29 minus 01 and 05) MV* (30-47 plus 01 and 05)  
MY 410   MY17  
MZ 410   MZ11  
NG 401 NG05 NG08 NG09  
NH 402 NH* (05-15 minus 07, 13, 15) NH* (16-18 plus 07, 13, 15)  
NI 404 NI10 NI50 NI52  
404 NI34 NI38 NI45 NI47 NI53  
404 NI17 NI48 NI54  
404 NI06 NI46 NI55  
404 NI19 NI49 NI56  
404 NI33 NI51 NI57  
NL 401 NL08 NL15 NL16  
401 NL12 NL13 NL14    
NU 401 NU16 NU17 NU18  
NZ 410 NZ* (01-E6 minus 10) NZ* (E7-G3 plus 10)  
PA 401 PA03 PA21 PA24 PA22  
401 PA18 PA20 PA23  
PL 402 PL* (01-71) PL* (72-87)  
QA 409 QA05 QA07 QA10 QA11 QA12  
RO 409   RO43  
RS 411 RS35 RS58 RS90  
412 RS18 RS74 RS39 RS91  
413 RS26 RS36 RS92  
RW 411 RW* (01-10) RW* (11-15)  
SA 401 SA03 SA09 SA20  
SE 410 SE04 SE13 SE15 SE16 SE21 SE24 SE25 SE26 SE27 SE28 SE29 SE30  
SG 410 SG04 SG08 SG13 SG14 SG15  
SI 409 SI10 SI18 SI21 SI23 SI33 SI41 SI43 SI48 SI56 SI58 SI59 SI60 SI63 SI65 SI67 SI69 SI70 SI75 SI85 SI90 SI93 SI95 SI96 SIA4 SIA5 SIA9 SIB5 SIC3 SID9 SIE4 SIE8 SIF4 ... SFN8  
SO 411 SO16 SO20 SO21  
411 SO11 SO15 SO18 SO19 SO22  
SU 401 SU* (26-34 minus 29) SU* (35-59 plus 29)  
SW 401 SW11 SW13 SW27  
401 SW01 SW04 SW17 SW28  
TC 401 TC AE  
TH 401 TH21 TH73 TH78 creation of Mukdahan province out of Nakhon Phanom province in 1982
401 TH71 TH75 TH77 creation of Amnat Charoen province out of Ubon Ratchathani province in 1993
401 TH19 TH76 TH79 creation of Nong Bua Lamphu province out of Udon Thani province in 1993
401 TH45 TH74 TH80 creation of Sa Kaeo province our of Prachinburi province in 1993
TO 410 TO* (01-21) TO* (22-26)  
TS 409 TS26 TS38 TS39  
TU 405 TU01 TU18 TU27 TU36 TU67 TU81 TU82 TU83 TU84 TU85 TU86 TU87 TU88 TU89 TU90 TU91 TU92 TU93  
TZ 410 TZ01 TZ26 TZ27  
UG 401 UG* (05-25) UG* (26-64)  
  407 UG54 UG65 UG72  
  407 UG32 UG66 UG68  
  407 UG64 UG67 UG76  
  407 UG63 UG69 UG75  
  407 UG48 UG70 UG73  
  407 UG49 UG71 UG74  
  409 UG35 UG79 UG81 UG85  
  409 UG57 UG90 UG83  
  409 UG68 UG78 UG86  
  409 UG44 UG84 UG92  
  409 UG51 UG87 UG94  
  409 UG55 UG89 UG96  
  409 UG75 UG95 UG80  
  409 UG62 UG93 UG82  
  409 UG53 UG88 UG91  
  409 UG27 UG77 UG97  
UK 407 UK* (01-97) UK* (A1-Z4)  
UV 409 UV16 UV17 18 UV22 UV23 UV24 UV25 UV26 UV27 UV29 UV30 UV31 UV32 UV35 UV37 UV38 UV39 UV41 UV43 UV45 UV46 UV47 UV48 UV49 UV50 UV51 UV52 UV53 UV54 UV55 UV56 UV57 UV58 UV59 UV60 UV61 UV62 UV63 UV64 UV65 UV66 UV67 UV68 UV69 UV70 UV71 UV72 UV73 UV74 UV75 UV76 UV77 UV78  
UZ 407 UZ04 UZ11 UZ15 UZ16  
VE 406 VE10 VE25 VE26  
YM 409 YM06 YM07 YM09 YM12 YM13 YM17 YM18 YM19 YM20 YM21 YM22 YM23 YM24 YM25  
ZI 409   ZI09 ZI10  


Terms of use

CC0 To the extent possible under law, Eric Muller has waived all copyright and related or neighboring rights to this page, the data files and scripts it presents. This work is published from the United States.

Note that this does not affect the rights other persons may have in those files. I am not qualified to determine whether such rights exist.

Contact - Thanks