| svi_edition | counties | |
|---|---|---|
| 0 | 2014 | 3142 |
| 1 | 2016 | 3142 |
| 2 | 2018 | 3142 |
| 3 | 2020 | 3143 |
| 4 | 2022 | 3144 |
Boundary vintages
County and tract boundaries change: counties split, merge, or get replaced entirely. A FIPS code without a vintage is an assembly name without a patch level — the same code can mean a different shape depending on when it was issued.
The worked example: SVI’s own county count
CDC/ATSDR’s Social Vulnerability Index republishes the whole country every edition, so its county count across editions is a direct, queryable record of every boundary change that mattered at the county level between 2014 and 2022:
3,142 / 3,142 / 3,142 / 3,143 / 3,144 — flat for three editions, then +1, then +1 again. Both jumps are real redistrictings, not data errors, and both are queryable directly:
| svi_edition | rows | |
|---|---|---|
| 0 | 2014 | 1 |
| 1 | 2016 | 1 |
| 2 | 2018 | 1 |
| 3 | 2020 | 2 |
| 4 | 2022 | 2 |
Alaska’s Valdez-Cordova Census Area (02261) splits into Chugach (02063) and Copper River (02066) starting with the 2020 edition — one row becomes two, the +1 between the 2018 and 2020 counts.
| svi_edition | rows | |
|---|---|---|
| 0 | 2014 | 8 |
| 1 | 2016 | 8 |
| 2 | 2018 | 8 |
| 3 | 2020 | 8 |
| 4 | 2022 | 9 |
Connecticut’s eight legacy counties persist through the 2020 edition; the nine 2022-vintage planning regions arrive with the 2022 edition — the +1 between the 2020 and 2022 counts.
The third real change in this window — South Dakota’s Shannon County becoming Oglala Lakota County in 2015 — is a rename-and-recode, not a boundary change, so it doesn’t move the county count at all; it shows up instead as fips changing from 46113 to 46102 starting with the 2016 edition, with the pre-2016 code still resolving through geography.alias:
| old_geo_id | new_geo_id | effective_year | change_type | old_name | new_name | |
|---|---|---|---|---|---|---|
| 0 | county:46113 | county:46102 | 2015 | recode_and_rename | Shannon County | Oglala Lakota County |
Why geography.unit carries a vintage at all
Every fact in Cancer Basemap joins through geography.unit by geo_id, but a geo_id alone doesn’t say which boundary edition it belongs to. vintage makes that explicit, and it’s why every recipe on this site names a vintage on its geography join (u.vintage = 2026) instead of trusting a measure’s own geo_vintage column — see Time axes and cancer-basemap#21 for the open question that makes this necessary today. geography.alias resolves an old code that was renamed or recoded (not reshaped) to its current one, so a join on a retired code still finds its record instead of silently dropping it.
Recipes › A county’s boundary history runs Connecticut’s own boundary history live, in your browser.