Virginia: Comparison of Registered Voter Counts to Census Voting Age Population

[This article was first published on Watchdog Labs » R-Blogger, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

By Earl F Glynn | Franklin Center

A comparison of US Census voting age population data in Virginia to voter registration data shows only one locality, Surry County, with about 100% of the voting age population registered to vote.

Six other localities have about 95% of their voting age population registered:  Craig County, Isle of Wight County, James City County, Mathews County, Poquoson city, Rappahannock County.

Four Virginia localities have relatively high inactive voter rates:  Norfolk city, Montgomery County, Alexandria city, Arlington County.

Charts for the years 2000 to 2012 show how localities are maintaining their voter lists.

There is higher voter fraud potential in areas of unmanaged voter lists and areas of high voter list bloat measured by inactive voters.


Yearly US Census population estimates for Virginia localities were extracted for the years 2000 to 2011.  Virginia localities include 95 counties and 39 independent cities.

Voter registration totals were extracted from the Virginia State Board of Elections’ web site for years 2004-2006 and 2008-2012 for all 134 localities.

Active and inactive voter registration counts by locality were obtained from an April 2012 file of Virginia voter registration data.

The census and voter registration data were plotted for easy visual comparison of any particular year. Trends over time can also be studied.

Results: County Charts

View the PDF with a chart for each Virginia City/County comparing US Census Voting Age Population to Registered Voter Counts [135 pages: 39 cities and 95 counties, state total]

(click on graphic to view PDF)

General comments about all charts:

  • The black line represents the total locality population from the Census 2000 and the Census 2010 enumeration and census estimates for other years.
  • The blue line represents the census voting age population counts or estimates, those 18 years or older.
  • The voter registration points in red represent total registration values (Active + Inactive) from the Virginia State Board of Elections’ online reports.
  • The points in green represent only the Active voters. The difference between Active and Total registration, the Inactive voters, is a measure of voter bloat.
  • Total and active voter counts from a file of Virginia voters are shown by black-filled circles.  The names of the voters represented by these points are known.

NOTE: US Census estimates are not as accurate for smaller areas on a relative basis.   See Limitations in US Census Voting Age Population.

Selected Virginia Localities

Surry County:  Only Virginia locality with about 100% of voting age population registered to vote

(click on image to enlarge)

No need for voter registration drives in Surry County since everyone is already registered to vote?

What voter list maintenance has Surry County done since 2008?  Total registration is slowly climbing while the 2010 census numbers and estimates suggest a flat or slightly declining voting age population.

Sunshine Review gives Surry County an F in government transparency.

Six Virginia localities have about 95% of voting age population registered to vote:

Harrisonburg city:  Virginia locality with lowest registration of voting age population

(click on image to enlarge)

What is the reason for the low voter registration in Harrisonburg city?

Does the Mennonite population around Eastern Mennonite University in Harrisonburg explain part of the low numbers since some Mennonites do not register to vote?

Accomack County:  Big drop in 2010 census population after steady census estimates since 2000 census

(click on image to enlarge)

Why did the US Census population estimates for Accomack County not catch the decline in population between 2000 and 2009 until the 2010 census?

The voter registration numbers suggested no decline during this period.

Fairfax County:  Virginia’s most populous county

(click on image to enlarge)

Fairfax County in Northern Virginia suburbs of Washington, DC shows a voter registration pattern very similar to the state’s totals.

Details of Technical Approach

Let’s first review the needed raw data files and then discuss the processing to create the charts above.

Raw Data: Virginia Voter Registration Statistics

The Virginia State Board of Elections provides a page about registration statistics for a number years.

2008-2012, Excel files.  I downloaded the  Excel files for “Registrant Counts by Locality” from Aug. 2008 to July 2012 and prefixed the filenames with the year and month of the report.

Each of these Excel files had 134 (or 135) worksheets of information, one for each locality, and one for the locality total in most cases.

An initial attempt to extract data from these worksheets using the RODBC package was not successful.  Using Google I re-discovered my own old comments about RODBC’s limitations.  Because these Excel worksheets were not simply matrices of numbers, and did not have consistent content by column, RODBC extracted character data but showed all the numbers as NAs.

Instead of RODBC I used the read.xls function in the gdata package after installing ActivePerl.

The Combine-VA-XLS.R script read 14 different Excel files with Virginia voter registration data and created the summary file Virginia-Voter-Registration-2008-2012.csv.

To extract desired data this script processed nearly 1900 worksheets in the 14 Excel files using the function parse.worksheet.  This process was painfully slow, taking over 2 hours, but only needed to be done once.

2007-2008.  The “Registrant_Counts_by_Locality” reports similar to those from 2008-2012 could not be found online for 2007-2008 in Excel format.  In some cases versions in a PDF format were available.

The level of effort to extract data from PDFs for these years was too great, so voter registration data for this period is not shown in the charts.

2004-2006, HTML files.  The voter registration data for this period can be viewed online in HTML files in a format that is relatively easy to “scrape” from the files.

Simple coping and pasting the HTML tables to Excel files did not work acceptably since that transfer left too many problems to fix manually.

The Scrape-VA_Registration.R script uses the XML package to read and parse eight online HTML pages.

The script calls the function to read the HTML page at the specified URL with the readHTMLTable function (from XML package) and then extracts the desired data. uses the fix.table function to extract data from four different HTML tables.  The results were written to file Virginia-Voter-Registration-2004-2006.csv.

20032004.  Data for these years followed yet-another format.  Extraction was not attempted because of the level of effort needed.

The Combine-VA-All-Years.R script combined the two sources of voter registration data and standardized the spelling of two counties (Isle of Wight County and King and Queen County) to be consistent with the spelling in the US Census files. The combined file of registration data is Virginia-Voter-Registration-2004-2012.csv.

[Note to Virginia Board of Elections: Standardization of file format and file naming conventions would make analysis of the data easier.]

Raw Data: Virginia Voter Registration File A Virgina-Voters.R script read a text file of 5.2 million Virginia voters from earlier this year and created a cross-tabulation of “Active” and “Inactive” voters using the “locname” and “inactive” fields.

Totals were added using Excel to create the file Virginia-Active-Inactive-2012-04-16.csv used below.

Raw Data: US Census Data for Virginia The links below are to the raw online Virginia census data at the US Census site. Annual Estimates of the Resident Population by Selected Age Groups and Sex for Virginia localities (cities and counties):

The technical article US Census Voting Age Population gives details of extracting US Census data for all states, including Virginia, and plotting charts of that data.

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

R Program After pre-processing the raw data described above, we can create charts showing US Census voting age population in Virginia and the number of registered voters by locality.

Input files

Census files:

Voter registration summary files:

Processing Script: Virginia-Voting-Age-Population-and-Registered-Voters.R

After reading voter registration data into data.frames (registered, voter.file) the script called function to read Virginia census data.

The census data was passed to the plot.county.population.charts function for plotting along with a “callback” function, plot.virginia.registration.

The plot.county.population.charts function plotted the census data and then used the plot.virginia.registration “callback” to plot the registration data on the same chart.

Output files

Analysis / Discussion

Census Continuity

Normally the US Census estimates from 2009 are fairly consistent with the actual US Census counts from 2010, but sometimes there are unexpected increases or decreases in population as a result of the census.

A review of the 2009 population estimates to 2010 census figures shows these large increases and decreases:

  • Increases:  Manassas Park city (18.5%), Williamsburg city (10.5%), Harrisonburg city (8.4%).
  • Decreases:  Accomack County (-13.8%), Fairfax city (-8.5%), Northampton County (-8.2%).

A boxplot of the percentage change suggests increases 8.4% or greater or decreases of 6.7% or more are statistical outliers.

The reason for these discontinuities in the census data are not known.

Voter Bloat (inactive voters)

In the April 2012 voter file there were 487,492 named Virginia voters marked as “inactive.”  This is 9.4% of the 5,181,529 Virginia voters.

A summary table from the U.S. Election Assistance Commission says an inactive voter in Virginia is one where there was “no response to confirmation notice” from the election authority.

Virginia localities with low inactive voter rates:  Highland County (0.8%), Dickenson County (1.7%), Patrick County (2.1%), Bland County (2.2%).

Localities with high inactive voter rates:  Norfolk city (26.6%), Montgomery County (23.6%), Alexandria city (21.4%), Arlington County (19.9%), Manassas Park city (16.6%), Winchester city (16.0%).

The voter bloat can be seen in the charts as the difference between the total counts and the active voter counts.

A low percentage of inactive voters is not necessarily good since the federally-mandated process of removing a voter often involves a voter marked as “inactive” for several years.

Maintenance of Voter Lists (comparison to census)

U.S. federal law (Help America Vote Act of 2002) limits how state and local officials may remove names from voting rolls. But even with hands tied by the federal government, there is wide diversity in how county clerks maintain voting lists.

The US Census voting age population estimates give an upper bound on what the actual voter registration should be in a state or county. When lists are not maintained by the county clerks and election officials the “bloat” can grow over time resulting in more voters registered than the census says are of voting age.

Observations from the locality charts yield these estimates of registration as a percent of voting age population:

High Registration: Surry County (100%), Craig County (95%), Isle of Wight County (95%), James City County (95%), Mathews County (95%), Poquoson city (95%), Rappahannock County (95%).

Low Registration: Harrisonburg city (50%), Lexington city (55%), Radford city (55%), Norfolk city (60%), Manassas Park city (65%).


  • Why are the low registration localities always cities and not counties?  Coincidence or something else?
  • In Norfolk why has the total voter registration since 2008 been flat, but the number of active voters has steadily declined?
  • Why has the number of inactive voters in Prince Edward County increased so much over the past year compared to past years?
  • Why did the US Census predict a bigger increase in the population of Alexandria and Fairfax City in 2008 and 2009 than what likely occurred based on the 2010 Census?
  • Why did the US Census population estimates for Accomack County not catch the decline in population between 2000 and 2009 until the 2010 census?
  • Why is the inactive voter rate relatively high in Alexandria (21.4%) and Arlington (19.9%) and significantly lower in nearby Fairfax City (11.3%), Fairfax County (10.8%) and Falls Church (7.2%)?

About 82% of Virginia’s voting age population is registered to vote.


One Virginia locality, Surry County, has approximately 100% of voting age population registered to vote, while six localities have about 95% of voting age population registered:  Craig County, Isle of Wight County, James City County, Mathews County, Poquoson city, Rappahannock County.

Four Virginia localities have relatively high inactive voter rates:  Norfolk city (26.6%), Montgomery County (23.6%), Alexandria city (21.4%), Arlington County (19.9%).

Virginia’s voter ID law, which lacks a government-issued photo ID requirement and may be in effect by election day, is a good start for a check and balance on the bloat in the state’s voter lists.


  • 2010 Statutory Overview Report, US Election Assistance Commission, May 2011. [Gives definitions of active and inactive voters by state. See PDF pages 16-18]

To leave a comment for the author, please follow the link and comment on their blog: Watchdog Labs » R-Blogger. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)