For 1990 data, concatenating codes to get a final 11-digit FIPS, where do I add zeros to the tract code?



I’m working with 1990 NHGIS data. From what I’ve gathered, you need to turn the state code, county code, and cenus tract code into strings, then concatenate them. However, the census codes, which should be six digits, can for instance take the value of “301”. I need to add zeros, but should they be to the left or right?

Furthermore, what FIPS codes will these be? 2000 or 1990?

All the best,



In order to create a standard 11-digit FIPS code for the 1990 data, you will need to add the zeroes to the right of the value. For example, if you have a tract value of “0301”, you would add trailing zeroes to create a string of “030100”.

Are you using Microsoft Excel to manipulate the NHGIS data? The NHGIS data will put quotes around all fields that are supposed to be strings (e.g., state, county, tract). But, Microsoft Excel strips those quotes off the strings when you open the CSV. It then converts the strings to integers, leaving you with values such as “301”.

If you are using Excel, I recommend that you open Excel first and then use the data import tool “From Text” to load the data into the program. This import tool allows you to specify the type of the fields in the file. I recommend setting the TRACTA, COUNTYA, and STATEA columns to Text.

The FIPS codes on the 1990 data are FIPS codes for 1990.


I’d add that NHGIS data also includes a concatenated ID in the GISJOIN field. Specifically for tracts, the GISJOIN identifier concatenates “G”, the NHGIS state code, the NHGIS county code, and the tract code. The “G” prefix ensures that software will read the field as a text field and not convert the codes to numbers, preserving leading zeros.