Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.

U.S. Census Voting Age Population

By Earl F Glynn | Franklin Center

US Census voting age population estimates over time provide a good way to measure whether a county’s voter registration list has been maintained.

This article shows how to extract census data from 2000 and 2010, and the yearly estimates made between the census years, to plot charts by county of total population and voting age population.

Counties with voter registration number exceeding the US Census voting age population estimate may not be maintaining their voter registration lists.  Counties with significant bloat in their voter lists may be increasing the opportunities for voter fraud.


One measure of voter list bloat is to compare the number of registered voters in a county to the US census estimate for the voting age population — those 18 years old or over.

Over time if a county clerk or other election official does not maintain a voter list, the number of registered voters can grow and sometimes can exceed the voting age population given by the US Census.  This is a clear indication a list has not been properly maintained.

In rare cases the number of registered voters might exceed the total US Census population estimate for all ages in a county.

This article describes how to extract US Census data by county (or parish in Louisiana or borough in Alaska) for any US state and to display total population and voting age population trend information on a graph over the years 2000 to 2011.

This US Census population trend information will be the basis for comparisons against voter registration counts in a number of states in future articles.

Results:  County Charts

List of PDFs of Total/Voting Age population charts by state

(click on graphic to see list of PDFs)

One file per state in alphabetical order by county.  Last page of PDF is state total.


The online US Census methodology statements for estimates over the years 2000-2009 and 2010-2011 do not describe some limitations on the use of the data.

Estimates are not as accurate for smaller counties on a relative basis.  The relative error, such as a percentage, may be larger for smaller areas particularly those with a population of 1000 or less.

The US Census has a challenge in refining its estimation methodology since there is no good source of data for comparison between the decennial census years.

The US Census compared past yearly estimates with the latest 2010 census numbers but has not yet published its report about this.  The relationship between county size and accuracy was presented at a professional association meeting last year:

“Evaluating the Census Bureau’s Administrative Records Based Population Estimates: Comparisons to Census Counts 2010″ by Tiffany Thompson, Benjamin Bolender, Charles Coleman, Caleb Miller, Jason Devine, and Alexa Jones-Puthoff, U.S. Census Bureau, presented at the Southern Demographic Association 2011 Annual Meeting, October 20, 2011.

The Census considers counties with a size of less than 1000 to be very small, and consequently very difficult to estimate accurately.

Selected Counties

Selected counties from several states below show how the 2010 US Census numbers changed the population estimates from recent years:

Flat Population Trend:  Westchester County, New York

(click on image to enlarge)

Surprising Population Increase after 2010 US Census:  Baily County, Texas

(click on image to enlarge)

Surprising Population Decrease after 2010 US Census:  Wayne County, Michigan

(click on image to enlarge)

Impact of Hurricane Katrina in 2005 on Population of St. Bernard Parish, Louisiana

(click on image to enlarge)

Also plotted on the charts above are lines for 80%, 90% and 95% registration for the given voting age population.  You can grab the population charts for your state and counties and compare current numbers of voter registration from other sources to estimate the percent registered from these lines.

Details of Technical Approach

Online U.S. Census Data for Voting Age Population

This section describes where to find US Census estimates online for county total population and voting age population.

Voting age population is part of the “Selected Age Groups and Sex” estimates published the the U.S. Census.

The field POPESTIMATE is the the estimate for the total population in a county.  The field AGE18PLUS_TOT is the total population age 18 years and over — the voting age population.

Here are links to the online US Census files:

The file layout files explain the YEAR variable is 1-12 for the first file (based on 2000 Census) and 1-4 for the second file (based on 2010 Census).

Data for YEAR =1 in each file is for the actual dicennial census for April 1 of the census year.

YEAR = 2 in each file gives a sometimes adjusted population estimate base.  Often the census values are the same for YEAR=1 and YEAR=2.

For YEAR = 3 the values give the census estimates for July 1 of the census year.

For values of YEAR 4 or larger, the estimates are for July 1 of the specified year:  census base + YEAR – 3.

For example, in the Census 2000 files, YEAR = 9 is for the year 2000 + 9 – 3 = 2006 and specifically July 1, 2006.

The files in this section use FIPS codes in their names and the YEAR index, 1..12 or 1..4.

The output CSV files in the next section show the state name instead of the FIPS code in the filename.  The CSV file combines data from the two census files into a single file for easier comparison.  The CSV uses YEAR = 1..16, but also adds a Date column to be explicit about the date of the census population or estimated population figures.

Updated US Census county population estimates for July 1, 2012 are expected in April 2013.

R Programs and Data Files

I developed an R script, Census-Voting-Age-Population.R, to use anytime I needed US Census estimates for total population and voting age population for the counties in a state.

Census input files:

  • State-FIPS.csv:  The last two characters of the input filenames below are the 2-digit FIPS state codes, which can be found in this file.
  • Age and Sex Census Estimate Files by State.  Internally organized by county and year.  Includes total population and voting age population estimates by county but does not include a state total.

The census files here are the same as the ones online described above.


Before using the script, download all the 2009 and 2011 census estimate files from above and put into separate directories defined by variables CENSUS2000.COUNTY.DIR  and CENSUS2010.COUNTY.DIR.

This R file is to be “sourced” by another R script and provides two functions:

  • plot.county.population.charts

See an example of using functions and data in the All-States-Voting-Age-Population.R script next.

This script will be referenced in future articles about county-by-county analysis to compare voter registration data to the US Census data in a specific state.

The plot.county.population.charts function includes a StateCallback parameter that will call a provided function to plot a state’s voter registration data.

Updated [17 Aug 2012]

  • Changed labels on Total Population and Voting Age Population lines to match “area” given in census label.  This is usually “County” but can be “Borough” or Census “Area” in Alaska, “Parish” in Louisiana, “City” in several states include Missouri and Virginia.
  • Fixed placement of these labels when suppressed when the first population data point was missing.  Now place label on first non-NA population point.
  • Added number of missing points in census time series at the upper right in grey.  For example, Skagway Municipality, Alaska is missing 2 of the census data points usually present in the time series.


This script was written to make sure the Census-Voting-Age-Population.R script worked correctly for all states.

This script “sources” the Census-Voting-Age-Population.R script above and sets a working directory.

After that the script reads a file of all the state FIPS codes, it calls functions and plot.county.population.charts for each state (and the District of Columbia), and writes CSV and PDF files for each state.

Excerpt form All-States-Voting-Age-Population.R script:

for (i in 1:nrow(state))
  d   cat(i, d$state, "\n")

  write.csv(d$[,c("State", "County", "Year", "Date", "Population", "VotingAge")],
            paste("CSV/", gsub(" ","-",d$state),
            "-Census-Voting-Age-Population.csv", sep=""), row.names=FALSE)

  pdf(paste("PDF/", gsub(" ","-",d$state),  # Change blanks to dashes in state names
            "-Census-Voting-Age-Population.pdf", sep=""), width=8, height=8)
  plot.county.population.charts(d$state, d$counties, d$, d$timeline)

The call to in line 5 combines US Census data from the census in 2000 and 2010  and estimates in other years and returns a list with four objects:, timeline, state, counties.

Line 8 shows adding a new Date column to the data.frame so the date of the data is known instead of only the 1 to 16 Year index provided in the census data file.

Lines 10-12 shows writing a CSV file with the census data for the state but first assigns new column names to the data.

Since no StateCallback parameter was passed to the plot.county.population.charts function (the default is NULL) in line 16, no actual voter registration data was plotted for comparison to the US Census data.  [Future articles will show how to use this feature.]

Output files (State name used in filename instead of FIPS code)

  • PDFs of Total/Voting Age population charts.  One file per state in alphabetical order by county.  Last page is state total.  Charts show lines for 80%, 90% and 95% registration levels.  See example charts above.  The link is to a directory of 51 files.
  • CSVs of Total/Voting Age population data.  One file per state, organized by county and date of US Census estimate.  Last block of data shows state totals by year.  This file is similar to the raw census file but adds a Date column to supplement the Year index in the file.  The data in the CSV files correspond to the charts shown in the PDFs.  The link is to a directory of 51 files.


In 2010 I compared US Census voting age population to voter registration numbers county-by-county in Kansas and Missouri.  At that time I identified six Kansas counties with more voters than voting age population, and 15 counties in Missouri.

One limitation of that analysis was one can get current voter registration totals for a county or state, but the US Census population estimates lag a year behind.  For example, the July 1, 2012 population estimates for US counties will become available in April 2013.

An easy assumption is to use the most recent US Census population estimate in any comparison to current voter registration data.  In 2012 this is a safer assumption than in 2010 since we are only two years out from the most recent census.  A review of the trend lines for the 2010 analysis shows the assumption may not have always been valid.

Many counties have little or no year-to-year population change, or show slow increases or decreases in population.  In some cases shown above, census estimates over a decade became inaccurate and a surprising population increase or decrease was seen in the census numbers between 2009 and 2010.

The trend lines of county total population and county voting age population can be useful to decide how valid the assumption is to use a year-old population estimate in the comparison to current registered voters.


The charts showing census data will be extended in future articles to show voter registration data by county in selected states on the same chart.

Previous articles comparing US Census voting age to voter registration by county

Technical and news stories related to this article


Contact Info: Twitter: @WatchdogLabs, Facebook:

Leave a comment  




Submit comment