Skip to content

When a County Renames Itself, Its Number Moves

FIPS codes look like serial numbers, but they are positions in an alphabetized list — and three renames since 1997 are enough to cut a county's history into two unusable halves.

Politigoat Data DeskAugust 19, 2026

A FIPS county code looks like a serial number. Five digits, zero-padded, stamped on every row of every county-level election file in the country. It has the shape of a thing assigned once, at manufacture, and never touched again. It is not that. It is a position in an alphabetized list, and the list was frozen decades ago in a form that assumed counties would keep their names.

When a county changes its name, its position in the alphabet changes, and so does its number. Dade County, Florida became Miami-Dade County effective 1997-07-22, and its code moved from 12025 to 12086. Nothing about the place moved. Same boundaries, same precincts, same voters, same ballots. The code changed because "Miami-Dade" falls between Martin (12085) and Monroe (12087), and the codes are alphabetical.

That is a harmless-sounding fact with an ugly downstream consequence. Join a quarter century of election returns on FIPS and you do not get an error. You get two counties: one that existed until mid-1997 and then vanished, and one that appeared out of nowhere the same summer. Both are truncated. Neither is flagged. The break is invisible precisely because the join succeeded.

An alphabet, not a serial number

Three renames matter most for anyone assembling a modern county-level series, and all three follow the same mechanic: new name, new alphabetical position, new number.

ChangeEffectiveOld FIPSNew FIPS
Dade County, FL → Miami-Dade County1997-07-221202512086
Shannon County, SD → Oglala Lakota County2015-05-014611346102
Wade Hampton Census Area, AK → Kusilvak Census Area2015-07-010227002158
Same borders, same voters, different digits. Only the name changed.

The South Dakota change came by referendum, which passed 2,161 to 526. The Alaska change retired a name honoring a Confederate general who never visited Alaska. Whatever one thinks of either decision, neither was a decision about data, and neither moved a single voter across a single boundary line. The renumbering is a pure artifact of the filing system.

What the break actually looks like

Take Oglala Lakota County, South Dakota. Under a naive FIPS join, the county's electoral history arrives as two objects. The first is 46113, with results for 2000, 2004, 2008 and 2012, and then nothing. The second is 46102, which begins in 2016 and runs to 2024. Four cycles and three cycles, sitting in the same table, describing the same ground, never touching.

Everything you would want to do with that county now fails quietly. A trend line has no trend. A swing calculation between 2012 and 2016 has no prior value to subtract from. A page that requires a minimum run of cycles drops the county entirely. And a reader looking for one of the most lopsided counties in the country finds two half-histories, or nothing at all.

The fix is to stop treating the code as the identity

The repair is conceptually simple and structurally annoying: a place gets its own internal identity, and the FIPS code becomes an attribute of that identity with an effective date range attached. 46113 and 46102 are two labels the same unit wore in different decades. So are 12025 and 12086. So are 02270 and 02158. Codes become lookup keys, which is what they were always good for. They stop being the primary key, which is what they were never fit for.

Done that way, Oglala Lakota County is one continuous seven-cycle series on Politigoat, 2000 through 2024, with no gap at 2015 and no phantom county born in 2016. Lean below is the county's two-party margin minus the national two-party margin for the same cycle.

CycleCounty two-party marginNational two-party marginLean
2000D+73.7D+0.6D+73.1
2004D+74.3R+2.5D+76.8
2008D+80.0D+7.4D+72.6
2012D+88.0D+4.0D+84.0
2016D+82.5D+2.2D+80.3
2020D+81.0D+4.5D+76.5
2024D+72.7R+1.5D+74.2
Oglala Lakota County, SD. The 2012 through 2016 step is a real electoral movement; the 46113 to 46102 step is not.

That distinction is the entire point of separating identity from code. One of those two changes belongs on a chart. The other belongs in a footnote.

The dangerous case is the one that doesn't break

Renames are loud failures. You lose a county, you notice, you fix it. The genuinely hazardous case is the opposite: the boundary moves and the code stays put.

Petersburg Borough, Alaska changed territory on 2013-01-03 and kept FIPS 02195, with a population transfer of roughly 613 people. Every join on that code succeeds. Every row count reconciles. Every schema check, null check and referential-integrity check passes. And the 2012 row and the 2016 row describe measurably different geography.

Every join succeeds. Every validation passes. And the two endpoints are different places.

There is no automated defense against a stable code over shifting ground, because the only signal a boundary change gives off is a change in the numbers, and change in the numbers is what we are here to measure. These have to be carried as annotations, entered deliberately, and shown to the reader rather than smoothed away.

Why sources still disagree about Miami-Dade

None of this is settled history. Crosswalks in circulation today handle the Florida rename in incompatible ways: some recode the modern 12086 back to the historical 12025 so that pre-1997 files line up, while others keep 025 in place on their own terms. Mix two vendors with opposite conventions in one pipeline and Miami-Dade is counted twice, at full weight, in a state where that is not a rounding error.

Code churn is also not finished. Connecticut retired eight county-equivalents and adopted nine planning regions between the 2020 and 2024 Census vintages, and the national county-equivalent count moved from 3,143 to 3,144. Any system that assumes the identifier list is static will meet the same wall again, on a schedule nobody controls.

So the working rule here is short. A FIPS code is an address, not a name. Places keep their names.

Sources