Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Potential duplicate registrants in VA voter list via Hamming Distance

Using the 2022-11-23 Registered Voter List (RVL) and the 2023-01-26 Voter History List (VHL) purchased from the VA Department of Elections (ELECT) I wrote up an analysis script to check for potentially duplicated registrant records in the RVL and cross reference duplicate pairings with the VHL to identify potential duplicate votes. The details are summarized below.

Please note that I will not publish voter Personally Identifiable Information (PII) on this blog. I have substituted fictitious PII information for all examples given below, and cryptographically hashed all voter information in the downloadable results file. I will make available the detailed information to those that have the authorization to receive and process voter data upon request (contact us).

Summary of Results:

We should mathematically expect approximately 11 exact string collisions in the full RVL dataset when comparing (First Name + Middle Name + Last Name + Suffix + Full DOB), but instead we see 1982 such collisions, which is over an order of magnitude increase from the expected value. While its possible that some of these collisions are false positives, there are quite a number of them that are deserving of further scrutiny.

Method:

For every entry in the latest RVL, I performed a string distance comparison, based on Hamming distance, between every possible pair of strings of (FIRST NAME + MIDDLE NAME + LAST NAME + SUFFIX + FULL DOB).  So for the ~6M different RVL entries, we need to compute ~3.6 x 10^13 different string comparisons. A hamming distance of 0 indicates the strings being compared are identical, a hamming distance of 1 indicates that there is a single character different between the two strings, a hamming distance of 2 indicates 2 characters are different, etc.  This obviously is a very computationally intensive process and it took over two days to complete the processing, once I got the bugs worked out.  (I’ve been quietly working on this one for a while now … )

Note that the Hamming distance only compares each respective position in a string and does not account for adding or removing a character completely from a string. A metric that does include addition and subtraction is the Levenshtein Edit Distance, which is much more computationally expensive (but more rigorous) metric. The Hamming distance is related to the Levenshtein distance in that it is mathematically the upper bound on the Levenshtein distance for arbitrary strings. I haven’t yet finished making an optimized GPU accelerated version of the Levenshtein edit distance metric, but it is in the works and I will redo this analysis with the new metric once that is completed.

I aggregated all of the Hamming distance pairings that were less than or equal to 3 characters different in order to identify potential (key word) duplicated registrants, and additionally for each pairing looked at the voter history information for each registrant in the pair to determine if there was a potential (again … key word) for multiple ballots to be cast by the same person in any given election.  As we allow for more characters to be different, we potentially are including many more likely false positive matches, even if we are catching more true positives.

For example: At a Hamming distance of 4 the strings of “Dave Joseph Smith M 10/01/1981” and “Tony Joseph Smith M 10/01/1981” at the same address would produce a potential match, but so would “Davey Joseph Smith M 10/01/1981” and “David Josiph Smith M 10/02/1981”. The first pair is more likely to be a false positive due to twins, while the second is more likely to be due to typo’s, mistakes, or use of nicknames and might warrant further investigation. A much stronger potential match would be something like “David Josiph Smith M 10/01/1981” and “David Joseph Smith M 10/01/1981”, with a Hamming distance of 1 at the same address. In an attempt to limit false positives, I have clamped the Hamming distance checks to <= 3 in this analysis.

One of the drawbacks of using Hamming distance over a more complete metric such as Levenshtein, is that the Hamming distance would give a very high score, and would therefore filter out of our results, an example pairing such as: “David Joseph Smith M 10/01/1981” and “Dave Joseph Smith M 10/01/1981”. The change from “id” to “e” adds/subtracts a character making the rest of the characters in the remainder of the string shift position and also not match. A Levenshtein metric would correctly return a small distance of 2, whereas the hamming distance returns 27. (As mentioned earlier, I am working on a Levenshtein implementation, but it is not yet complete.)

Note that with the official records obtained from ELECT, and in accordance with the laws of VA, I do not have access to the social security number or drivers license numbers for each registration record, which would help in identifying and discriminating potential duplicate errors vs things like twins, etc. I only have the first name, middle name, last name, suffix, month of birth, day of birth, year of birth, gender, and address information that I can work with.  I can therefore only take things so far before someone else (with investigative authority and ability to access those other fields) would need to step in and confirm and validate these findings.

Results:

The summary totals are as follows, with detailed examples.

Hamming Distance0123
Number of Potential Duplicate Registrant Pairs1982327621864120642
Number of Potential Duplicate Ballots110324831210175872
Number of Potential Duplicate Voters5613261325274918

According to my derivations and simulations that are described in detail at the end of this article, we should only expect to see an average of 11 (+/- 3) potential duplicate pairs (a.k.a. “collisions”) at a Hamming distance of 0. This is over two orders of magnitude different than what we observe in the compiled results table above. Such a discrepancy deserves further investigation and verification.

Examples of Types of Issues Observed:

NOTE THE BELOW INFORMATION HAS HAD THE VOTER PERSONALLY IDENTIFIABLE INFORMATION (“PII”) FICTIONALIZED. WHILE THESE ARE BASED ON REAL DATA TO ILLUSTRATE THE DIFFERENT TYPES OF OBSERVATIONS, THEY DO NOT REPRESENT REAL VOTER INFORMATION.

Example #1: The following set of records has the exact match (Hamming Distance = 0) of full name and full birthdate (including year), but different address and different voter ID numbers AND there was a vote cast from each of those unique voter ID’s in the 2020 General Election.  While it’s remotely possible that two individuals share the exact same name, month, day and year of birth … it is probabilistically unlikely (see section below on mathematical derivation of probabilities if interested), and should warrant further scrutiny.

Voter Record A:

AMY BETH McVOTER 12/05/1970 F 12345 CITIZEN CT

Voter Record B:

AMY BETH McVOTER 12/05/1970 F 5678 McPUBLIC DR

Example #2: This set of records has a single character different (Hamming distance of 1) in their first name, but middle name, last name, birthdate and address are identical AND both records are associated with votes that were cast in the 2020, 2021, and 2022 November General Elections.  While it is possible that this is a pair of 23 year old twins (with same middle names) that live together, it at least bears looking into.

Voter Record A:

TAYLOR DAVID VOTER 02/16/2000 M 6543 OVERLOOK AVE NW

Voter Record B:

DAYLOR DAVID VOTER 02/16/2000 M 6543 OVERLOOK AVE NW

Example #3: This set of records has two characters different (Hamming distance of 2) in their birthdate, but name and address are identical AND the birth years are too close together for a child/parent relationship, AND both records are associated with votes that were cast in the 2020 and 2022 November General Elections. 

Voter Record A:

REGINA DESEREE MACGUFFIN 02/05/1973 F 123 POPE AVE

Voter Record B:

REGINA DESEREE MACGUFFIN 03/07/1973 F 123 POPE AVE

Example #4: This set of records has again a single character different (Hamming distance of 1) in the first name (but not the first letter this time) and the last name, birthdate and address are identical.  There were also multiple votes cast in the 2019 and 2022 November General from these registrants.

Voter Record A:

EDGARD JOHNSON 10/19/1981 M 5498 PAGELAND BLVD

Voter Record B:

EDUARD JOHNSON 10/19/1981 M 5498 PAGELAND BLVD

Example #5: This set of records has two characters different (Hamming distance of 2) in the first and middle names and the last name, birthdate, gender and address are identical.  There were also multiple votes cast in the 2021 and 2022 November General from these registrants. Again it is possible that these records represent a set of twins given the information that ELECT provides.

Voter Record A:

ALANA JAVETTE THOMPSON 01/01/2003 F 123 CHARITY LN

Voter Record B:

ALAYA YAVETTE THOMPSON 01/01/2003 F 123 CHARITY LN

Example #6: The following set of records has the exact match (Hamming Distance = 0) of full name and full birthdate (including year), and same address but different voter ID numbers.  There was no duplicated votes in the same election detected between the two ID numbers.

Voter Record A:

JAMES TIBERIUS KIRK 03/22/2223 M 1701 Enterprise Bridge

Voter Record B:

JAMES TIBERIUS KIRK 03/22/2223 M 1701 Enterprise Bridge

Example #7: The following set of records has the exact match (Hamming Distance = 0) of full name and full birthdate (including year), same address but different gender and voter ID numbers.  There was no duplicated votes in the same election detected between the two ID numbers.

Voter Record A:

MAXWELL QUAID CLINGER 11/03/2004 M 4077 MASH DR

Voter Record B:

MAXWELL QUAID CLINGER 11/03/2004 U 4077 MASH DR

Results Dataset:

A full version of the aggregated excel data is provided below, however all voter information (ID, first name, middle name, last name, dob, gender, address) have been removed and replaced by a one-way hash number, with randomized salt, based on the voter ID. The full file with specific voter information can be provided to parties authorized by ELECT to recieve and process voter information, Election Officials, or Law Enforcement upon request.

On the mathematical probability of matches:

Below I present the theory and derivation as to how I arrived at the expected value of 11 collisions (+/- 3) as mentioned above. I’ve tried to make the derivation below as digestible as possible, with accessible references, but it is admittedly still a very technical read. I think its important to “show my work” on the subject, though, and I present it here and am happy to take comments and criticism (contact).

Q: How much of a chance do we actually have of getting an exact (Hamming distance of 0) collision in the full name and full date of birth? Well, there is a similar and well known probability puzzle that asks how many random people do you need to approximately have a 50% chance of 2 of them sharing the same birthday (not including the year of birth). This is known as the “Birthday Problem” in probability theory, and rather surprisingly, the answer is that you only need about 23 people in your population sample to have a 50% probability that 2 of those people will share a day-of-year of birth. To quote the wikipedia article on the matter “… While it may seem surprising that only 23 individuals are required to reach a 50% probability of a shared birthday, this result is made more intuitive by considering that the birthday comparisons will be made between every possible pair of individuals. With 23 individuals, there are 23 × 22/2 = 253 pairs to consider, far more than half the number of days in a year.” The same mathematics of the birthday problem is the basis of the Birthday Attack cryptographic exploit, and it is therefore a well-studied problem in cryptography and cyber security.

Figure 1: The computed probability of at least two people sharing a birthday versus the number of people. A recreation of the classic “Birthday Problem”.

Now, as interesting as the toy birthday problem is as described above, it is over simplified for the problem we are looking at here. Firstly, the problem setup assumes independent and identically distributed random variable (e.g. an “IID” set of variables). While this is not exactly the case, the IID assumption provides for a computable first order estimate, and in the case of the classical birthday problem the estimate has been shown to be fairly accurate under experimental conditions.

Secondly, when we start additionally considering the year of birth, or sharing of first names, middle names and last names, things get much more complicated to compute, but the method is the same. We want to determine the probability of 2 people sharing the same First Name, Middle Name, Last Name, Suffix, Month-of-Birth, Day-of-Birth and Year-of-Birth in the population of unique registrants in the Registered Voter List. This means that in addition to the 365 day-of-birth possibilities, we need to estimate the number of possible years to cover, the number of possible first names, the number of possible middle names, the number of possible last names, the number of possible suffix strings and then include these possibilities into the same formulation as the birthday problem setup.

For determining how many years we should cover, I will simply use the average life expectancy of approximately 79 years. We can therefore update our N value of the birthday problem from 365 to 365 * 79 = 28835. When we perform the same analysis as the standard birthday problem with just this new parameter included, we end up needing 200 people in our sample population to have a 50% probability of of 2 people having a match.

Figure 2: The computed probability of at least two people sharing a birthday versus the number of people in the sample population. A recreation of the classic “Birthday Problem”, but we’ve updated the analysis to include the year of birth, and assumed the average life expectancy of 79 years. This moves the 50% crossover point to a population size of 200 from 23 for the standard Birthday Problem setup.

A similar analysis can be done with the number of names being considered, etc. For each (assumed independent and uniform) variable we add to the setup, we multiply the number of possible states (N) by the number of unique variable settings.

We can estimate the universe of possible names using the frequentist method from the RVL data itself: We know that we have 6,127,859 unique voter ID’s in the RVL, and there are 14 unique SUFFIX entries, 291,368 unique FIRST names, 405,591 unique MIDDLE names, and 465,185 unique LAST names. So multiplying out 365 x 79 x 14 x 291368 x 405591 x 465185 = 2.22 x 10^22 potential states to consider.

Now unfortunately, as we start dealing with bigger and bigger N values the ability of computers to maintain the necessary precision to carry out the mathematics for direct computation becomes harder and harder, eventually resulting in Infinite or divide-by-zero answers as the probabilities get smaller and smaller. So lets begin by first determining if we can find the 50% crossover point for the unique voter ID population size. We find that we only need 410 unique First, Middle, and Last names (each) to break the 50% probability limit.

Figure 3: The computed probability of at least two people sharing a first name, middle name, last name, suffix, month-of-birth, day-of-birth, year-of-birth versus the number of people in the sample population. This assumes the Nyears = 79, Nsuffix = 14, Nfirst = 410, Nmiddle = 410, Nlast = 410.

As we increase the number of unique (first, middle, last) names under consideration, we find that we very quickly reduce the probability to near zero (again … this is assuming an IID set of variables … more on that later). In fact we only need to assume that there are 1300 unique first names, middle names and last names before the probability drops to under 1%. This is two full orders of magnitude below the actual number of unique first names, middle names and last names (each) that we find by simple examination of the RVL file, so the actual probability of a collision under these conditions should be much, much, much lower. While not exactly zero, it is computationally indistinguishable from zero given machine precision. Note (again) that this formulation is still simplified in that it assumes a uniform distribution within the N possible states, but it still serves to give a first order approximation and sanity check.

Figure 4: The computed probability of at least two people sharing a first name, middle name, last name, suffix, month-of-birth, day-of-birth, year-of-birth versus the number of people in the sample population. This assumes the Nyears = 79, Nsuffix = 14, Nfirst = 1300, Nmiddle = 1300, Nlast = 1300.

As we start approaching the limit of computational precision we have to resort to approximation methods for computing the very small, but non-zero probability of collision given the actual number of unique first, middle and last names observed in the RVL dataset. We can use the Taylor series expansion for small powers in order to do this, and our equation for computing the probability becomes: Pb = 1 – exp(-k*(k-1) / (2 *N)).

Replicating our earlier example in Figure 4 above with Nfirst == Nmiddle == Nlast == 1300 to show the comparison of the Taylor expansion to the explicit computation produces the graphic in Figure 5 below. We see that the small value approximation is close, but slightly over-estimates the directly computed probability for IID variables.

Figure 5: The computed probability of at least two people sharing a first name, middle name, last name, suffix, month-of-birth, day-of-birth, year-of-birth versus the number of people in the sample population. This assumes the Nyears = 79, Nsuffix = 14, Nfirst = 1300, Nmiddle = 1300, Nlast = 1300.

When we perform this Taylor series approximation and look to find the number of records required in order to obtain a 50% probability that any 2 records would match given our updated universe of possible matches, we end up with requiring K = 176,000,000,000, or 176 Billion records. When we again try to evaluate the Taylor series for the explicit number of unique Voter ID’s present in the RVL file, which is just over 6M, we again obtain a number that is computationally indistinguishable from 0. (To be absolutely meticulous … its a bigger number that is indistinguishable from 0 than we previously computed, but it is still indistinguishable from zero.)

Figure 5: The computed probability of at least two people sharing a first name, middle name, last name, suffix, month-of-birth, day-of-birth, year-of-birth versus the number of people in the sample population. This assumes the Nyears = 79, Nsuffix = 14, Nfirst = 291368, Nmiddle = 405591, Nlast = 465185, and the computed 50% crossover point occurs at approximately 176 Billion samples required.

Another Implementation note: In order to explicitly code the above direct computations we also need to do some clever tricks with logarithms in order to avoid numerical overflow / underflow issues as much as possible. The formula for computing the permutations, which is N! / (N-K)! = N x (N-1) x … x (N-K+1) can have numerical issues when N becomes large. However if we take the base-10 logarithm of the equation, we can use the product and quotient rules of logarithms to compute the result and avoid numerical overflow: log10( N! / (N-K)! ) = log10(N!) – log((N-K)!) = log10(N) + log10(N-1) + … + … log10(N-K+1), which is a much more stable computation.

We can perform a similar trick in order to compute the denominator of N^k by using the power property of logarithms such that log10( N^k ) = k x log10(N).

You must of course remember to reverse the logarithm once you’ve computed the log-sums. So the final computation of Pb becomes the following:

Vnr = log10(N) + log10(N-1) + … + … log10(N-K+1), where N is the number of possible states N = 365 x Nyears x Nfirst x Nmiddle x Nlast x Nsuffix.

Vt = k x log10(N)

Pa_log10 = Vnr – Vt = log10(Pa) = log10(Vnr/Vt)

Pb = 1 – 10^(Pa)

Updating from uniform distributions to non-uniform distributions

So what happens when we take into account the fact that names and birthdays are not uniformly distributed? (e.g. the last name of “Smith” is more frequent than “Sandeval”) This fact increases the probability of a collision occurring in the dataset. This increase also makes intuitive sense as we can anecdotally observe that coincident names and birthdates, while still rare … do actually happen in real life with common names.

However, in the non-uniform case we don’t have as nearly of a nice closed set of formulas for computing the probability. What we can do instead to estimate the probability is perform a number of Monte Carlo simulations of selecting K values from the weighted possibilities, and determine how many collisions occurred in each simulation trial. By setting K equal to the number of unique Voter ID values in the RVL dataset, we can directly answer the question via simulation of “how many collisions of First+Middle+Last+Suffix+DOB should we expect when looking at the VA Registered Voter List file“?

We can determine the weightings for each variable easily enough from the distributions of unique values in the data itself.

The below MATLAB weightedCollisionSim(…) function is a program that can be used to perform this analysis. It assumes that the RVL table object is a global variable to setup the trials, and uses the MATLAB built-in randsample(…) function to perform each draw.

After 100 simulation runs, the results are that for the K=6,127,859 unique voter ID’s in the RVL, we should expect to have an average of about 11 collisions at Hamming distance of 0, with a standard deviation of roughly 3.

I will note that as a validation and verification step, the MATLAB simulation code below, when used with uniform sampling, produces similar results to what we analytically derived above.

function [p,m,s] = weightedCollisionSim(k,ntrials,varargin)
% To compute the probability the ntrials must be >> 1:
% [p,m,s] = weightedCollisionSim(k,ntrials,values1,weights1,...,values2,weights2)
% [p,m,s] = weightedCollisionSim(k,ntrials,Nvalues1,weights1,...,Nvalues2,weights2)
%
% OUTPUTS:
% p = Probability of a collision
% m = mean number of collisions
% s = standard deviation of collisions

if nargin == 0
    global rvl; % Assume the RVL is an available global var

    ntrials = 100; % Number of trials
   
    % Population size set as num of unique voter IDs in RVL
    npop = numel(unique(rvl.IDENTIFICATION_NUMBER));

    % Convert the DOB strings to datetime objects
    dob = datetime(rvl.DOB);

    % How many unique days of the year are there?
    [ud,uda,udb] = unique(day(dob,'dayofyear'));
    % How often do they occur?
    nud = accumarray(udb,1,[numel(ud),1]);
    Ndays = numel(ud);

    % How many unique years of birth are there?
    [uy,uya,uyb] = unique(year(dob));
    % How often do they occur?
    nuy = accumarray(uyb,1,[numel(uy),1]);
    Nyears = numel(uy);

    % How many unique suffix strings are there?
    [us,usa,usb] = unique(rvl.SUFFIX);
    % How often do they occur?
    nus = accumarray(usb,1,[numel(us),1]);
    Nsuffix = numel(us);

    % How many unique first names are there?
    [uf,ufa,ufb] = unique(rvl.FIRST_NAME);
    % How often do they occur?
    nuf = accumarray(ufb,1,[numel(uf),1]);
    Nfirst = numel(uf);

    % How many unique middle names are there?
    [um,uma,umb] = unique(rvl.MIDDLE_NAME);
    % How often do they occur?
    num = accumarray(umb,1,[numel(um),1])
    Nmiddle = numel(um);

    % How many unique last names are there?
    [ul,ula,ulb] = unique(rvl.LAST_NAME);
    % How often do they occur?
    nul = accumarray(ulb,1,[numel(ul),1]);
    Nlast = numel(ul);
        
    % Initializing the weighting vectors
    w0 = nus;
    w1 = nud;
    w2 = nuy;
    w3 = nuf;
    w4 = num;
    w5 = nul;

    % Recursively compute results and return
    [p,m,s] = weightedCollisionSim(npop,ntrials,1:Nsuffix,w0,1:Ndays,w1,1:Nyears,w2,...
        1:Nfirst,w3,1:Nmiddle,w4,1:Nlast,w5);
    return
end

if nargin < 2 || isempty(ntrials)
    ntrials = 1;
end

nc = zeros(ntrials,1);
for j = 1:ntrials
    fprintf('Trial %d\n',j);
    y = zeros(k,numel(varargin)/2);
    m = 1;
    for i = 1:2:numel(varargin)
        w = varargin{i+1};
        v = varargin{i};
        if ~isempty(w) && isvector(w)
            % Non-uniform weightings
            y(:,m) = randsample(v,k,true,w);
        else
            % Uniform sampling
            y(:,m) = randsample(v,k,true);
        end
        m = m+1;
    end
    [u,~,ib] = unique(y,'rows');
    nu = accumarray(ib,1,[size(u,1),1]);
    nc(j) = sum(nu > 1);
end
p = mean(nc>0);
m = mean(nc);
s = std(nc);
Categories
Election Data Analysis Election Forensics Election Integrity Interesting technical

Distribution of Invalid Voter Addresses and Absentee Ballots in VA 2022 General Election

Edited on 2022-12-15 for typo corrections, addition of Congressional District breakdown, and added commentary section.

BLUF (Bottom Line Up Front):

There were 15,419 ballots cast during early voting in the VA 2022 General Election where the voters’ registered address on record were flagged as “Invalid” by a National Change of Address (NCOA) database check. If we include addresses that were identified as 90-day Vacant the total rises to 17,244. Plotting the distribution of these based on the ZIP+4 identified by the NCOA check shows a disproportionate high amount of issues in the Eastern shore of VA.

A certified commercial provider of NCOA data verification was used to facilitate this analysis on raw data obtained from the VA Dept of Elections (“ELECT”). It is not technically possible to obtain a truly time-synchronized complete set of data for any election due to the way elections are run in VA, but we made every effort to obtain the data from the state as close in time as was possible. The NCOA database is maintained and curated by the United States Postal Service (USPS).

For those wishing to review specific entries, or to help validate these issues, and who are part of an organization that is able to receive and handle election information according to VA law and the VA Dept of Elections requirements, you may contact us to request the raw data breakdowns. We will need to validate your organization or employment and will make data available as legally allowed.

Commentary and Discussion (added 2022-12-15):

In response to recent interest on this matter, I would like to be very clear: We are simply presenting the data as compiled to facilitate public discourse. We have strived to only utilize data directly obtained from authoritative sources (ELECT, the USPS via TrueNCOA provider).

The designation of “Invalid” addresses is according to the definition by the USPS and TrueNCOA, i.e. the TrueNCOA check has reported the addresses as listed in the RVL have no match in the USPS database. Invalid addresses do not include things like valid P.O. Boxes or valid rural addresses.

The VA Constitution (Section II-1 and II-2) specify the requirements for voter eligibility to include that voters are required to supply a primary address for their registration record, regardless of their method of voting. VA is required by law to consistently maintain and validate these records. Based on the below analysis, the data shows that there is a small but statistically significant number of “Invalid” addresses associated for voters who cast ballots in the Nov 2022 election.

Continuing EPEC’s mission to promote voter participation, analyze election technology, and educate the public about best practices in managing election technology systems; we are providing the below analysis in order to educate and inform the public, legislators and elections officials about the existence of these discrepancies.

Details:

After receiving the results of a National Change of Address (NCOA) database check on the registration (not the temporary) addresses in the latest VA Registered Voter List (RVL). I’ve gone through and collated the flagged addresses and reconciled them with the entries in the Daily Absentee List (DAL) file records provided by the VA Dept. of Elections (“ELECT”).

The DAL file (dated 2022-12-08) provides a records of all of the voters that cast absentee (either Early In-Person or Mail-In) ballots in the election, and the RVL (dated 2022-11-23) gives all of the registered voter addresses and other pertinent information. Both datasets come directly from the VA Dept. of Elections and must be purchased. Total cost was ~$7000. The two datasets can be tied together using the voter Identification Number that is assigned to each (supposedly) unique voter by the state. Entries in the RVL should be unique to each registered voter (although there are a small number of duplicate voter IDs that I have seen … but thats for another post), whereas the DAL file can have multiple entries attributed to a single voter recording the various stages of ballot processing.

The NCOA check was performed on all addresses in the RVL file in order to detect recent moves, invalid addresses, vacant addresses, P.O. Boxes, commercial addresses, etc. The NCOA check takes multiple days to run using a commercial service provider and was executed between 2022-12-01 through 2022-12-06. The processing needed to be performed in two batches.

Results:

Raw TrueNCOA Processing result stats on the full RVA dataset:
NCOA Processing of VA RVL 2022-11-23 RecordsBatch 1Batch 2TotalPercent
Records Processed5,831,089296,7676,127,856
18 – Month NCOA Moves264,21012,618276,8284.52%
48 – Month NCOA Moves155,274865156,1392.55%
Moves with no Forwarding Address23,65144724,0980.39%
Total NCOA Moves443,13513,930457,0657.46%
Vacant Flag26,8651,74228,6070.47%
DPV Updated/Address Corrected Records568,03920,748588,7879.61%
DPV Deliverable Records5,555,024280,2075,835,23195.22%
DPV Non-Deliverable Records173,32212,427185,7493.03%
LACS Updated (Rural Address converted to Street Address)32,1161,32733,4430.55%
Residential Delivery Indicator5,681,183289,3455,970,52897.43%
Addresses matched to the USPS Database5,728,347292,6346,020,98198.26%
Invalid Addresses102,6174,161106,7781.74%
Expired Addresses6,8755767,4510.12%
Business Move (B)33963450.01%
Family Move (F)110,4443,549113,9931.86%
Individual Move (I)332,35210,375342,7275.59%
General Delivery Address15301530.00%
High Rise Address703,90362,059765,96212.50%
PO Box Address26,97377027,7430.45%
Rural Route Address791800.00%
Single Family Address5,012,679230,2005,242,87985.56%
Unknown49,2992,45751,7560.84%
Reporting as presented from the TrueNCOA data service. The TrueNCOA data dictionary is presented here.
Combining NCOA results of RVL Addresses with the DAL data:
Vacant Addresses:

There were 1,829 records across the state with registered addresses that have been flagged as (90-day) “Vacant” by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election according to the DAL file. Of those records, 1,317 were Early In-Person and 491 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Note: This graphic was updated on Thu Dec 15 to correct a typo in the title as to the date of the DAL file that was used.
P.O. Boxes (Non-protected):

There were 1,648 records across the state with registered addresses that have been flagged as P.O. Box Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election AND were NOT listed as protected entries according to the DAL file. (VA allows for voters who have a legal protective order to list a P.O. Box as their address of record on public documents) Of those records, 1,348 were Early In-Person and 294 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Note: This graphic was updated on Thu Dec 15 to correct a typo in the title as to the date of the DAL file that was used.
Invalid Addresses:

There were 15,419 records across the state with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election. Of those records, 12,766 were Early In-Person and 2,566 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Note: This graphic was updated on Thu Dec 15 to correct a typo in the title as to the date of the DAL file that was used.
Invalid OR Vacant Addresses:

There were 17,244 records across the state with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election. Of those records, 14,083 were Early In-Person and 3,053 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Note: This graphic was updated on Thu Dec 15 to correct a typo in the title as to the date of the DAL file that was used.
Record of Moves Out-of-State:

There were 793 records that had records of NCOA moves to valid out-of-state addresses before 2022-08 that also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election. Of those records, 338 were Early In-Person and 454 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Note: This graphic was updated on Thu Dec 15 to correct a typo in the title as to the date of the DAL file that was used.

Results By District:

This section was added 2022-12-15, per multiple requests for by-district breakouts.

District 01:
Invalid Addresses:

There were 3,222 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 01. Of those records, 2,841 were Early In-Person and 364 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 3,310 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 01. Of those records, 2,909 were Early In-Person and 384 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 02:
Invalid Addresses:

There were 2,552 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 02. Of those records, 2,185 were Early In-Person and 353 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 2,763 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 02. Of those records, 2,346 were Early In-Person and 400 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 03:
Invalid Addresses:

There were 137 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 03. Of those records, 97 were Early In-Person and 34 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 412 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 03. Of those records, 283 were Early In-Person and 117 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 04:
Invalid Addresses:

There were 507 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 04. Of those records, 423 were Early In-Person and 78 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 695 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 04. Of those records, 567 were Early In-Person and 121 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 05:
Invalid Addresses:

There were 2,093 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 05. Of those records, 1,738 were Early In-Person and 348 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 2,264 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 05. Of those records, 1,860 were Early In-Person and 395 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 06:
Invalid Addresses:

There were 1,214 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 06. Of those records, 990 were Early In-Person and 212 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 1,390 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 06. Of those records, 1,129 were Early In-Person and 247 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 07:
Invalid Addresses:

There were 1,042 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 07. Of those records, 868 were Early In-Person and 167 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 1,139 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 07. Of those records, 946 were Early In-Person and 183 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 08:
Invalid Addresses:

There were 276 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 08. Of those records, 148 were Early In-Person and 125 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 517 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 08. Of those records, 300 were Early In-Person and 212 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 09:
Invalid Addresses:

There were 3,247 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 09. Of those records, 2,639 were Early In-Person and 597 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 3,369 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 09. Of those records, 2,733 were Early In-Person and 624 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 10:
Invalid Addresses:

There were 940 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 10. Of those records, 740 were Early In-Person and 198 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 992 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 10. Of those records, 783 were Early In-Person and 207 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

District 11:
Invalid Addresses:

There were 189 records with registered addresses that have been flagged as “Invalid” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 11. Of those records, 97 were Early In-Person and 90 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Invalid OR Vacant Addresses:

There were 393 records with registered addresses that have been flagged as “Invalid” or “Vacant” Addresses by the NCOA check and also had an Early In-Person, Mail-In, FWAB or Provisional ballot cast in the VA 2022 General Election in District 11. Of those records, 227 were Early In-Person and 163 were Mail-In. The geographic distribution of the addresses (based on the ZIP+4), as reported by the NCOA service, is shown below, with the size of the marker proportional to the total number of counts at that ZIP+4 location.

Summary Data Files by Locality:

The complete set of graphics and statistics for each locality, and each congressional district in VA can be downloaded here as a zip file. The tabulated summary results can also be downloaded in excel, csv, or numbers format:

Categories
Election Data Analysis Election Forensics Election Integrity Interesting technical

Interesting change in effective dates in VA Registered Voter List

I’ve stumbled across an interesting data artifact that I’m not sure what to make of. But I will present it here for completeness.

In the Registered Voter List available from the VA Dept of Elections (“ELECT”), each record of a registered voter has an “effective date” associated with it. This can be the same as the actual registration date, or the date that the voters record is returned to “active” status, etc. It appears that sometime within the last year, almost all of the voter registrations with a previous effective date earlier than June 2011 have had their effective date reassigned.

For this analysis I am using an RVL that I purchased from ELECT on 2021-11-06 and comparing it with an RVL purchased on 2022-11-22. I am only comparing the records associated with common voter IDs between each dataset. Any new or removed voters in the last year have been removed from the data and the corresponding plots below.

In the 2021 RVL, we can see the distribution of the effective dates in the histogram below. The majority of records have rather recent effective dates, but there are diminishing tails from long-term voters who’s effective date of their registration goes back many years. (The y-axis in the plot is logarithmic, so we can better see the shape of the distribution tails.)

This isn’t all-together so surprising. Newer voters, or voters who have made recent changes to their registration information, will likely get an updated effective date on their voter registration record. Older, or longer term voters, that have not made any recent changes and stay active would show older effective dates on their records.

Now compare that to the RVL file dated 2022-11-22. Again, this comparison and the data in these plots is only those records that share common voter ids between the two files. Sometime between the time I downloaded the 2021-11-06 RVL and the 2022-11-22 RVL, almost all records with effective dates before July 2011 have had their effective dates reset to a more recent date.

I don’t really know what to make of this. Was there a mass update of voter registration records? Or a database restore, or some other operation on the records?

Even more interesting is when we superimpose the two histograms we see that the 2022 records with effective date after July 2011 look to also have had a significant percentage of dates reset. We see the red curve maintains it shape, save for the large spike at the far right, but is shifted lower … as if a constant percentage of the records have been included in the effective date shift.

Now if we apply a constant multiplier of 20x to the red (2022) dataset we can mostly re-align the histograms.

Of the effective dates that were changed between the two files, the distribution of the adjustments to the effective dates is shown below. I find it interesting that there are a number of records where the effective date has been moved backwards (?) in time.

We know there have been significant issues with the database used by ELECT (known as the “VERIS” database), so maybe this is an artifact of some maintenance operations or repairs on the data entries? Or maybe this is a symptom of a larger problem. Whatever it is, it doesn’t make a lot of sense in what should be a very well maintained and authoritative set of records.

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Updates to Henrico CVR processing

Note: For background information, please see my introduction to Cast Vote Records processing and theory here: Statistical Detection of Irregularities via Cast Vote Records.

Since I posted my initial analysis of the Henrico CVR data, one comment was made to me by a member of the Texas election integrity group I have been working with: We have been assuming, based on vendor documentation and the laws and requirements in various states, that when a cast vote record is produced by vendor software the results are sorted by the time the ballot was recorded onto a scanner. However, when looking at the results that we’ve been getting so far and trying to figure out plausible explanations for what we were seeing, he realized it might be the case that the ordering of the CVR entries are being done by both time AND USB stick grouping (which is usually associated with a specific scanner or precinct) but then simply concatenating all of those results together.

While there isn’t enough information in the Henrico CVR files to breakout the entries by USB/Scanner, and the Henrico data has record ID numbers instead of actual timestamps, there is enough information to break out them by Precinct, District and Race, with the exception of the Central Absentee Precincts (CAP) entries where we can only break them out by district given the metadata alone. However, with some careful MATLAB magic I was able to cluster the results marked as just “CAP” into at least 5 different sub-groupings that are statistically distinct. (I used an exponential moving average to discover the boundaries between groupings, and looking at the crossover points in vote share.) I then relabeled the entries with the corresponding “CAP 1”, “CAP 2”, … , “CAP 5” labels as appropriate. My previous analysis was only broken out by Race ID and CAP/Non-CAP/Provisional category.

Processing in this manner makes the individual distributions look much cleaner, so I think this does confirm that there is not a true sequential ordering in the CVR files coming out of the vendor software packages. (If they would just give us the dang timestamps … this would be a lot easier!)

I have also added a bit more rigor to the statistics outlier detection by adding plots of the length of observed runs (e.g. how many “heads” did we get in a row?) as we move through the entries, as well as the plot of the probability of this number of consecutive tosses occurring. We compute this probability for K consecutive draws using the rules of statistical independence, which is P([a,a,a,a]) = P(a) x P(a) x P(a) x P(a) = P(a)^4. Therefore the probability of getting 4 “heads” in a row with a hypothetical 53/47 weighted coin would be .53^4 = 0.0789. There are also plotted lines for a probability 1/#Ballots for reference.

Results

The good news is that this method of slicing the data and assuming that the Vendor is simply concatenating USB drives seems to produce much tighter results that look to obey the expected IID distributions. Breaking up the data this way resulted in no plot breaking the +/- 3/sqrt(N-1) boundaries, but there still are a few interesting datapoints that we can observe.

In the plot below we have the Attorney Generals race in the 4th district from precinct 501 – Antioch. This is a district that Miyares won handily 77%/23%. We see that the top plot of the cumulative spread is nicely bounded by the +/- 3/sqrt(N-1) lines. The second plot from the top gives the vote ratio in order to compare with the work that Draza Smith, Jeff O’Donnell and others are doing with CVR’s over at Ordros.com. The second from bottom plot gives the number k of consecutive ballots (in either candidates favor) that have been seen at each moment in the counting process. And the bottom plot raises either the 77% or 23% overall probability to the k-th power to determine the probability associated with pulling that many consecutive Miyares or Herring ballots from an IID distribution. The most consecutive ballots Miyares received in a row was just over 15, which had a .77^15 = 0.0198 or 1.98% chance of occurring. The most consecutive ballots Herring received was about 4, which equates to a probability of occurrence of .23^4 = 0.0028 or 0.28% chance. The dotted line on the bottom plot is referenced at 1/N, and the solid line is referenced at 0.01%.

But let’s now take a look at another plot for the Miyares contest in another blowout locality with 84% / 16% for Miyares. The +/- 3/sqrt(N-1) limit nicely bounds our ballot distribution again. There is, however, an interesting block of 44 consecutive ballots for Miyares about halfway through the processing of ballots. This equates to .84^44 = 0.0004659 or a 0.04659% chance of occurrence from an IID distribution. Close to this peak is a run of 4 ballots for Herring which doesn’t sound like much, but given the 84% / 16% split, the probability of occurrence for that small run is .16^4 = 0.0006554 or 0.06554%!

Moving to the Lt. Governors race we see an interesting phenomenon where where Ayala received a sudden 100 consecutive votes a little over midway through the counting process. Now granted, this was a landslide district for Ayala, but this still equates to a .92^100 = 0.000239 or 0.0239% chance of occurrence.

And here’s another large block of contiguous Ayala ballots equating to about .89^84 = 0.00005607 or 0.0056% chance of occurrence.

Tests for Differential Invalidation (added 2022-09-19):

“Differential invalidation” takes place when the ballots of one candidate or position are invalidated at a higher rate than for other candidates or positions. With this dataset we know how many ballots were cast, and how many ballots had incomplete or invalid results (no recorded vote in the cvr, but the ballot record exists) for the 3 statewide races. In accordance with the techniques presented in [1] and [2], I computed the plots of the Invalidation Rate vs the Percent Vote Share for the Winner in an attempt to observe if there looks to be any evidence of Differential Invalidation ([1], ch 6). This is similar to the techniques presented in [2], which I used previously to produce my election fingerprint plots and analysis that plotted the 2D histograms of the vote share for the winner vs the turnout percentage.

The generated the invalidation rate plots for the Gov, Lt Gov and AG races statewide in VA 2021 are below. Each plot below is representing one of the statewide races, and each dot is representing the ballots from a specific precinct. The x axis is the percent vote share for the winner, and the y axis is computed as 100 – 100 * Nvotes / Nballots. All three show a small but statistically significant linear trend and evidence of differential invalidation. The linear regression trendlines have been computed and superimposed on the data points in each graph.

To echo the warning from [1]: a differential invalidation rate does not directly indicate any sort of fraud. It indicates an unfairness or inequality in the rate of incomplete or invalid ballots conditioned on candidate choice. While it could be caused by fraud, it could also be caused by confusing ballot layout, or socio-economic issues, etc.

Full Results Download

References

  • [1] Forsberg, O.J. (2020). Understanding Elections through Statistics: Polling, Prediction, and Testing (1st ed.). Chapman and Hall/CRC. https://doi.org/10.1201/9781003019695
  • [2] Klimek, Peter & Yegorov, Yuri & Hanel, Rudolf & Thurner, Stefan. (2012). Statistical Detection of Systematic Election Irregularities. Proceedings of the National Academy of Sciences of the United States of America. 109. 16469-73. https://doi.org/10.1073/pnas.1210722109.
Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

CVR Analysis – Henrico County VA 2021

Update 2022-08-29 per observations by members of the Texas team I am working with, we’ve been able to figure out that (a) the vendor was simply concatenating data records from each machine and not sorting the CVR results and (b) how to mostly unwrap this affect on the data to produce much cleaner results. The results below are left up for historical reference.

For background information, please see my introduction to Cast Vote Records processing and theory here: Statistical Detection of Irregularities via Cast Vote Records. This entry will be specifically documenting the results from processing the Henrico County Virginia CVR data from the 2021 election.

As in the results from the previous post, I expanded the theoretical error bounds out to 6/sqrt(N) instead of 3/sqrt(N) in order to give a little bit of extra “wiggle room” for small fluctuations.

However the Henrico dataset could only be broken up by CAP, Non-CAP or Provisional. So be aware that the CAP curves presented below contain a combination of both early-vote and mail-in ballots.

The good news is that I’ve at least found one race that seems to not have any issues with the CVR curves staying inside the error boundaries. MemberHouseOfDelegates68thDistrict did not have any parts of the curves that broke through the error boundaries.

The bad news … is pretty much everything else doesn’t. I cannot tell you why these curves have such differences from statistical expectation, just that they do. We must have further investigation and analysis of these races to determine root cause. I’ve presented all of the races that had sufficient number of ballots below (1000 minimum for the race a whole, and 100 ballot minimum for each ballot type).

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Statistical Detection of Irregularities via Cast Vote Records

There has been a good amount of commotion regarding cast vote records (CVRs) and their importance lately. I wanted to take a minute and try and help explain why these records are so important, and how they provide a tool for statistical inspection of election data. I also want to try and dispel any misconceptions as to what they can or can’t tell us.

I have been working with other local Virginians to try and get access to complete CVRs for about 6 months (at least) in order to do this type of analysis. However, we had not had much luck in obtaining real data (although we did get a partial set from PWC primaries but it lacked the time-sequencing information) to evaluate until after Jeff O’Donnell (a.k.a. the Lone Raccoon) and Walter Dougherity did a fantastic presentation at the Mike Lindell Moment of Truth Summit on CVRs and their statistical use. That presentation seems to have broken the data logjam, and was the impetus for writing this post.

Just like the Election Fingerprint analysis I was doing earlier that highlighted statistical anomalies in election data, this CVR analysis is a statistics based technique that can help inform us as to whether or not the election data appears consistent with expectations. It only uses the official results as provided by state or local election authorities and relies on standard statistical principles and properties. Nothing more. Nothing less.

What is a cast vote record?

A cast vote record is part of the official election records that need to be maintained in order for election systems to be auditable. (see: 52 USC 21081 , NIST CVR Standard, as well as the Virginia Voting Systems Certification Standards) They can have many different formats depending on equipment vendor, but they are effectively a record of each ballot as it was recorded by the equipment. Each row in a CVR data table should represent a single ballot being cast by a voter and contain, at minimum, the time (or sequence number) when the ballot was cast, the ballot type, and the result of each race. Other data might also be included such as which precinct and machine performed the scanning/recording of the ballot, etc. Note that “cast vote records” are sometimes also called “cast voter records”, “ballot reports” or a number of other different names depending on the publication or locality. I will continue to use the “cast vote record” language in this document for consistency.

Why should we care?

The reason these records are so important, is based on statistics and … unfortunately … involves some math to fully describe. But to make this easier, let’s try first to walk through a simple thought experiment. Let’s pretend that we have a weighted, or “trick” coin, that when flipped it will land heads 53% of the time and land tails 47% of the time. We’re going to continuously flip this coin thousands of times in a row and record our results. While we can’t predict exactly which way the coin will land on any given toss, we can expect that, on average, the coin will land with the aforementioned 53/47 split.

Now because each coin toss constitutes an independent and identically distributed (IID) probability function, we can expect this sequence to obey certain properties. If as we are making our tosses, we are computing the “real-time” statistics of the percentage of head/tails results, and more specifically if we plot the spread (or difference) of those percentage results as we proceed we will see that the spread has very large swings as we first begin to toss our coin, but very quickly the variability in the spread becomes stable as more and more tosses (data) are available for us to average over. Mathematically, the boundary on these swings is inversely proportional to the square root of how many tosses are performed. In the “Moment of Truth” video on CVRs linked above, Jeff and Walter refer to this as a “Cone of Probability”, and he generates his boundary curves experimentally. He is correct. It is a cone of probability as its really just a manifestation of well-known and well-understood Poisson Noise characteristic (for the math nerds reading this). In Jeff’s work he uses the ratio of votes between candidates, while I’m using the spread (or deviation) of the vote percentages. Both metrics are valid, but using the deviation has an easy closed-form boundary curve that we don’t need to generate experimentally.

In the graphic below I have simulated 10 different trials of 10,000 tosses for a distribution that leans 53/47, which is equivalent to a 6% spread overall. Each trial had 10,000 random samples generated as either +1 or -1 values (a.k.a. a binary “Yes” or “No” vote) approximating the 53/47 split and I plotted the cumulative running spread of the results as each toss gets accumulated. The black dotted outline is the 95% confidence interval (or +/-3x the standard deviation) across the 10 trials for the Nth bin, and the red dotted outline is the 3/sqrt(n-1) analytical boundary.

So how does this apply to election data?

In a theoretically free and perfectly fair election we should see similar statistical behavior, where each coin toss is replaced with a ballot from an individual voter. In a perfect world we would have each vote be completely independent of every other vote in the sequence. In reality we have to deal with the fact that there can be small local regions of time in which perfectly legitimate correlations in the sequence of scanned ballots exist. Think of a local church who’s congregation is very uniform and they all go to the polls after Sunday mass. We would see a small trend in the data corresponding to this mass of similar thinking peoples going to the polls at the same time. But we wouldn’t expect there to be large, systematic patterns, or sharp discontinuities in the plotted results. A little bit of drift and variation is to be expected in dealing with real world election data, but persistent and distinct patterns would indicate a systemic issue.

Now we cannot isolate all of the variables in a real life example, but we should try as best as possible. To that effect, we should not mix different ballot types that are cast in different manners. We should keep our analysis focused within each sub-group of ballot type (mail-in, early-vote, day-of, etc). It is to the benefit of this analysis that the very nature of voting, and the procedures by which it occurs, is a very randomized process. Each sub-grouping has its own quasi-random process that we can consider.

While small groups (families, church groups) might travel to the in-person polls in correlated clusters, we would expect there to be fairly decent randomization of who shows up to in-person polls and when. The ordering of who stands in line before or after one another, how fast they check-in and fill out their ballot, etc, are all quasi-random processes.

Mail-in ballots have their own randomization as they depend on the timing of when individuals request, fill-out and mail their responses, as well as the logistics and mechanics of the postal service processes themselves providing a level of randomization as to the sequence of ballots being recorded. Like a dealer shuffling a deck of cards, the process of casting a mail-in vote provides an additional level of independence between samples.

No method is going to supply perfect theoretical independence from ballot to ballot in the sequence, but theres a general expectation that voting should at least be similar to an IID process.

Also … and I cannot stress this enough … while these techniques can supply indications of irregularities and discrepancies in elections data, they are not conclusive and must be coupled with in-depth investigations.

So going back to the simulation we generated above … what does a simulation look like when cheating occurs? Let’s take a very simple cheat from a random “elections” of 10,000 ballots, with votes being representative of either +1 (or “Yes”) or -1 (or “No”) as we did above. But lets also cheat by randomly selecting two different spots in the data stream to place blocks of 250 consecutive “Yes” results.

The image below shows the result of this process. The blue curve represents the true result, while the red curve represents the cheat. We see that at about 15% and 75% of the vote counted, our algorithm injected a block of “Yes” results, and the resulting cumulative curve breaks through the 3/sqrt(N-1) boundary. Now, not every instance or type of cheat will break through this boundary, and there may be real events that might explain such behavior. But looking for CVR curves that break our statistical expectations is a good way to flag items that need further investigation.

Computing the probability of a ballot run:

Section added on 2022-09-18

We can also a bit more rigor to the statistics outlier detection by computing the probability of the length of observed runs (e.g. how many “heads” did we get in a row?) occurring as we move through the sequential entries. We can compute this probability for K consecutive draws using the rules of statistical independence, which is P([a,a,a,a]) = P(a) x P(a) x P(a) x P(a) = P(a)^4. Therefore the probability of getting 4 “heads” in a row with a hypothetical 53/47 weighted coin would be .53^4 = 0.0789.

Starting with my updated analysis of 2021 Henrico County VA, I’ve started adding this computation to my plots. I have not yet re-run the Texas data below with this new addition, but will do so soon and update this page accordingly.

Real Examples

UPDATE 2022-09-18:

  • I have finally gotten my hands on some data for 2020 in VA. I will be working to analyze that data and will report what I find as soon as I can, but as we are approaching the start of early voting for 2022, my hands are pretty full at the moment so it might take me some time to complete that processing.
  • As noted in my updates to the Henrico County 2021 VA data, and in my section on computing the probability of given runs above, the Texas team noticed that we could further break apart the Travis county data into subgroups by USB stick. I will update my results below as soon as I get the time to do so.

So I haven’t gotten complete cast vote records from VA yet (… which is a whole other set of issues …), but I have gotten my Cheeto stained fingers on some data from the Travis County Texas 2020 race.

So let us first take a look at an example of a real race where everything seems to be obeying the rules as set out above. I’ve doubled my error bars from 3x to 6x of the inverse square standard (discussed above) in order to handle the quasi-IID nature of the data and give some extra margin for small fluctuating correlations.

The plot below shows the Travis County Texas 2020 BoardOfTrusteesAt_LargePosition8AustinISD race, as processed by the tabulation system and stratified by ballot type. We can see that all three ballot types start off with large variances in the computed result but very quickly coalesce and approach their final values. This is exactly what we would expect to see.

Now if I randomly shuffle the ordering of the ballots in this dataset and replot the results (below) I get a plot that looks unsurprisingly similar, which suggests that these election results were likely produced by a quasi-IID process.

Next let’s take a look at a race that does NOT conform to the statistics we’ve laid out above. (… drum-roll please … as this the one everyone’s been waiting for). Immma just leave this right here and just simply point out that all 3 ballot type plots below in the Presidential race for 2020 go outside of the expected error bars. I also note the discrete stair step pattern in the early vote numbers. It’s entirely possible that there is a rational explanation for these deviations. I would sure like to hear it, especially since we have evidence from the exact same dataset of other races that completely followed the expected boundary conditions. So I don’t think this is an issue with a faulty dataset or other technical issues.

And just for completeness, when I artificially shuffle the data for the Presidential race, and force it to be randomized, I do in fact end up with results that conform to IID statistics (below).

I will again state that while these results are highly indicative that there were irregularities and discrepancies in the election data, they are not conclusive. A further investigation must take place, and records must be preserved, in order to discover the cause of the anomalies shown.

Running through each race that had at least 1000 ballots cast and automatically detecting which races busted the 6/sqrt(n-1) boundaries produces the following tabulated results. A 1 in the right hand column indicates that the CVR data for that particular race in Travis County has crossed the error bounds. A 0 in the right hand column indicates that all data stayed within the error bound limits.

RaceCVR_OOB_Irregularity_Detected
President_VicePresident1
UnitedStatesSenator1
UnitedStatesRepresentativeDistrict101
UnitedStatesRepresentativeDistrict171
UnitedStatesRepresentativeDistrict211
UnitedStatesRepresentativeDistrict251
UnitedStatesRepresentativeDistrict350
RailroadCommissioner1
ChiefJustice_SupremeCourt1
Justice_SupremeCourt_Place6_UnexpiredTerm1
Justice_SupremeCourt_Place71
Justice_SupremeCourt_Place81
Judge_CourtOfCriminalAppeals_Place31
Judge_CourtOfCriminalAppeals_Place41
Judge_CourtOfCriminalAppeals_Place91
Member_StateBoardOfEducation_District51
Member_StateBoardOfEducation_District101
StateSenator_District210
StateSenator_District241
StateRepresentativeDistrict471
StateRepresentativeDistrict481
StateRepresentativeDistrict491
StateRepresentativeDistrict501
StateRepresentativeDistrict510
ChiefJustice_3rdCourtOfAppealsDistrict1
DistrictJudge_460thJudicialDistrict1
DistrictAttorney_53rdJudicialDistrict1
CountyJudge_UnexpiredTerm1
Judge_CountyCourtAtLawNo_91
Sheriff1
CountyTaxAssessor_Collector1
CountyCommissionerPrecinct11
CountyCommissionerPrecinct31
AustinCityCouncilDistrict20
AustinCityCouncilDistrict40
AustinCityCouncilDistrict60
AustinCityCouncilDistrict70
AustinCityCouncilDistrict101
PropositionACityOfAustin_FP__2015_1
PropositionBCityOfAustin_FP__2022_1
MayorCityOfCedarPark0
CouncilPlace2CityOfCedarPark0
CouncilPlace4CityOfCedarPark0
CouncilPlace6CityOfCedarPark0
CouncilMemberPlace2CityOfLagoVista0
CouncilMemberPlace4CityOfLagoVista0
CouncilMemberPlace6CityOfLagoVista0
CouncilMemberPlace2CityOfPflugerville0
CouncilMemberPlace4CityOfPflugerville0
CouncilMemberPlace6CityOfPflugerville0
Prop_ACityOfPflugerville_2169_0
Prop_BCityOfPflugerville_2176_0
Prop_CCityOfPflugerville_2183_0
BoardOfTrusteesDistrict2SingleMemberDistrictAISD0
BoardOfTrusteesDistrict5SingleMemberDistrictAISD0
BoardOfTrusteesAt_LargePosition8AustinISD1
BoardOfTrusteesPlace1EanesISD1
Prop_AEanesISD_2246_0
BoardOfTrusteesPlace3LeanderISD0
BoardOfTrusteesPlace4LeanderISD0
BoardOfTrusteesPlace5ManorISD1
BoardOfTrusteesPlace6ManorISD0
BoardOfTrusteesPlace7ManorISD1
BoardOfTrusteesPlace6PflugervilleISD1
BoardOfTrusteesPlace7PflugervilleISD1
BoardOfTrusteesPlace1RoundRockISD1
BoardOfTrusteesPlace2RoundRockISD0
BoardOfTrusteesPlace6RoundRockISD0
BoardOfTrusteesPlace7RoundRockISD0
BoardOfTrusteesWellsBranchCommunityLibraryDistrict0
Var1470
BoardOfTrusteesWestbankLibraryDistrict0
Var1500
Var1510
DirectorsPlace2WellsBranchMUD0
DirectorsPrecinct4BartonSprings_EdwardsAquiferConservationDistr0
PropositionAExtensionOfBoundariesCityOfLakeway_1966_0
PropositionB2_yearTermsCityOfLakeway_1973_0
PropositionCLimitOnSuccessiveYearsOfServiceCityOfLakeway_1980_0
PropositionDResidencyRequirementForCityManagerCityOfLakeway_1980
PropositionEOfficeOfTreasurerCityOfLakeway_1994_0
PropositionFOfficialBallotsCityOfLakeway_2001_0
PropositionGAuthorizingBondsCityOfLakeway_2008_0
PropositionALagoVistaISD_2253_0
PropositionBLagoVistaISD_2260_0
PropositionCLagoVistaISD_2267_0
PropositionAEmergencyServicesDistrict1_2372_0

References and further reading:

Categories
Election Data Analysis Election Forensics Election Integrity Interesting technical

Distribution of VHL Entries for selected VA Localities

MAJOR CORRECTION (2022-07-17): The below analysis incorrectly computed the CSV totals for each of the 3 counties. I had an indexing error into my CSV file list and erroneously computed the 2020 totals from the CSV’s. I have since updated and recomputed all of the VHL and CSV results, and have additionally added a check against the Turnout report numbers as reported by ELECT. These new results will be forthcoming in an upcoming blog post. While there are still discrepancies between the VHL and CSV, their magnitude is not as large as was originally presented here. My apologies for the error. Corrected numbers for the 2020 CSV totals are shown in red below with my original estimates in strikethrough font.

(Edited 2022-07-10 17:31 EST to add better explanation of VHL and CSV files to first paragraph.)

Per Request – Prince William, Fairfax and Loudoun County

According to the CSV file hosted on the ELECT servers and downloaded on 11-30-2020, the number of votes cast in Prince William County in 2020 Presidential race was 228,267 (corrected) 137,874, which is significantly different than the number of Voters that cast ballots (223,404) in 2020 as generated from the Voter History List (VHL). The 2021 CSV file, downloaded from ELECT on 12-11-2021, gives 153,218 voters as compared to 152,166 given by the VHL data. Why the discrepancies? Note that the VHL is counting people, and the CSV is counting votes cast in the races for President(2020)/Gov(2021), but the numbers should still be roughly similar between the two sources. Also the CSV “Total Vote” field should be including overvotes, write-ins, etc so that is not the source of the discrepancies. Furthermore, the 11-06-2021 VHL data file is identical to the VHL datafile downloaded on 12-14-2021, so there is no missing data from the VHL file for the 2021 election. Finally, note that by definition the Voter History List information will undercount the number of voters that participated in the 2020 election, because voters that have been removed from the registered voter list in between the end of the 2020 election period and when the file was downloaded (11-6-2021) will have had their corresponding records deleted from the VHL.

According to the CSV file hosted on the ELECT servers and downloaded on 11-30-2020, the number of votes cast in Fairfax County was 601,243 (corrected) 487232, which is significantly different than the number (589282) generated from the VHL. The 2021 CSV file, downloaded from ELECT on 12-11-2021, give 441262 voters as compared to 439344 given by the VHL data. Why the discrepancies?

According to the CSV file hosted on the ELECT servers and downloaded on 11-30-2020, the number of votes cast in Loudoun County was 224,976 (corrected) 111655, which is significantly different than the number (220758) generated from the VHL. The 2021 CSV file, downloaded from ELECT on 12-11-2021, give 161793 voters as compared to 161449 given by the VHL data. Why the discrepancies?

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

2021 VA Election Fingerprints

I finally had some time to put this together.

For additional background information, see here, here and here. As a reminder and summary, according to the published methods in the USAID funded National Academy of Sciences paper (here) that I based this work off of, an ideal “fair” election should look like one or two (depending on how split the electorate is) clean, compact Gaussian distributions (or “bulls-eye’s”). Other structural artifacts, while not conclusive, can be evidence and indicators of election irregularities. One such indicator with an attributed cause is that of a highly directional linear streaking, which implies an incremental fraud and linear correlation. Another known and attributed indicator is that of large distinct and extreme peaks near 100% or 0% votes for the candidate (the vertical axis) that are disconnected from the main Gaussian lobe which the authors label a sign of “extreme fraud”. In general, for free and fair elections, we expect these 2D histograms to show a predominantly uncorrelated relationship between the variables of “% Voter Turnout” (x-axis) and “% Vote Share” (y-axis).

The source data for this analysis comes directly from the VA Department of Elections servers, and was downloaded shortly after the conclusion and certification of the 2021 election results on 12/11/2021 (results file) and 12/12/2021 (turnout file). A link to the current version of these files, hosted by ELECT is here: https://apps.elections.virginia.gov/SBE_CSV/ELECTIONS/ELECTIONRESULTS/2021/2021%20November%20General%20.csv and https://apps.elections.virginia.gov/SBE_CSV/ELECTIONS/ELECTIONTURNOUT/Turnout-2021%20November%20General%20.csv. The files actually used for this analysis, as downloaded from the ELECT servers on the dates mentioned are posted at the end of this article.

Note that even though the republican (Youngkin) won in VA, the y-axis of these plots presented here was computed as the % vote share for the democratic candidate (McCauliffe) in order to more easily compare with the 2020 results. I can produce Yougkin vote share % versions as well if people are interested, and am happy to do so.

While the 2021 election fingerprints look to have less correlations between the variables as compared to 2020 data, they still look very non-gaussian and concerning. While there is no clearly observable “well-known” artifacts as called out in the NAS paper, there is definitely something irregular about the Virginia 2021 election data. Specifically, I find the per-precinct absentee [mail-in + post-election + early-in-person] plot (Figure 6) interesting as there is a diffuse background as well as a linearly correlated set of virtual precincts that show low turnout but very high vote share for the democratic candidate.

One of the nice differences about 2021 VA data is that they actually identified the distinctions between mail-in, early-in-person, and post-election vote tallies in the CAP’s this year. I have broken out the individual sub-groups as well and we can see that the absentee early-in-person (Figure 9) has a fairly diffuse distribution, while the absentee mail-in (Figure 7) and absentee post-election (Figure 8) ballots show a very high McAuliffe Vote %, and what looks to be a linear correlation.

For comparison I’ve also included the 2020 fingerprints. All of the 2020 fingerprints have been recomputed using the exact same MATLAB source code that processed the 2021 data. The archive date of the “2020 November General.csv” and “Turnout 2020 November General.csv” files used was 11/30/2020.

I welcome any and all independent reviews or assistance in making and double checking these results, and will gladly provide all collated source data and MATLAB code to anyone who is interested.

Figure 1 : VA 2021 Per locality, absentee (CAP) + physical precincts

Figure 2 : VA 2021 Per locality, physical precincts only:

Figure 3 : VA 2021 Per locality, absentee precincts only:

Figure 4 : VA 2021 Per precinct, absentee (CAP) + physical precincts:

Figure 5 : VA 2021 Per precinct, physical precincts only:

Figure 6 : VA 2021 Per precinct, absentee (CAP) precincts only:

Figure 7 : VA 2021 Per precinct, CAP precincts, mail-in ballots only:

Figure 8 : VA 2021 Per precinct, CAP precincts, post-election ballots only:

Figure 9 : VA 2021 Per precinct, CAP precincts, early-in-person ballots only:

Comparison to VA 2020 Fingerprints

Figure 10 : VA 2020 Per locality, absentee (CAP) + physical precincts:

Figure 11 : VA 2020 Per locality, physical precincts only:

Figure 12 : VA 2020 Per locality, absentee precincts only:

Figure 13 : VA 2020 Per precinct, absentee (CAP) + physical precincts:

Figure 14 : VA 2020 Per precinct, physical precincts only:

Figure 15 : VA 2020 Per precinct, absentee (CAP) precincts only:

Source Data Files:

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical Uncategorized

Vanishing Voter ID’s in sequential 2021 DAL files

During the 2021 election I archived multiple versions of the Statewide Daily Absentee List (DAL) files as produced by the VA Department of Elections (ELECT). As the name implies, the DAL files are a daily produced official product from ELECT that accumulates data representing the state of absentee votes over the course of the election. i.e. The data that exists in a DAL file produced on Tuesday morning should be contained in the DAL file produced on the following Wednesday along with any new entries from the events of Tuesday, etc.

Therefore, it is expected that once a Voter ID number is listed in the DAL file during an election period, subsequent DAL files *should* include a record associated with that voter ID. The status of that voter and the absentee ballot might change, but the records of the transactions during the election should still be present. I have confirmed that this is the expected behavior via discussions with multiple former and previous VA election officials.

Stepping through the snapshots of collected 2021 DAL files in chronological order, we can observe Voter IDs that mysteriously “vanish” from the DAL record. We can do this by simply mapping the existence/non-existence of unique Voter ID numbers in each file. The plot below in Figure 1 is the counts of the number of observed “vanishing” ID numbers as we move from file to file. The total number of vanishing ID numbers is 429 over the course of the 2021 election. Not a large number. But it’s 429 too many. I can think of no legitimate reason that this should occur.

Now an interesting thing to do, is to look at a few examples of how these issues manifest themselves in the data. Note that I’m hiding the personally identifiable information from the DAL file records in the screenshots below, BTW.

The first example in the screenshot below is an issue where the voter in question has a ballot that is in the “APPROVED” and “ISSUED” state, meaning that they have submitted a request for a ballot and that the ballot has been sent out. The record for this voter ID is present in the DAL file up until Oct 14th 2021, after which it completely vanishes from the DAL records. This voter ID is also not present in the RVL or VHL downloaded from the state on 11/06/2021.

This voter was apparently issued a real, live, ballot for 2021 and then was subsequently removed from the DAL and (presumably) the voter rolls + VERIS on or around the 14th Oct according to the DAL snapshots.  What happened to that ballot? What happened to the record of that ballot? The only public record of that ballot even existing, let alone the fact that it was physically issued and mailed out, was erased when the Voter ID was removed from DAL/RVL/VHL records.  Again, this removal happened in the middle of an election where that particular voter had already been issued a live ballot!

A few of these IDs actually “reappear” in the DAL records.  ID “230*****” is one example, and a screenshot of its chronological record is below.  The ballot shows as being ISSUED until Oct 14th 2021.  It then disappears from the DAL record completely until the data pull on Oct 24th, where it shows up again as DELETED.  This status is maintained until Nov 6th 2021 when it starts oscillating between “Marked” and “deleted” until it finally lands on “Marked” in the Dec 5 DAL file pull.  The entire time the Application status is in the “Approved” state for this voter ID.  From my discussions with registrars and election officials the “Marked” designation signifies that a ballot has been received by the registrar for that voter and is slated to be tabulated.

I have poked ELECT on twitter (@wwrkds) on this matter to try and get an official response, and submitted questions on this matter to Ashley Coles at ELECT, per the advice of my local board of elections chair. Her response to me is below:

I will update this post as information changes.

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical Uncategorized

In-Person Early Vote records added after the close of Early Voting in VA 2021

Note: there has been an update and follow up to this entry that you can read here.

BLUF: There were 4632 In-Person Early Vote records inserted into the Daily Absentee List (DAL) records after the close of early voting in VA in 2021. There is no plausible explanation as to why these records should have been legitimately added retrospectively that I am aware of.

The RPV and candidates were made aware of this information at the time of its discovery (~Nov 8th), but I specifically held off on publishing this information publicly until the candidates who wanted to contest or perform recounts had a chance to do so and that process was completed.

The Daily Absentee List (DAL) is a view of the status of Absentee and Early Vote ballots that is maintained by the Virginia Department of Elections and is available to qualified individuals, campaigns and organizations doing Get-Out-The-Vote (GOTV) efforts, etc. It is continuously updated over the course of an election, and is useful for tracking the number of Early and Absentee votes and their status as the early voting period is underway. Note that the DAL only tracks the status of early and absentee ballots, not the vote totals.

Through VA RPV candidates and PAC’s that I volunteer with, I was provided access to the DAL data for the 2021 election and I ran daily analysis and statistics on the DAL throughout the early voting period. That access came in the form of a link to a downloadable comma-seperated-value (csv) file from the Dept of Elections website. I downloaded snapshots of the DAL repeatedly over the election period, and I archived and time-stamped all of those downloads.

Important Dates:

  • The first day of Early Voting in VA was Sept 17, 2021.
  • The last day to register to vote in the VA 2021 elections was Oct 12, 2021.
  • The last day to request a by-mail absentee ballot was Oct 22, 2021.
  • The last day of Early Voting in VA was Oct 30, 2021.

Note that individuals can request mail-in absentee ballots prior to this date, but ballots do not get “Issued” and sent to the voter until the candidates and the ballot format has been finalized.

The DAL records are generated via the information in the poll-books at early voting stations, as well as through registrars and other election officials manually updating information with respect to mail-in absentee ballots. When a person is physically checked into an early voting site in order to vote early “On Machine”, their check-in information is updated and viewable (usually by the next day) in the DAL download. The DAL record will have a new entry with “APP_STATUS”=”Approved” and “BALLOT_STATUS”=”On Machine” for the voter when this occurs. The actual content of their ballot remains secret until the votes are counted after the close of the early voting period, when the scanning machines are closed out and their totals are computed and final reports are generated.

For Mail-In Absentee ballots the DAL records begin with the request for an absentee ballot. If the voter is qualified and the request is approved (“APP_STATUS”=”Approved”) a ballot is issued to the voter (“BALLOT_STATUS=”Issued”). When the ballot is returned to the registrar its “BALLOT_STATUS” is updated to “Marked”. When the ballot envelope is opened by elections staff and the ballot is scanned into a scanning machine, the “BALLOT_STATUS” is updated to “Pre-Processed”. The ballot record stays in this state until the early voting period ends and the vote totals are computed.

If a voter who previously requested a mail-in ballot decides to vote early in person, they must either bring their mail-in ballot with them to be spoiled or attest that they have lost or destroyed the ballot. The mail in ballot record is then cancelled and the in-person check-in and DAL records update occurs as above.

In figure 1 below we can see the summary of the DAL entries for VA House District 10 over time that illustrates this process. As time progresses we see a decrease in the amount of “Issued” ballots as well as corresponding changes in the “Marked” and “Pre-Processed” totals. Independently we see the in-person “On Machine” totals increasing until it stops changing after the early voting period ends (Oct 30th). Note that there is approximately a 1-2 day lag in my ability to observe these changes which is created from the combination of the discrete times that the DAL report file is generated on the VA servers, as well as the discrete times that I was polling the url link to grab these updated files. The “Issued”, “Marked” and “Pre-Processed” totals continue to be adjusted as the registrars office receives and processes mail in ballots.

Figure 1

Notice that the “OnMachine” trace of figure 1 flat-lines after Nov 1st. This is as expected, as all of the Early Voting sites have been closed up and there are no more people physically walking in, checking in on the poll books, and casting In-Person Early Votes. Note that the the “Day-Of” voting machines and poll-books are kept as separate systems and data records from the Early Vote systems.

As I was constantly producing and reprocessing these plots I noticed something interesting was occurring in various localities and precincts. Figure 2 below shows the same plot from State House District 097 (Hanover County). Everything looks fine until we see an uptick in the total number of “OnMachine” records in the DAL file that was pulled Nov 5 from the VA Dept of State weblink. I have had discussion with multiple elections officials and officers, and I have not yet been able to determine any legitimate reason for this uptick.

Figure 2

To dig in a little further I went back and reprocessed by House Congressional District all of the DAL data. Each of the DAL files has application receipt and ballot receipt dates associated with each “On Machine” entry. These two dates are the same for “On Machine” In Person Early Votes and correspond to the day that the person to cast their vote. I plotted all of the ballot receipt dates for each category of countable ballots (“On Machine”, “Marked”, “Pre-Processed” or “FWAB”) as well as the Application receive date of “Issued” ballots for each pulled DAL file and stitched these sequences together into movie sequences. The result for State House District 097 is shown below. Notice in the last few frames of the movie, corresponding to the bump in figure 2 above, we see that the DAL file gets injected with approximately 750 entries that have a “back-dated” receipt date of Oct 15 and the entire “On Machine” curve jumps accordingly. The still frames corresponding to the DAL files I downloaded at 2021-11-04 21:15:42 and 2021-11-05 09:44:23 are shown side by side in the gallery below the embedded movie.

We also see this large injection of backdated records in HD055 (also Hanover County) during the same DAL file update. But in this case the backdated ballots have a ballot receipt date that pre-dates the start of early voting. I’m not quite sure how people could have walked into an early voting precinct and checked into a poll book before the early voting precinct ever was setup or opened. The video sequence and the still images from 2021-11-04 21:15:42 and 2021-11-05 09:44:23 are again presented below.

Video of 055

If we try to look at all of the DAL file updates since Oct 31 (exclusive, to allow margin for data lag) we find that as of this writing there are 4632 new “Approved” and “On Machine” records that have been inserted into the DAL data since the close of early voting. Even more interesting is the distribution of the BALLOT_RECEIPT_DATE that has been applied to these additional records. We can see the large spike attributed to Oct 15th in Hanover County that originally caught my attention, but we also see a large number of dates that are before or after the early voting period, with an underlying exponential distribution during the valid early voting period.

There is no plausible legitimate explanation for these additions to the DAL records after the fact. This is unlikely to be a clerical or human error, as the syncing of “On Machine” records to the DAL database happens near realtime via the poll-book systems. This is not an isolated poll-book that wasn’t shut-down or syncing properly, as it is occurring throughout multiple localities and precincts. There is no explanation or justification for why these insertions would happen nearly a week after the end of the early voting period. There is no explanation or justification as to why the BALLOT_RECEIPT_DATE entries are outside of the legitimate early voting period.

I give the tallied distribution of these injected DAL records, by date of injection, by Locality, and by Precinct in the csv files and tables below for reference.

DAL Filename (Download Date & Time)Number Of Injected “On Machine” DAL Records
Daily_Absentee_List_20211101T235927.csv24
Daily_Absentee_List_20211102T235655.csv37
Daily_Absentee_List_20211103T222822.csv26
Daily_Absentee_List_20211104T211542.csv578
Daily_Absentee_List_20211105T215045.csv2039
Daily_Absentee_List_20211106T232716.csv1928
Locality NameNumber Of Injected “On Machine” DAL Records
LOUDOUN COUNTY1515
HANOVER COUNTY1310
ARLINGTON COUNTY187
CHESAPEAKE CITY99
HENRICO COUNTY73
MONTGOMERY COUNTY67
CHESTERFIELD COUNTY59
YORK COUNTY46
TAZEWELL COUNTY45
FAIRFAX COUNTY37
KING GEORGE COUNTY37
WASHINGTON COUNTY35
GLOUCESTER COUNTY34
SHENANDOAH COUNTY34
CHARLOTTESVILLE CITY33
BOTETOURT COUNTY30
PULASKI COUNTY30
FREDERICKSBURG CITY29
GILES COUNTY29
NORTHAMPTON COUNTY29
PRINCE WILLIAM COUNTY29
ROCKINGHAM COUNTY28
NEWPORT NEWS CITY26
NORFOLK CITY26
WINCHESTER CITY24
FREDERICK COUNTY23
CAROLINE COUNTY21
ROANOKE COUNTY21
VIRGINIA BEACH CITY21
RUSSELL COUNTY19
STAFFORD COUNTY19
SUFFOLK CITY19
MANASSAS CITY18
CAMPBELL COUNTY17
FAUQUIER COUNTY17
RICHMOND CITY16
LANCASTER COUNTY15
ORANGE COUNTY15
WILLIAMSBURG CITY15
SPOTSYLVANIA COUNTY14
COLONIAL HEIGHTS CITY13
MECKLENBURG COUNTY13
PRINCE EDWARD COUNTY13
PRINCE GEORGE COUNTY13
WARREN COUNTY13
APPOMATTOX COUNTY12
AUGUSTA COUNTY12
LYNCHBURG CITY12
ISLE OF WIGHT COUNTY11
JAMES CITY COUNTY11
WISE COUNTY11
GOOCHLAND COUNTY10
PORTSMOUTH CITY10
ACCOMACK COUNTY9
ALBEMARLE COUNTY9
BRISTOL CITY9
ESSEX COUNTY9
HALIFAX COUNTY9
LOUISA COUNTY9
ROCKBRIDGE COUNTY9
CARROLL COUNTY8
DINWIDDIE COUNTY8
HARRISONBURG CITY8
ALEXANDRIA CITY7
AMELIA COUNTY7
FALLS CHURCH CITY7
GREENSVILLE COUNTY7
HAMPTON CITY7
HOPEWELL CITY7
KING WILLIAM COUNTY7
HENRY COUNTY6
LUNENBURG COUNTY6
MATHEWS COUNTY6
NELSON COUNTY6
NORTHUMBERLAND COUNTY6
ROANOKE CITY6
AMHERST COUNTY5
BEDFORD COUNTY5
CHARLES CITY COUNTY5
CLARKE COUNTY5
EMPORIA CITY5
FLUVANNA COUNTY5
FRANKLIN COUNTY5
GRAYSON COUNTY5
GREENE COUNTY5
PITTSYLVANIA COUNTY5
POWHATAN COUNTY5
ALLEGHANY COUNTY4
BATH COUNTY4
BUCHANAN COUNTY4
BUCKINGHAM COUNTY4
CHARLOTTE COUNTY4
CUMBERLAND COUNTY4
RAPPAHANNOCK COUNTY4
WYTHE COUNTY4
BRUNSWICK COUNTY3
DICKENSON COUNTY3
FAIRFAX CITY3
FRANKLIN CITY3
MIDDLESEX COUNTY3
POQUOSON CITY3
RADFORD CITY3
STAUNTON CITY3
SUSSEX COUNTY3
WAYNESBORO CITY3
WESTMORELAND COUNTY3
CULPEPER COUNTY2
DANVILLE CITY2
FLOYD COUNTY2
KING & QUEEN COUNTY2
NOTTOWAY COUNTY2
PATRICK COUNTY2
PETERSBURG CITY2
SALEM CITY2
SOUTHAMPTON COUNTY2
BLAND COUNTY1
COVINGTON CITY1
HIGHLAND COUNTY1
LEXINGTON CITY1
MADISON COUNTY1
NORTON CITY1
SMYTH COUNTY1
Locality + Precinct NameNumber Of Injected “On Machine” DAL Records
HANOVER COUNTY 704 – ELMONT 055667
HANOVER COUNTY 602 – LEE DAVIS 097635
LOUDOUN COUNTY 416 – HAMILTON 033445
LOUDOUN COUNTY 214 – SUGARLAND NORTH 034349
LOUDOUN COUNTY 708 – SENECA 034320
LOUDOUN COUNTY 628 – MOOREFIELD STATION 03299
LOUDOUN COUNTY 319 – JOHN CHAMPE 08723
LOUDOUN COUNTY 313 – PINEBROOK 08718
LOUDOUN COUNTY 112 – FREEDOM 08717
TAZEWELL COUNTY 209 – JEFFERSONVILLE 00314
GILES COUNTY 201 – PEARISBURG 01213
SHENANDOAH COUNTY 401 – WOODSTOCK 01513
KING GEORGE COUNTY 401 – SHILOH 09912
LOUDOUN COUNTY 107 – LITTLE RIVER 06712
LOUDOUN COUNTY 122 – HUTCHISON FARM 08712
LOUDOUN COUNTY 126-GOSHEN POST 08712
LOUDOUN COUNTY 316 – CREIGHTON’S CORNER 01012
ARLINGTON COUNTY 010 – WILSON 04811
ARLINGTON COUNTY 019 – ROSSLYN 04811
KING GEORGE COUNTY 201 – MONROE 09911
PULASKI COUNTY 401 – MASSIE 00711
ARLINGTON COUNTY 018 – PARK LANE 04710
NORTHAMPTON COUNTY 401 – PRECINCT 4-1 10010
RUSSELL COUNTY 501 – WEST LEBANON 00410
ARLINGTON COUNTY 041 – NAVY LEAGUE 0479
NORTHAMPTON COUNTY 101 – PRECINCT 1-1 1009
WASHINGTON COUNTY 302 – SOUTH ABINGDON 0049
ARLINGTON COUNTY 009 – COLUMBIA 0498
ARLINGTON COUNTY 048 – AUSA 0478
CHESAPEAKE CITY 055 – GEORGETOWN EAST 0778
FREDERICKSBURG CITY 401 – PRECINCT 1 – DISTRICT FOUR 0288
KING GEORGE COUNTY 101 – COURTHOUSE 0998
LOUDOUN COUNTY 114 – DULLES SOUTH 0678
LOUDOUN COUNTY 408 – EVERGREEN 0108
WILLIAMSBURG CITY 002 – MATOAKA 0938
WINCHESTER CITY 101 – MERRIMANS 0298
ARLINGTON COUNTY 004 – BALLSTON 0477
ARLINGTON COUNTY 016 – LYON VILLAGE 0487
ARLINGTON COUNTY 026 – FILLMORE 0497
ARLINGTON COUNTY 040 – VIRGINIA SQUARE 0477
BOTETOURT COUNTY 101 – DALEVILLE 0197
BOTETOURT COUNTY 406 – FINCASTLE 0197
CHESAPEAKE CITY 053 – FAIRWAYS 0777
GLOUCESTER COUNTY 302 – ROANES 0987
LOUDOUN COUNTY 121 – TOWN HALL 0877
LOUDOUN COUNTY 318 – MADISON’S TRUST 0107
LOUDOUN COUNTY 509 – TOLBERT 0107
LOUDOUN COUNTY 623 – WELLER 0327
MONTGOMERY COUNTY 202 – PRECINCT B-2 0087
MONTGOMERY COUNTY 203 – PRECINCT B-3 0077
PULASKI COUNTY 501 – ROBINSON 0077
YORK COUNTY 401 – HARWOODS MILL 0937
YORK COUNTY 402 – DARE 0967
CHARLOTTESVILLE CITY 102 – CLARK 0576
CHARLOTTESVILLE CITY 302 – JOHNSON 0576
CHESAPEAKE CITY 008 – SOUTH NORFOLK RECREATION 0776
CHESAPEAKE CITY 012 – GEORGETOWN 0776
FREDERICKSBURG CITY 201 – PRECINCT 1 – DISTRICT TWO 0286
GLOUCESTER COUNTY 401 – HAYES 0986
LOUDOUN COUNTY 124 – LIBERTY 0876
LOUDOUN COUNTY 320 – STONE HILL 0876
LOUDOUN COUNTY 409 – CLARKES GAP 0336
LOUDOUN COUNTY 817 – SANDERS CORNER 0326
MATHEWS COUNTY 003 – PIANKATANK 0986
NORFOLK CITY 211 – CHRYSLER MUSEUM 0896
TAZEWELL COUNTY 301 – CEDAR BLUFF 0036
TAZEWELL COUNTY 401 – RICHLANDS 0036
WILLIAMSBURG CITY 001 – STRYKER 0936
YORK COUNTY 201 – COVENTRY 0936
ACCOMACK COUNTY 502 – RUE 1005
ARLINGTON COUNTY 053 – MET PARK 0495
CAMPBELL COUNTY 402 – COURT HOUSE 0595
CAROLINE COUNTY 202 – SOUTH MADISON 0555
CAROLINE COUNTY 501 – WEST MATTAPONI 0555
CHESAPEAKE CITY 018 – INDIAN RIVER 0775
COLONIAL HEIGHTS CITY 002 – SECOND 0665
ESSEX COUNTY 101 – GREATER TAPPAHANNOCK 0985
FREDERICKSBURG CITY 101 – PRECINCT 1 – DISTRICT ONE 0885
LANCASTER COUNTY 401 – PRECINCT 4-1 0995
LOUDOUN COUNTY 119 – ARCOLA 0875
LOUDOUN COUNTY 322-BUFFALO TRAIL 0875
LOUDOUN COUNTY 616 – EAGLE RIDGE 0325
MANASSAS CITY 003 – METZ 0505
MANASSAS CITY 005 – BALDWIN 0505
MONTGOMERY COUNTY 701 – PRECINCT G-1 0125
TAZEWELL COUNTY 501 – SPRINGVILLE 0035
WASHINGTON COUNTY 101 – EAST ABINGDON 0045
WASHINGTON COUNTY 301 – WATAUGA 0055
WINCHESTER CITY 201 – VIRGINIA AVENUE 0295
YORK COUNTY 302 – YORKTOWN 0965
ARLINGTON COUNTY 008 – HUME 0494
ARLINGTON COUNTY 017 – OVERLEE KNOLLS 0474
ARLINGTON COUNTY 025 – ARLINGTON FOREST 0474
ARLINGTON COUNTY 029 – DOMINION HILLS 0474
ARLINGTON COUNTY 042 – SHIRLINGTON 0454
ARLINGTON COUNTY 046 – CENTRAL 0474
ARLINGTON COUNTY 054 – GARFIELD PARK 0474
BOTETOURT COUNTY 201 – BLUE RIDGE 0194
CHARLOTTESVILLE CITY 101 – Key Recreation 0574
CHARLOTTESVILLE CITY 201 – CARVER 0574
CHESAPEAKE CITY 029 – TANGLEWOOD 0774
CHESAPEAKE CITY 042 – PARKWAYS 0774
CHESAPEAKE CITY 059 – CLEARFIELD 0784
CHESAPEAKE CITY 065 – WATERWAY II 0214
CHESTERFIELD COUNTY 308 – SOUTH MANCHESTER 0274
FREDERICKSBURG CITY 301 – PRECINCT 1 – DISTRICT THREE 0884
FREDERICKSBURG CITY 402 – PRECINCT 2 – DISTRICT FOUR 0884
GILES COUNTY 103 – NARROWS 0124
GLOUCESTER COUNTY 101 – HARCUM 0984
GLOUCESTER COUNTY 201 – COURTHOUSE 0984
HENRICO COUNTY 106 – HERMITAGE 0724
HENRICO COUNTY 303 – INNSBROOK 0724
KING GEORGE COUNTY 301 – DAHLGREN 0994
LANCASTER COUNTY 201 – PRECINCT 2-1 0994
LOUDOUN COUNTY 123 – CARDINAL RIDGE 0674
LOUDOUN COUNTY 308 – ST LOUIS 0104
LOUDOUN COUNTY 420 – RIVER CREEK 0104
LOUDOUN COUNTY 813 – SELDENS LANDING 0324
MONTGOMERY COUNTY 101 – PRECINCT A-1 0084
MONTGOMERY COUNTY 102 – PRECINCT A-2 0124
MONTGOMERY COUNTY 204 – PRECINCT B-4 0074
MONTGOMERY COUNTY 602 – PRECINCT F-2 0124
ORANGE COUNTY 301 – THREE WEST 0304
PRINCE GEORGE COUNTY 201 – BLAND 0644
SHENANDOAH COUNTY 503 – TOMS BROOK 0154
WINCHESTER CITY 402 – ROLLING HILLS 0294
AMELIA COUNTY 301 – NUMBER THREE 0613
APPOMATTOX COUNTY 202 – SPOUT SPRING 0593
APPOMATTOX COUNTY 401 – COURTHOUSE 0593
ARLINGTON COUNTY 007 – CHERRYDALE 0483
ARLINGTON COUNTY 020 – THRIFTON 0483
ARLINGTON COUNTY 023 – WESTOVER 0473
ARLINGTON COUNTY 027 – JEFFERSON 0493
ARLINGTON COUNTY 028 – WAKEFIELD 0493
ARLINGTON COUNTY 035 – MADISON 0483
ARLINGTON COUNTY 036 – MARSHALL 0483
ARLINGTON COUNTY 039 – ASHLAWN 0473
ARLINGTON COUNTY 044 – DAWSON TERRACE 0483
ARLINGTON COUNTY 049 – MONROE 0473
ARLINGTON COUNTY 050 – CRYSTAL PLAZA 0483
BOTETOURT COUNTY 205 – ORCHARDS 0173
BRISTOL CITY 002 – SECOND WARD 0053
BRISTOL CITY 003 – THIRD WARD 0053
CHARLOTTESVILLE CITY 202 – WALKER 0573
CHARLOTTESVILLE CITY 301 – BENJAMIN TONSLER 0573
CHARLOTTESVILLE CITY 303 – BUFORD 0573
CHESAPEAKE CITY 005 – CRESTWOOD 0773
CHESAPEAKE CITY 016 – HICKORY GROVE 0783
CHESAPEAKE CITY 022 – NORFOLK HIGHLANDS 0773
CHESAPEAKE CITY 056 – GREEN TREE 0773
CHESAPEAKE CITY 057 – CYPRESS 0773
CHESTERFIELD COUNTY 109 – ELIZABETH SCOTT 0623
CUMBERLAND COUNTY 301 – PRECINCT 3 0613
DINWIDDIE COUNTY 402 – MCKENNEY 0633
FALLS CHURCH CITY 001 – FIRST WARD 0533
FREDERICK COUNTY 101 – MERRIMANS 0293
FREDERICK COUNTY 203 – REDLAND 0293
GILES COUNTY 102 – RICH CREEK 0123
GILES COUNTY 302 – PEMBROKE 0123
GLOUCESTER COUNTY 301 – WHITE MARSH 0983
GRAYSON COUNTY 203 – INDEPENDENCE 0053
HARRISONBURG CITY 305 – MASSANETTA SPRINGS 0253
HENRICO COUNTY 308 – RIVERS EDGE 0563
HENRICO COUNTY 514 – ROLFE 0703
HOPEWELL CITY 301 – WARD THREE 0623
LANCASTER COUNTY 101 – PRECINCT 1-1 0993
LOUDOUN COUNTY 108 – MERCER 0873
LOUDOUN COUNTY 118 – MOOREFIELD 0323
LOUDOUN COUNTY 120 – LUNSFORD 0873
LOUDOUN COUNTY 201 – BERRYVILLE 0333
LOUDOUN COUNTY 219 – GALILEE CHURCH 0323
LOUDOUN COUNTY 321 – BRAMBLETON MIDDLE 0103
LOUDOUN COUNTY 402 – WATERFORD 0333
LOUDOUN COUNTY 502 – EAST LEESBURG 0103
LOUDOUN COUNTY 505 – COOL SPRING 0103
LOUDOUN COUNTY 506 – BRANDON PARK 0103
LOUDOUN COUNTY 620 – RUSSELL BRANCH 0323
LOUDOUN COUNTY 627 – ASHBROOK 0323
LOUDOUN COUNTY 808 – STONE BRIDGE 0323
LOUDOUN COUNTY 814 – NEWTON – LEE 0323
MECKLENBURG COUNTY 903 – CLARKSVILLE 0613
MONTGOMERY COUNTY 301 – PRECINCT C-1 0083
MONTGOMERY COUNTY 304 – PRECINCT C-4 0083
MONTGOMERY COUNTY 405 – PRECINCT D-5 0073
MONTGOMERY COUNTY 501 – PRECINCT E-1 0073
MONTGOMERY COUNTY 601 – PRECINCT F-1 0123
NORTHAMPTON COUNTY 201 – PRECINCT 2-1 1003
NORTHAMPTON COUNTY 501 – PRECINCT 5-1 1003
NORTHUMBERLAND COUNTY 501 – 5A 0993
PORTSMOUTH CITY 001 – EMANUEL A. M. E. CHURCH 0803
PRINCE EDWARD COUNTY 101 – FARMVILLE 0603
PRINCE EDWARD COUNTY 701 – WEST END 0603
PULASKI COUNTY 102 – NEW RIVER 0123
PULASKI COUNTY 103 – WEST CLOYD 0073
ROANOKE COUNTY 507 – HUNTING HILLS 0173
ROCKINGHAM COUNTY 202 – EDOM 0263
ROCKINGHAM COUNTY 503 – MCGAHEYSVILLE 0583
SHENANDOAH COUNTY 103 – NEW MARKET 0153
SHENANDOAH COUNTY 302 – EDINBURG 0153
SHENANDOAH COUNTY 303 – ST LUKE 0153
SHENANDOAH COUNTY 601 – STRASBURG 0153
SPOTSYLVANIA COUNTY 101 – PRECINCT 1 – DISTRICT ONE 0883
SPOTSYLVANIA COUNTY 505 – BROCK 0543
TAZEWELL COUNTY 103 – MUNDY TOWN 0033
TAZEWELL COUNTY 303 – PAINT LICK 0033
WARREN COUNTY 202 – LINDEN 0183
WASHINGTON COUNTY 402 – MEADOWVIEW 0053
WASHINGTON COUNTY 502 – DAMASCUS 0053
WISE COUNTY 202 – WISE 0013
WISE COUNTY 302 – EAST STONE GAP 0013
YORK COUNTY 101 – QUEENS LAKE 0963
YORK COUNTY 103 – MAGRUDER 0963
YORK COUNTY 303 – EDGEHILL 0933
YORK COUNTY 502 – BETHEL 0913
ALBEMARLE COUNTY 101 – ZION 0562
ALLEGHANY COUNTY 101 – ARRITT 0192
ALLEGHANY COUNTY 701 – DISTRICT 2 0192
AMELIA COUNTY 501 – NUMBER FIVE 0612
AMHERST COUNTY 201 – COURT HOUSE 0242
AMHERST COUNTY 501 – MADISON 0232
APPOMATTOX COUNTY 102 – PAMPLIN 0592
APPOMATTOX COUNTY 301 – US  460 0592
ARLINGTON COUNTY 002 – ASHTON HEIGHTS 0472
ARLINGTON COUNTY 006 – CRYSTAL CITY 0482
ARLINGTON COUNTY 014 – CLARENDON 0472
ARLINGTON COUNTY 015 – LYON PARK 0472
ARLINGTON COUNTY 024 – WOODLAWN 0482
ARLINGTON COUNTY 030 – GLEBE 0492
ARLINGTON COUNTY 032 – OAKRIDGE 0452
ARLINGTON COUNTY 034 – YORKTOWN 0482
ARLINGTON COUNTY 038 – ARLINGTON VIEW 0492
ARLINGTON COUNTY 045 – BUCKINGHAM 0472
ARLINGTON COUNTY 047 – FOUR MILE RUN 0492
AUGUSTA COUNTY 301 – FORT DEFIANCE 0252
AUGUSTA COUNTY 501 – GREENVILLE 0242
AUGUSTA COUNTY 801 – DOOMS 0252
BATH COUNTY 201 – HOT SPRINGS 0242
BOTETOURT COUNTY 301 – 3A 0992
BOTETOURT COUNTY 302 – MILL CREEK 0192
BRISTOL CITY 004 – FOURTH WARD 0052
BRUNSWICK COUNTY 501 – TOTARO 0752
BUCHANAN COUNTY 403 – SOUTH GRUNDY 0032
BUCKINGHAM COUNTY 101 – PRECINCT 1 0612
BUCKINGHAM COUNTY 302 – MT PLEASANT 0602
CAMPBELL COUNTY 201 – WALKER 0222
CAMPBELL COUNTY 601 – KINGS 0222
CAMPBELL COUNTY 602 – CONCORD 0592
CAROLINE COUNTY 102 – SPARTA 0992
CAROLINE COUNTY 201 – NORTH MADISON 0552
CAROLINE COUNTY 302 – WOODFORD 0542
CARROLL COUNTY 105 – FANCY GAP 0062
CARROLL COUNTY 201 – HILLSVILLE B 0062
CHARLES CITY COUNTY 101 – PRECINCT 1-1 0702
CHARLES CITY COUNTY 301 – PRECINCT 3-1 0702
CHARLOTTE COUNTY 702 – BACON/SAXE 0602
CHARLOTTESVILLE CITY 401 – VENABLE 0572
CHESAPEAKE CITY 010 – OSCAR SMITH 0772
CHESAPEAKE CITY 014 – GRASSFIELD 0782
CHESAPEAKE CITY 015 – GREENBRIER MIDDLE SCHOOL 0772
CHESAPEAKE CITY 023 – OAK GROVE 0782
CHESAPEAKE CITY 024 – OAKLETTE 0772
CHESAPEAKE CITY 031 – CARVER SCHOOL 0772
CHESAPEAKE CITY 032 – PROVIDENCE 0772
CHESAPEAKE CITY 034 – HICKORY MIDDLE SCHOOL 0782
CHESAPEAKE CITY 043 – PLEASANT CROSSING 0782
CHESAPEAKE CITY 201 – BARTLETT 0642
CHESTERFIELD COUNTY 202 – SUTHERLAND 0632
CHESTERFIELD COUNTY 204 – COURTS BLDG 0642
CHESTERFIELD COUNTY 214 – LONGDALE 0742
CHESTERFIELD COUNTY 304 – WINFREES STORE 0632
CHESTERFIELD COUNTY 316 – SPRING RUN 0272
CHESTERFIELD COUNTY 319 – MAGNOLIA 0652
CHESTERFIELD COUNTY 404 – PROVIDENCE 0272
CHESTERFIELD COUNTY 501 – FIFTH WARD FIRST PRECINCT 0632
CHESTERFIELD COUNTY 518 – WHITLOCKS 0702
CLARKE COUNTY 401 – MINERAL 0562
COLONIAL HEIGHTS CITY 001 – FIRST 0662
COLONIAL HEIGHTS CITY 004 – FOURTH 0662
COLONIAL HEIGHTS CITY 101 – WARD ONE 0622
DINWIDDIE COUNTY 202 – SUTHERLAND 0632
DINWIDDIE COUNTY 303 – LITTLE ZION 0632
EMPORIA CITY 601 – DISTRICT 6 0752
ESSEX COUNTY 201 – NORTH 0982
FAIRFAX CITY 040 – VIRGINIA SQUARE 0472
FAIRFAX COUNTY 318 – WESTMORELAND 0482
FAIRFAX COUNTY 501 – BAILEYS #1 0382
FAIRFAX COUNTY 502 – BENTONVILLE 0152
FALLS CHURCH CITY 003 – THIRD WARD 0532
FAUQUIER COUNTY 101 – ZION 0562
FAUQUIER COUNTY 404 – SPRINGS VALLEY 0182
FAUQUIER COUNTY 501 – THE PLAINS 0182
FLUVANNA COUNTY 101 – PALMYRA 0582
FRANKLIN COUNTY 415 – SKIPWITH 0732
FREDERICK COUNTY 401 – CARPERS VALLEY 0102
FREDERICK COUNTY 503 – CANTERBURG 0292
FREDERICK COUNTY 603 – GREENWOOD 0332
GILES COUNTY 301 – EGGLESTON 0122
GILES COUNTY 303 – NEWPORT 0122
GLOUCESTER COUNTY 202 – BOTETOURT 0982
GLOUCESTER COUNTY 402 – SARAHS CREEK 0982
GLOUCESTER COUNTY 501 – ACHILLES 0982
GOOCHLAND COUNTY 202 – SANDY HOOK 0652
GOOCHLAND COUNTY 402 – CENTERVILLE 0562
GREENE COUNTY 201 – RUCKERSVILLE 0582
GREENSVILLE COUNTY 202 – PRECINCT 2-B 0752
GREENSVILLE COUNTY 402 – PRECINCT 4-B 0752
HALIFAX COUNTY 403 – CENTER 0602
HALIFAX COUNTY 801 – SOUTH BOSTON 0602
HAMPTON CITY 103 – MAGRUDER 0962
HAMPTON CITY 211 – PALMER 0952
HANOVER COUNTY 408 – LAUDERDALE 0722
HENRICO COUNTY 102 – DUMBARTON 0722
HENRICO COUNTY 105 – GREENDALE 0722
HENRICO COUNTY 110 – JOHNSON 0732
HENRICO COUNTY 215 – MAPLEWOOD 0742
HENRICO COUNTY 216 – MOODY 0742
HENRICO COUNTY 301 – CAUSEWAY 0562
HENRICO COUNTY 302 – CEDARFIELD 0732
HENRICO COUNTY 304 – JACKSON DAVIS 0732
HENRICO COUNTY 402 – CENTERVILLE 0562
HENRICO COUNTY 504 – DONAHOE 0742
HENRICO COUNTY 506 – EANES 0702
HENRICO COUNTY 508 – HIGHLAND SPRINGS 0742
HENRICO COUNTY 516 – SULLIVANS 0702
HENRY COUNTY 505 – DYERS STORE 0162
HOPEWELL CITY 401 – WARD FOUR 0622
ISLE OF WIGHT COUNTY 101 – SMITHFIELD 0642
ISLE OF WIGHT COUNTY 302 – PONS 0642
JAMES CITY COUNTY 403 – STONEHOUSE C 0962
KING WILLIAM COUNTY 101 – HARTWOOD 0882
KING WILLIAM COUNTY 202 – COURTHOUSE 0972
LOUDOUN COUNTY 117 – CARTER 0872
LOUDOUN COUNTY 207 – RIVER BEND 0342
LOUDOUN COUNTY 208 – ALGONKIAN 0322
LOUDOUN COUNTY 217 – SOUTH BANK 0342
LOUDOUN COUNTY 218 – UNIVERSITY CENTER 0322
LOUDOUN COUNTY 301 – PURCELLVILLE 0332
LOUDOUN COUNTY 302 – ROUND HILL 0332
LOUDOUN COUNTY 309 – ALDIE 0102
LOUDOUN COUNTY 310 – MOUNTAIN VIEW 0332
LOUDOUN COUNTY 311 – ROUND HILL ELEMENTARY 0332
LOUDOUN COUNTY 422 – SYCOLIN CREEK 0102
LOUDOUN COUNTY 501 – WEST LEESBURG 0102
LOUDOUN COUNTY 504 – SMARTS MILL 0102
LOUDOUN COUNTY 617 – OAK GROVE 0872
LOUDOUN COUNTY 619 – RIDGETOP 0872
LOUDOUN COUNTY 621 – DOMINION TRAIL 0322
LOUDOUN COUNTY 629 – DISCOVERY 0872
LOUDOUN COUNTY 815 – BELMONT RIDGE 0322
LOUDOUN COUNTY 819 – HERITAGE CHURCH 0322
LOUISA COUNTY 301 – PATRICK HENRY NO 1 0562
LOUISA COUNTY 401 – MINERAL 0562
LYNCHBURG CITY 404 – FOURTH WARD FOURTH PRECINCT 0232
MANASSAS CITY 001 – DEAN 0502
MANASSAS CITY 006 – ROUND 0502
MECKLENBURG COUNTY 202 – BLUESTONE SENIOR HIGH SCHOOL 0612
MECKLENBURG COUNTY 501 – SOUTH HILL 0612
MONTGOMERY COUNTY 103 – PRECINCT A-3 0122
MONTGOMERY COUNTY 201 – LITTLE RIVER 0072
MONTGOMERY COUNTY 403 – PRECINCT D-3 0072
MONTGOMERY COUNTY 502 – PRECINCT E-2 0122
MONTGOMERY COUNTY 702 – PRECINCT G-2 0122
NELSON COUNTY 301 – SHIPMAN 0592
NEWPORT NEWS CITY 102 – STONEY RUN 0942
NEWPORT NEWS CITY 104 – MCINTOSH 0942
NEWPORT NEWS CITY 205 – DEEP CREEK 0942
NEWPORT NEWS CITY 219 – DEER PARK 0952
NEWPORT NEWS CITY 304 – CHESTNUT 0952
NEWPORT NEWS CITY 315 – SEDGEFIELD 0952
NEWPORT NEWS CITY 320 – WATKINS 0952
NORFOLK CITY 306 – LINDENWOOD 0892
NORFOLK CITY 507 – PRETLOW 1002
NORTHAMPTON COUNTY 301 – PRECINCT 3-1 1002
NORTHAMPTON COUNTY 307 – CROSSROADS 0252
NORTHUMBERLAND COUNTY 101 – 1A 0992
ORANGE COUNTY 101 – ONE WEST 0302
ORANGE COUNTY 102 – ONE EAST 0302
ORANGE COUNTY 202 – TWO EAST 0302
PORTSMOUTH CITY 031 – WEST PARK CHURCH OF CHRIST 0802
POWHATAN COUNTY 101 – VERA 0592
PRINCE EDWARD COUNTY 302 – MT PLEASANT 0602
PRINCE EDWARD COUNTY 302 – PRECINCT 3-2 0612
PRINCE GEORGE COUNTY 102 – TEMPLETON 0642
PRINCE GEORGE COUNTY 204 – COURTS BLDG 0642
PRINCE WILLIAM COUNTY 203 – RUBY 0022
PRINCE WILLIAM COUNTY 409 – TYLER 0132
PRINCE WILLIAM COUNTY 513 – LYNNWOOD 0512
PRINCE WILLIAM COUNTY 712 – LEESYLVANIA 0022
PULASKI COUNTY 202 – SOUTH PULASKI 0072
PULASKI COUNTY 301 – DUBLIN 0072
RICHMOND CITY 402 – CRESTVIEW 0732
ROANOKE COUNTY 202 – BURLINGTON 0172
ROANOKE COUNTY 205 – ORCHARDS 0172
ROANOKE COUNTY 503 – CAVE SPRING 0082
ROANOKE COUNTY 504 – OGDEN 0172
ROANOKE COUNTY 506 – MOUNT VERNON 0172
ROCKBRIDGE COUNTY 101 – AIRPORT 0242
ROCKBRIDGE COUNTY 402 – MOUNTAIN VIEW 0242
ROCKINGHAM COUNTY 204 – MT CLINTON 0262
ROCKINGHAM COUNTY 303 – MELROSE 0262
ROCKINGHAM COUNTY 307 – CROSSROADS 0252
ROCKINGHAM COUNTY 502 – SWIFT RUN 0582
RUSSELL COUNTY 304 – CLEVELAND 0042
RUSSELL COUNTY 602 – ELK GARDEN 0042
SHENANDOAH COUNTY 201 – CONICVILLE 0152
SHENANDOAH COUNTY 202 – MT JACKSON 0152
STAFFORD COUNTY 302 – WIDEWATER 0022
STAFFORD COUNTY 402 – COURTHOUSE 0282
STAFFORD COUNTY 502 – FLINT HILL 0182
SUFFOLK CITY 504 – LAKE COHOON 0762
SUFFOLK CITY 602 – OLDE TOWNE 0762
TAZEWELL COUNTY 102 – TIP TOP 0032
TAZEWELL COUNTY 104 – FALLS MILLS 0032
TAZEWELL COUNTY 502 – GRAHAM 0032
VIRGINIA BEACH CITY 010 – GREAT NECK 0822
VIRGINIA BEACH CITY 502 – BETHEL 0912
WARREN COUNTY 501 – SOUTH RIVER 0182
WARREN COUNTY 504 – BROWNTOWN 0152
WARREN COUNTY 601 – STRASBURG 0152
WASHINGTON COUNTY 603 – VALLEY INSTITUTE 0042
WASHINGTON COUNTY 701 – HIGH POINT 0052
WAYNESBORO CITY 603 – LYNDHURST 0202
WINCHESTER CITY 102 – OLD TOWN 0292
WINCHESTER CITY 103 – KERNSTOWN 0292
WISE COUNTY 401 – CLINCH VALLEY 0012
WYTHE COUNTY 401 – FRIES 0052
YORK COUNTY 301 – SEAFORD 0962
YORK COUNTY 303 – EDGEHILL 0962
YORK COUNTY 403 – GRAFTON 0962
YORK COUNTY 501 – TABB 0932
ACCOMACK COUNTY 301 – NEW CHURCH 1001
ACCOMACK COUNTY 701 – NANDUA 1001
ACCOMACK COUNTY 802 – MELFA 1001
ACCOMACK COUNTY 901 – PAINTER 1001
ALBEMARLE COUNTY 101 – Key Recreation 0571
ALBEMARLE COUNTY 101 – ROCKFISH 0201
ALBEMARLE COUNTY 102 – CLARK 0571
ALBEMARLE COUNTY 301 – BENJAMIN TONSLER 0571
ALBEMARLE COUNTY 401 – MIDWAY 0581
ALBEMARLE COUNTY 502 – BETHEL 0911
ALBEMARLE COUNTY 502 – NELLYSFORD 0201
ALEXANDRIA CITY 101 – HARTWOOD 0881
ALEXANDRIA CITY 102 – CITY HALL 0451
ALEXANDRIA CITY 110 – CHARLES HOUSTON CENTER 0451
ALEXANDRIA CITY 201 – NAOMI L. BROOKS SCHOOL 0451
ALEXANDRIA CITY 304 – SAMUEL TUCKER SCHOOL 0461
ALEXANDRIA CITY 318 – MADISON’S TRUST 0101
ALEXANDRIA CITY 616 – EAGLE RIDGE 0321
AMELIA COUNTY 301 – BENJAMIN TONSLER 0571
AMELIA COUNTY 401 – NUMBER FOUR 0611
AMHERST COUNTY 102 – NEW GLASGOW 0241
APPOMATTOX COUNTY 501 – DARLINGTON HTS 0601
APPOMATTOX COUNTY 501 – OAKVILLE 0591
ARLINGTON COUNTY 001 – ARLINGTON 0491
ARLINGTON COUNTY 003 – AURORA HILLS 0451
ARLINGTON COUNTY 005 – BARCROFT 0471
ARLINGTON COUNTY 011 – EAST FALLS CHURCH 0471
ARLINGTON COUNTY 012 – FAIRLINGTON 0451
ARLINGTON COUNTY 013 – GLEN CARLYN 0471
ARLINGTON COUNTY 022 – ABINGDON 0451
ARLINGTON COUNTY 031 – LEXINGTON 0471
ARLINGTON COUNTY 033 – ROCK SPRING 0481
ARLINGTON COUNTY 043 – CAMPBELL 0491
ARLINGTON COUNTY 101 – ZION 0561
ARLINGTON COUNTY 301 – THREE WEST 0301
ARLINGTON COUNTY 401 – THREE FORKS 0591
ARLINGTON COUNTY 407 – HARPER PARK 0101
AUGUSTA COUNTY 103 – VERONA 0251
AUGUSTA COUNTY 503 – SPOTTSWOOD 0241
AUGUSTA COUNTY 504 – WHITE HILL 0241
AUGUSTA COUNTY 601 – SHERANDO 0201
AUGUSTA COUNTY 602 – RIDGEVIEW 0241
AUGUSTA COUNTY 603 – LYNDHURST 0201
BATH COUNTY 101 – WARM SPRINGS 0241
BATH COUNTY 501 – HEALING SPRINGS 0241
BEDFORD COUNTY 101 – BROOKVILLE 0221
BEDFORD COUNTY 205 – SAUNDERS VOL FIRE CO 0221
BEDFORD COUNTY 502 – WASSONA 0061
BEDFORD COUNTY 701 – GOODE VOL RESCUE SQUAD 0191
BEDFORD COUNTY 703 – THAXTON BAPTIST CHURCH #2 0231
BLAND COUNTY 301 – HOLLYBROOK 0031
BOTETOURT COUNTY 301 – BUCHANAN 0191
BOTETOURT COUNTY 403 – EAGLE ROCK 0191
BOTETOURT COUNTY 403 – NORTH VINTON 0171
BOTETOURT COUNTY 404 – SOUTH VINTON 0171
BOTETOURT COUNTY 505 – CLEARBROOK 0171
BRISTOL CITY 001 – FIRST WARD 0051
BRUNSWICK COUNTY 402 – KING’S STORE 0751
BUCHANAN COUNTY 301 – SLATE 0031
BUCHANAN COUNTY 302 – NORTH GRUNDY 0031
CAMPBELL COUNTY 102 – NEW LONDON 0221
CAMPBELL COUNTY 201 – LOVINGSTON 0591
CAMPBELL COUNTY 401 – FOURTH WARD FIRST PRECINCT 0231
CAMPBELL COUNTY 501 – MADISON 0231
CAMPBELL COUNTY 501 – SPRING HILL 0221
CAMPBELL COUNTY 502 – YELLOW BRANCH 0591
CAROLINE COUNTY 101 – BOWLING GREEN 0991
CAROLINE COUNTY 401 – DAWN 0551
CAROLINE COUNTY 401 – SHILOH 0991
CAROLINE COUNTY 502 – MILFORD 0551
CAROLINE COUNTY 602 – LAKE 0551
CARROLL COUNTY 202 – PRECINCT B-2 0081
CARROLL COUNTY 202 – WISE 0011
CARROLL COUNTY 501 – VAUGHAN 0061
CARROLL COUNTY 502 – GLADEVILLE 0061
CHARLES CITY COUNTY 201 – PRECINCT 2-1 0701
CHARLOTTE COUNTY 201 – RED OAK WYLLIESBURG 0601
CHARLOTTE COUNTY 702 – SOUTH ANNA 0561
CHARLOTTESVILLE CITY 314 – THREE CHOPT 0731
CHARLOTTESVILLE CITY 402 – ALUMNI HALL 0571
CHESAPEAKE CITY 006 – DEEP CREEK 0811
CHESAPEAKE CITY 009 – BELLS MILL 0781
CHESAPEAKE CITY 011 – GENEVA PARK 0811
CHESAPEAKE CITY 020 – E W CHITTUM 0811
CHESAPEAKE CITY 027 – CAVALIER MANOR RECREATION CENTER 0801
CHESAPEAKE CITY 033 – WESTOVER 0771
CHESAPEAKE CITY 046 – BELLS MILL II 0781
CHESAPEAKE CITY 048 – JOLLIFF MIDDLE SCHOOL 0811
CHESAPEAKE CITY 049 – WATERWAY 0211
CHESAPEAKE CITY 050 – RIVER WALK 0771
CHESAPEAKE CITY 051 – COOPERS WAY 0781
CHESAPEAKE CITY 062 – FENTRESS 0781
CHESAPEAKE CITY 063 – POPLAR BRANCH 0781
CHESAPEAKE CITY 064 – DEEP CREEK II 0811
CHESAPEAKE CITY 121 – TOWN HALL 0871
CHESAPEAKE CITY 218 – WILLARD 0891
CHESTERFIELD COUNTY 001 – FIRST 0661
CHESTERFIELD COUNTY 101 – PRECINCT 1 0611
CHESTERFIELD COUNTY 102 – IVOR 0751
CHESTERFIELD COUNTY 103 – ENON 0621
CHESTERFIELD COUNTY 108 – ECOFF 0621
CHESTERFIELD COUNTY 202 – GRACELAND 0651
CHESTERFIELD COUNTY 206 – BELMONT 0661
CHESTERFIELD COUNTY 209 – SALEM CHURCH 0621
CHESTERFIELD COUNTY 210 – FIVE FORKS 0661
CHESTERFIELD COUNTY 301 – ETTRICK 0661
CHESTERFIELD COUNTY 301 – NUMBER THREE 0611
CHESTERFIELD COUNTY 303 – MATOACA 0661
CHESTERFIELD COUNTY 310 – TOMAHAWK 0651
CHESTERFIELD COUNTY 313 – WOOLRIDGE 0651
CHESTERFIELD COUNTY 314 – LONGHOUSE 0661
CHESTERFIELD COUNTY 315 – BAILEY BRIDGE 0271
CHESTERFIELD COUNTY 316 – COLONIAL TRAIL 0561
CHESTERFIELD COUNTY 317 – BIRKDALE 0631
CHESTERFIELD COUNTY 401 – HAMPDEN 0601
CHESTERFIELD COUNTY 405 – LA PRADE 0271
CHESTERFIELD COUNTY 407 – MONACAN 0271
CHESTERFIELD COUNTY 410 – WAGSTAFF 0271
CHESTERFIELD COUNTY 413 – RIDGEFIELD 0721
CHESTERFIELD COUNTY 415 – EVERGREEN 0271
CHESTERFIELD COUNTY 416 – EVERGREEN WEST 0651
CHESTERFIELD COUNTY 417 – EDGEWATER 0651
CHESTERFIELD COUNTY 503 – CHICKAHOMINY 0741
CHESTERFIELD COUNTY 504 – ROBIOUS 0681
CHESTERFIELD COUNTY 505 – DOREY 0701
CHESTERFIELD COUNTY 510 – SYCAMORE 0681
CHESTERFIELD COUNTY 513 – BEAUFONT 0271
CHESTERFIELD COUNTY 601 – CHILESBURG 0551
CHESTERFIELD COUNTY 603 – WHITE OAK 0281
CHESTERFIELD COUNTY 903 – CLARKSVILLE 0611
CLARKE COUNTY 301 – MILLWOOD 0101
CLARKE COUNTY 401 – WHITE POST 0101
CLARKE COUNTY 501 – PRECINCT E-1 0071
COLONIAL HEIGHTS CITY 005 – FIFTH 0661
COLONIAL HEIGHTS CITY 102 – RICH CREEK 0121
COVINGTON CITY 401 – PRECINCT 4-1 0191
CULPEPER COUNTY 201 – TWO WEST 0301
CULPEPER COUNTY 303 – CARDOVA 0301
CUMBERLAND COUNTY 501 – PRECINCT 5 0611
DANVILLE CITY 103 – TWIN SPRINGS 0161
DANVILLE CITY 405 – RINGGOLD 0141
DICKENSON COUNTY 101 – SOUTH CLINTWOOD 0041
DICKENSON COUNTY 104 – WEST POUND 0041
DICKENSON COUNTY 303 – RIDGE 0041
DINWIDDIE COUNTY 502 – CHESDIN 0631
EMPORIA CITY 201 – PRECINCT 2-1 0751
EMPORIA CITY 302 – PRECINCT 3-A 0751
EMPORIA CITY 401 – PRECINCT 4-1 0751
ESSEX COUNTY 301 – SOUTH 0981
ESSEX COUNTY 401 – CENTRAL 0981
FAIRFAX CITY 001 – ONE 0371
FAIRFAX COUNTY 046 – CENTRAL 0471
FAIRFAX COUNTY 101 – ZION 0561
FAIRFAX COUNTY 102 – OLD TOWN 0291
FAIRFAX COUNTY 113 – CANTERBURY 0391
FAIRFAX COUNTY 126-GOSHEN POST 0871
FAIRFAX COUNTY 132 – MONUMENT 0371
FAIRFAX COUNTY 201 – AMISSVILLE 0181
FAIRFAX COUNTY 201 – ROCK HILL 0021
FAIRFAX COUNTY 202 – TWO EAST 0301
FAIRFAX COUNTY 208 – RESTON #1 0361
FAIRFAX COUNTY 209 – RESTON #2 0361
FAIRFAX COUNTY 219 – WESTBRIAR 0341
FAIRFAX COUNTY 302 – JOHNSON 0571
FAIRFAX COUNTY 310 – KIRBY 0481
FAIRFAX COUNTY 311 – ROUND HILL ELEMENTARY 0331
FAIRFAX COUNTY 319 – JOHN CHAMPE 0871
FAIRFAX COUNTY 328 – HICKORY 0341
FAIRFAX COUNTY 401 – 4A 0991
FAIRFAX COUNTY 401 – WOODSTOCK 0151
FAIRFAX COUNTY 403 – BROOKE 0281
FAIRFAX COUNTY 404 – FRANCONIA 0431
FAIRFAX COUNTY 410 – ROSE HILL 0431
FAIRFAX COUNTY 421 – KINGSTOWNE 0431
FAIRFAX COUNTY 502 – BETHEL 0911
FAIRFAX COUNTY 502 – FIVE NORTH 0301
FAIRFAX COUNTY 622 – FARMWELL STATION 0321
FAIRFAX COUNTY 627 – ASHBROOK 0321
FAIRFAX COUNTY 701 – WOODLANDS 0881
FAIRFAX COUNTY 721 – MERRIFIELD 0531
FAIRFAX COUNTY 804 – COLCHESTER 0401
FAIRFAX COUNTY 918 – CENTREVILLE 0401
FALLS CHURCH CITY 002 – SECOND WARD 0531
FALLS CHURCH CITY 401 – VENABLE 0571
FAUQUIER COUNTY 026 – FILLMORE 0491
FAUQUIER COUNTY 101 – KETTLE RUN 0311
FAUQUIER COUNTY 102 – PASSAPATANZY 0991
FAUQUIER COUNTY 104 – LOIS 0881
FAUQUIER COUNTY 202 – AIRLIE 0181
FAUQUIER COUNTY 203 – WARRENTON 0181
FAUQUIER COUNTY 303 – BEALETON 0181
FAUQUIER COUNTY 401 – WOODSTOCK 0151
FAUQUIER COUNTY 402 – LEEDS 0181
FAUQUIER COUNTY 403 – WATERLOO 0181
FAUQUIER COUNTY 503 – BROAD RUN 0181
FLOYD COUNTY 203 – PRECINCT B-3 0071
FLOYD COUNTY 301 – COURTHOUSE 0071
FLUVANNA COUNTY 101 – FIRST WARD FIRST PRECINCT 0231
FLUVANNA COUNTY 202 – LOUISA #2 0561
FLUVANNA COUNTY 301 – PATRICK HENRY NO 1 0561
FRANKLIN CITY 201 – PRECINCT 2-1 0751
FRANKLIN CITY 403 – SOUTHSIDE 0761
FRANKLIN CITY 601 – PRECINCT 6-1 0751
FRANKLIN COUNTY 204 – SANDY LEVEL 0161
FRANKLIN COUNTY 401 – SOUTH LINDENWOOD 0171
FRANKLIN COUNTY 601 – BOONES MILL 0091
FREDERICK COUNTY 102 – OLD TOWN 0291
FREDERICK COUNTY 103 – KERNSTOWN 0291
FREDERICK COUNTY 201 – VIRGINIA AVENUE 0291
FREDERICK COUNTY 202 – ALBIN 0291
FREDERICK COUNTY 204 – NAIN 0291
FREDERICK COUNTY 302 – NEFF’S TOWN 0331
FREDERICK COUNTY 303 – WHITE HALL 0291
FREDERICK COUNTY 402 – SHENANDOAH 0101
FREDERICK COUNTY 403 – PARKIN’S MILL 0101
FREDERICK COUNTY 502 – NEWTOWN 0291
FREDERICK COUNTY 601 – MILLBROOK 0331
FREDERICKSBURG CITY 201 – MONROE 0991
FREDERICKSBURG CITY 201 – PRECINCT 1 – DISTRICT TWO 0881
GILES COUNTY 102 – PRECINCT A-2 0121
GILES COUNTY 202 – STAFFORDSVILLE 0121
GLOUCESTER COUNTY 101 – FARMVILLE 0601
GLOUCESTER COUNTY 102 – SALEM 0981
GLOUCESTER COUNTY 502 – WALKER 0981
GLOUCESTER COUNTY 510 – MEHFOUD 0701
GOOCHLAND COUNTY 101 – SUBLETTS 0651
GOOCHLAND COUNTY 201 – CARVER 0571
GOOCHLAND COUNTY 302 – GOOCHLAND COURT HOUSE 2 0651
GOOCHLAND COUNTY 303 – INNSBROOK 0721
GOOCHLAND COUNTY 502 – BLAIR 0561
GOOCHLAND COUNTY 702 – SOUTH ANNA 0561
GRAYSON COUNTY 302 – FAIRVIEW 0051
GRAYSON COUNTY 402 – PROVIDENCE 0051
GREENE COUNTY 001 – NORTH SALEM NO 2 0081
GREENE COUNTY 102 – MANAKIN 0651
GREENE COUNTY 401 – MIDWAY 0581
GREENSVILLE COUNTY 201 – PRECINCT 2-1 0751
GREENSVILLE COUNTY 403 – PRECINCT 4-C 0751
GREENSVILLE COUNTY 501 – PRECINCT 5-1 0751
HALIFAX COUNTY 103 – REPUBLICAN GROVE 0601
HALIFAX COUNTY 103 – SOUTH CLARKSVILLE 0611
HALIFAX COUNTY 304 – VERNON HILL 0601
HALIFAX COUNTY 701 – HYCO 0601
HALIFAX COUNTY 703 – VIRGILINA 0601
HAMPTON CITY 108 – KATHERINE JOHNSON 0941
HAMPTON CITY 302 – YORKTOWN 0961
HAMPTON CITY 308 – JEFFERSON 0951
HANOVER COUNTY 001 – LEXINGTON 0241
HANOVER COUNTY 203 – BELMONT 0741
HANOVER COUNTY 218 – WILLARD 0891
HANOVER COUNTY 301 – CAUSEWAY 0561
HANOVER COUNTY 501 – MANGOHICK 0971
HANOVER COUNTY 701 – SHELTONS MILL 0561
HARRISONBURG CITY 101 – BROADWAY 0261
HARRISONBURG CITY 201 – SINGERS GLEN 0261
HARRISONBURG CITY 301 – KEEZLETOWN 0261
HARRISONBURG CITY 301 – MILLWOOD 0331
HARRISONBURG CITY 503 – MCGAHEYSVILLE 0581
HENRICO COUNTY 077 – BROOKWOOD 0841
HENRICO COUNTY 103 – GLEN ALLEN 0721
HENRICO COUNTY 111 – LAKESIDE 0721
HENRICO COUNTY 115 – STAPLES MILL 0731
HENRICO COUNTY 201 – ADAMS 0701
HENRICO COUNTY 203 – BELMONT 0741
HENRICO COUNTY 206 – CENTRAL GARDENS 0741
HENRICO COUNTY 207 – CHAMBERLAYNE 0741
HENRICO COUNTY 208 – FAIRFIELD 0741
HENRICO COUNTY 209 – GLEN LEA 0741
HENRICO COUNTY 212 – HOLLYBROOK 0741
HENRICO COUNTY 213 – HUNGARY 0741
HENRICO COUNTY 222 – WILDER 0741
HENRICO COUNTY 305 – NUCKOLS FARM 0561
HENRICO COUNTY 307 – RIDGE 0731
HENRICO COUNTY 311 – SHORT PUMP 0561
HENRICO COUNTY 313 – STONEY RUN 0721
HENRICO COUNTY 315 – TUCKER 0731
HENRICO COUNTY 316 – COLONIAL TRAIL 0561
HENRICO COUNTY 401 – QUIOCCASIN 0731
HENRICO COUNTY 404 – FREEMAN 0681
HENRICO COUNTY 404 – FREEMAN 0731
HENRICO COUNTY 406 – GODWIN 0721
HENRICO COUNTY 407 – LAKEWOOD 0721
HENRICO COUNTY 413 – RIDGEFIELD 0721
HENRICO COUNTY 415 – SKIPWITH 0731
HENRICO COUNTY 416 – SPOTTSWOOD 0731
HENRICO COUNTY 502 – BLAIR 0561
HENRICO COUNTY 505 – DOREY 0701
HENRICO COUNTY 509 – LABURNUM 0741
HENRICO COUNTY 511 – MONTROSE 0701
HENRICO COUNTY 512 – NINE MILE 0741
HENRICO COUNTY 513 – PLEASANTS 0741
HENRY COUNTY 005 – PRECINCT #5 0161
HENRY COUNTY 201 – FIELDALE 0161
HENRY COUNTY 203 – HORSEPASTURE #2 0161
HENRY COUNTY 501 – BASSETT NUMBER ONE 0091
HIGHLAND COUNTY 005 – BLUE GRASS 0201
HOPEWELL CITY 101 – WARD ONE 0621
HOPEWELL CITY 501 – WARD FIVE 0621
ISLE OF WIGHT COUNTY 032 – HODGES MANOR ELEMENTARY SCHOOL 0801
ISLE OF WIGHT COUNTY 201 – PRECINCT 2-1 0751
ISLE OF WIGHT COUNTY 202 – CARROLLTON 0641
ISLE OF WIGHT COUNTY 211 – CHRYSLER MUSEUM 0891
ISLE OF WIGHT COUNTY 403 – LONGVIEW 0641
ISLE OF WIGHT COUNTY 504 – ZUNI 0641
ISLE OF WIGHT COUNTY 601 – COURTLAND 0751
JAMES CITY COUNTY 101 – QUEENS LAKE 0961
JAMES CITY COUNTY 103 – BERKELEY C 0961
JAMES CITY COUNTY 104- BERKELEY D 0931
JAMES CITY COUNTY 202 – JAMESTOWN B 0961
JAMES CITY COUNTY 203 – JAMESTOWN C 0961
JAMES CITY COUNTY 304 – POWHATAN D 0961
JAMES CITY COUNTY 401 – STONEHOUSE A 0961
JAMES CITY COUNTY 412 – PINCHBECK 0731
JAMES CITY COUNTY 502 – NELLYSFORD 0201
KING & QUEEN COUNTY 101 – OWENTON 0981
KING & QUEEN COUNTY 503 – CHICKAHOMINY 0741
KING GEORGE COUNTY 301 – PRECINCT 1 – DISTRICT THREE 0881
KING GEORGE COUNTY 602 – SMITH STATION 0541
KING WILLIAM COUNTY 101 – WEST POINT 0981
KING WILLIAM COUNTY 301 – AYLETT 0971
KING WILLIAM COUNTY 401 – MANQUIN 0971
LANCASTER COUNTY 301 – PRECINCT 3-1 0991
LANCASTER COUNTY 302 – PRECINCT 3-2 0991
LANCASTER COUNTY 501 – PRECINCT 5-1 0991
LEXINGTON CITY 101 – AIRPORT 0241
LOUDOUN COUNTY 016 – LYON VILLAGE 0481
LOUDOUN COUNTY 209 – POTOMAC FALLS 0341
LOUDOUN COUNTY 303 – HILLSBORO 0331
LOUDOUN COUNTY 305 – PHILOMONT 0101
LOUDOUN COUNTY 312 – BRIAR WOODS 0101
LOUDOUN COUNTY 314 – LEGACY 0871
LOUDOUN COUNTY 401 – WEST LOVETTSVILLE 0331
LOUDOUN COUNTY 401 – WHITE POST 0101
LOUDOUN COUNTY 403 – LUCKETTS 0331
LOUDOUN COUNTY 407 – HARPER PARK 0101
LOUDOUN COUNTY 508 – BALLS BLUFF 0331
LOUDOUN COUNTY 622 – FARMWELL STATION 0321
LOUDOUN COUNTY 707 – CLAUDE MOORE PARK 0871
LOUDOUN COUNTY 709 – MIRROR RIDGE 0871
LOUDOUN COUNTY 710 – STERLING 0871
LOUDOUN COUNTY 818 – BROAD RUN 0321
LOUDOUN COUNTY 820 – BELMONT STATION 0321
LOUISA COUNTY 101 – PALMYRA 0581
LOUISA COUNTY 102 – MECHANICSVILLE 0561
LOUISA COUNTY 201 – COLUMBIA 0651
LOUISA COUNTY 202 – LOUISA #2 0561
LOUISA COUNTY 701 – SHELTONS MILL 0561
LUNENBURG COUNTY 301 – ROSEBUD 0751
LUNENBURG COUNTY 402 – PLEASANT GROVE 0611
LUNENBURG COUNTY 501 – REEDY CREEK 0611
LUNENBURG COUNTY 501 – SOUTH HILL 0611
LUNENBURG COUNTY 502 – PEOPLES COMMUNITY CENTER 0611
LUNENBURG COUNTY 601 – HOUNDS CREEK 0751
LYNCHBURG CITY 101 – BROOKVILLE 0221
LYNCHBURG CITY 102 – FIRST WARD SECOND PRECINCT 0231
LYNCHBURG CITY 102 – NEW LONDON 0221
LYNCHBURG CITY 201 – MONROE 0991
LYNCHBURG CITY 201 – WALKER 0221
LYNCHBURG CITY 301 – THIRD WARD FIRST PRECINCT 0221
LYNCHBURG CITY 303 – THIRD WARD THIRD PRECINCT 0221
LYNCHBURG CITY 401 – CUNNINGHAM 0581
LYNCHBURG CITY 501 – SPRING HILL 0221
LYNCHBURG CITY 506 – MOUNT VERNON 0171
MADISON COUNTY 006 – WOLFTOWN 0301
MANASSAS CITY 002 – WEEMS 0501
MANASSAS CITY 004 – HAYDON 0501
MANASSAS CITY 301 – GRIFFIS 0281
MANASSAS CITY 413 – RIDGEFIELD 0721
MECKLENBURG COUNTY 103 – SOUTH CLARKSVILLE 0611
MECKLENBURG COUNTY 301 – BRACEY 0611
MECKLENBURG COUNTY 502 – PEOPLES COMMUNITY CENTER 0751
MECKLENBURG COUNTY 701 – CHASE CITY 0611
MECKLENBURG COUNTY 702 – MIDWAY 0601
MECKLENBURG COUNTY 802 – BLUESTONE 0611
MIDDLESEX COUNTY 101 – WEST POINT 0981
MIDDLESEX COUNTY 203 – JAMESTOWN C 0961
MIDDLESEX COUNTY 501 – WILTON 0981
MONTGOMERY COUNTY 001 – EAST PRECINCT 0121
MONTGOMERY COUNTY 058 – GLENWOOD 0211
MONTGOMERY COUNTY 101 – PRECINCT A-1 0121
MONTGOMERY COUNTY 201 – PRECINCT B-1 0121
MONTGOMERY COUNTY 401 – PRECINCT D-1 0071
MONTGOMERY COUNTY 402 – PRECINCT D-2 0071
MONTGOMERY COUNTY 503 – PRECINCT E-3 0071
NELSON COUNTY 201 – LOVINGSTON 0591
NELSON COUNTY 216 – MOODY 0741
NELSON COUNTY 401 – ROSELAND 0201
NELSON COUNTY 502 – NELLYSFORD 0201
NEWPORT NEWS CITY 017 – OCEAN PARK 0831
NEWPORT NEWS CITY 107 – RICHNECK 0931
NEWPORT NEWS CITY 201 – BLAND 0941
NEWPORT NEWS CITY 209 – HILTON 0951
NEWPORT NEWS CITY 210 – KNOLLWOOD MEADOWS 0941
NEWPORT NEWS CITY 215 – WARWICK 0941
NEWPORT NEWS CITY 218 – KILN CREEK 0931
NEWPORT NEWS CITY 301 – SEAFORD 0961
NEWPORT NEWS CITY 302 – PRECINCT 3-2 0991
NEWPORT NEWS CITY 303 – CARVER 0951
NEWPORT NEWS CITY 305 – DOWNTOWN 0951
NEWPORT NEWS CITY 312 – NEWSOME PARK 0951
NORFOLK CITY 045 – TIMBERLAKE 0211
NORFOLK CITY 101 – GRANBY 0791
NORFOLK CITY 101 – GRANBY 1001
NORFOLK CITY 203 – GHENT SQUARE 0891
NORFOLK CITY 207 – LAMBERT’S POINT 0891
NORFOLK CITY 209 – HILTON 0951
NORFOLK CITY 212 – PARK PLACE 0891
NORFOLK CITY 215 – SUBURBAN PARK 1001
NORFOLK CITY 218 – WILLARD 0791
NORFOLK CITY 309 – NORVIEW 0901
NORFOLK CITY 402 – BERKLEY 0891
NORFOLK CITY 404 – CAMPOSTELLA 0891
NORFOLK CITY 408 – EASTON 0901
NORFOLK CITY 411 – RUFFNER ACADEMY 0891
NORFOLK CITY 501 – BAYVIEW 0901
NORFOLK CITY 506 – OCEAN VIEW CENTER 1001
NORTHUMBERLAND COUNTY 501 – PRECINCT 5-1 0991
NORTON CITY 004 – FOURTH WARD 0051
NOTTOWAY COUNTY 201 – PRECINCT 2-1 0611
NOTTOWAY COUNTY 401 – PRECINCT 4-1 0611
ORANGE COUNTY 001 – OAK PARK 0301
ORANGE COUNTY 101 – PRECINCT 1 – DISTRICT ONE 0881
ORANGE COUNTY 201 – 2A 0991
ORANGE COUNTY 201 – TWO WEST 0301
ORANGE COUNTY 302 – THREE EAST 0301
PATRICK COUNTY 102 – FLATRIDGE 0051
PATRICK COUNTY 302 – LIBERTY 0091
PETERSBURG CITY 101 – FIRST WARD FIRST PRECINCT 0631
PETERSBURG CITY 601 – SIXTH WARD FIRST PRECINCT 0631
PITTSYLVANIA COUNTY 103 – TWIN SPRINGS 0161
PITTSYLVANIA COUNTY 105 – CHATHAM 0161
PITTSYLVANIA COUNTY 108 – WEST BLAIRS 0161
PITTSYLVANIA COUNTY 207 – GRETNA 0161
PITTSYLVANIA COUNTY 305 – RICEVILLE 0161
POQUOSON CITY 001 – CENTRAL 0911
POQUOSON CITY 101 – BERLIN 0751
POQUOSON CITY 202 – KILN CREEK 0931
PORTSMOUTH CITY 014 – BRIGHTON ELEMENTARY SCHOOL 0801
PORTSMOUTH CITY 022 – ST. MARK DELIVERANCE CENTER 0801
PORTSMOUTH CITY 028 – LAKEVIEW ELEMENTARY SCHOOL 0801
PORTSMOUTH CITY 037 – CHURCHLAND MIDDLE SCHOOL 0801
PORTSMOUTH CITY 039 – CHURCHLAND PRIMARY AND INTERMEDIATE SCHOOL 0791
POWHATAN COUNTY 401 – POWHATAN COURTHOUSE 0651
POWHATAN COUNTY 413 – RIDGEFIELD 0721
POWHATAN COUNTY 503 – TOBACCOVILLE 0651
PRINCE EDWARD COUNTY 201 – LOCKETT 0601
PRINCE EDWARD COUNTY 301 – LEIGH 0601
PRINCE EDWARD COUNTY 501 – PRECINCT 5 0611
PRINCE GEORGE COUNTY 101 – RICHARD BLAND 0641
PRINCE GEORGE COUNTY 103 – UNION BRANCH 0641
PRINCE GEORGE COUNTY 202 – SUTHERLAND 0631
PRINCE GEORGE COUNTY 205 – JEFFERSON PARK 0621
PRINCE GEORGE COUNTY 205 – JEFFERSON PARK 0641
PRINCE WILLIAM COUNTY 004 – HAYDON 0501
PRINCE WILLIAM COUNTY 006 – WOLFTOWN 0301
PRINCE WILLIAM COUNTY 024 – LARKSPUR 0851
PRINCE WILLIAM COUNTY 101 – COURTHOUSE 0991
PRINCE WILLIAM COUNTY 102 – PRECINCT 1-2 0991
PRINCE WILLIAM COUNTY 103 – GLENKIRK 0131
PRINCE WILLIAM COUNTY 103 – SIMPSON 0881
PRINCE WILLIAM COUNTY 122 – HUTCHISON FARM 0871
PRINCE WILLIAM COUNTY 201 – MONROE 0991
PRINCE WILLIAM COUNTY 202 – AIRLIE 0181
PRINCE WILLIAM COUNTY 202 – ALBIN 0291
PRINCE WILLIAM COUNTY 210 – PENN 0511
PRINCE WILLIAM COUNTY 301 – DAHLGREN 0991
PRINCE WILLIAM COUNTY 301 – PRECINCT 1 – DISTRICT THREE 0881
PRINCE WILLIAM COUNTY 303 – BEALETON 0181
PRINCE WILLIAM COUNTY 305 – PATTIE 0311
PRINCE WILLIAM COUNTY 311 – SWANS CREEK 0021
PRINCE WILLIAM COUNTY 320 – STONE HILL 0871
PRINCE WILLIAM COUNTY 402 – FOUR EAST 0301
PRINCE WILLIAM COUNTY 409 – CLARKES GAP 0331
PRINCE WILLIAM COUNTY 622 – FARMWELL STATION 0321
PULASKI COUNTY 201 – DRAPER 0071
PULASKI COUNTY 203 – NEWBERN 0071
RADFORD CITY 004 – NEW RIVER PRECINCT 0121
RADFORD CITY 102 – NEW RIVER 0121
RADFORD CITY 103 – PRECINCT A-3 0121
RAPPAHANNOCK COUNTY 101 – WASHINGTON 0181
RAPPAHANNOCK COUNTY 201 – AMISSVILLE 0181
RAPPAHANNOCK COUNTY 401 – SCRABBLE 0181
RAPPAHANNOCK COUNTY 502 – FLINT HILL 0181
RICHMOND CITY 101 – FARMVILLE 0601
RICHMOND CITY 101 – OWENTON 0981
RICHMOND CITY 106 – HERMITAGE 0721
RICHMOND CITY 110 – JOHNSON 0731
RICHMOND CITY 111 – LAKESIDE 0721
RICHMOND CITY 209 – GLEN LEA 0741
RICHMOND CITY 220 – RATCLIFFE 0741
RICHMOND CITY 304 – JACKSON DAVIS 0731
RICHMOND CITY 309 – SADLER 0561
RICHMOND CITY 506 – EANES 0701
RICHMOND CITY 510 – MEHFOUD 0701
RICHMOND CITY 514 – ROLFE 0701
RICHMOND CITY 515 – DAVIS 0661
RICHMOND CITY 702 – PRECINCT G-2 0121
ROANOKE CITY 014 – Crystal Spring 0111
ROANOKE CITY 015 – Grandin Court 0171
ROANOKE CITY 019 – Forest Park 0111
ROANOKE CITY 202 – BURLINGTON 0171
ROANOKE CITY 406 – MOUNT PLEASANT 0171
ROANOKE CITY 506 – MOUNT VERNON 0171
ROANOKE COUNTY 102 – GREENFIELD 0191
ROANOKE COUNTY 105 – PETERS CREEK 0171
ROANOKE COUNTY 106 – GREEN HILL 0081
ROANOKE COUNTY 204 – BOTETOURT SPRINGS 0171
ROANOKE COUNTY 206 – HOLLINS 0171
ROANOKE COUNTY 305 – CASTLE ROCK 0081
ROANOKE COUNTY 402 – BONSACK 0171
ROANOKE COUNTY 405 – NORTH LINDENWOOD 0171
ROCKBRIDGE COUNTY 102 – BEN SALEM 0241
ROCKBRIDGE COUNTY 103 – PLANK ROAD 0241
ROCKBRIDGE COUNTY 301 – MAURY RIVER 0241
ROCKBRIDGE COUNTY 303 – WINDSOR HILLS 0171
ROCKBRIDGE COUNTY 504 – ROCKBRIDGE 0241
ROCKINGHAM COUNTY 101 – FARMVILLE 0601
ROCKINGHAM COUNTY 102 – TIMBERVILLE 0261
ROCKINGHAM COUNTY 105 – LACEY SPRING 0151
ROCKINGHAM COUNTY 108 – LITTLE NORTH MOUNTAIN 0261
ROCKINGHAM COUNTY 201 – SINGERS GLEN 0261
ROCKINGHAM COUNTY 301 – KEEZLETOWN 0261
ROCKINGHAM COUNTY 302 – PORT REPUBLIC 0251
ROCKINGHAM COUNTY 401 – WEST BRIDGEWATER 0251
ROCKINGHAM COUNTY 402 – MONTEZUMA 0251
ROCKINGHAM COUNTY 404 – NORTH RIVER 0251
ROCKINGHAM COUNTY 406 – EAST BRIDGEWATER 0251
ROCKINGHAM COUNTY 501 – ELKTON 0581
ROCKINGHAM COUNTY 504 – SOUTH FORK 0581
ROCKINGHAM COUNTY 505 – STONY RUN 0261
RUSSELL COUNTY 101 – MOCCASIN 0041
RUSSELL COUNTY 302 – DAUGHERTY 0041
RUSSELL COUNTY 303 – NEW GARDEN 0031
RUSSELL COUNTY 403 – ST PAUL 0041
RUSSELL COUNTY 601 –  EAST LEBANON 0041
SALEM CITY 004 – WEST SALEM 0081
SALEM CITY 010 – HIDDEN VALLEY 0081
SHENANDOAH COUNTY 101 – ORKNEY SPRINGS 0151
SMYTH COUNTY 502 – WASSONA 0061
SOUTHAMPTON COUNTY 102 – WALLER MILL 0961
SOUTHAMPTON COUNTY 501 – HUNTERDALE 0751
SPOTSYLVANIA COUNTY 101 – COURTHOUSE 0991
SPOTSYLVANIA COUNTY 201 – PRECINCT 1 – DISTRICT TWO 0881
SPOTSYLVANIA COUNTY 202 – SOUTH MADISON 0551
SPOTSYLVANIA COUNTY 301 – PRECINCT 1 – DISTRICT THREE 0881
SPOTSYLVANIA COUNTY 303 – RIVERBEND 0881
SPOTSYLVANIA COUNTY 401 – DAWN 0551
SPOTSYLVANIA COUNTY 402 – FOUR EAST 0301
SPOTSYLVANIA COUNTY 502 – MILFORD 0551
STAFFORD COUNTY 019 – ROSSLYN 0481
STAFFORD COUNTY 102 – ROCKY RUN 0881
STAFFORD COUNTY 103 – SIMPSON 0881
STAFFORD COUNTY 202 – ROSEVILLE 0021
STAFFORD COUNTY 301 – PRECINCT 1 – DISTRICT THREE 0881
STAFFORD COUNTY 302 – REMINGTON 0881
STAFFORD COUNTY 403 – BROOKE 0281
STAFFORD COUNTY 501 – GRAFTON 0281
STAFFORD COUNTY 501 – PRECINCT 5-1 0991
STAFFORD COUNTY 603 – WHITE OAK 0281
STAFFORD COUNTY 604 – ENGLAND RUN 0281
STAFFORD COUNTY 702 – WHITSON 0021
STAFFORD COUNTY 703 – HAMPTON 0881
STAUNTON CITY 204 – MT CLINTON 0261
STAUNTON CITY 301 – FORT DEFIANCE 0251
STAUNTON CITY 301 – WARD NO 3 0201
SUFFOLK CITY 020 – NOBLE STREET BAPTIST CHURCH 0801
SUFFOLK CITY 101 – Key Recreation 0571
SUFFOLK CITY 102 – CYPRESS CREEK 0641
SUFFOLK CITY 102 – DRIVER 0761
SUFFOLK CITY 202 – CHUCKATUCK 0761
SUFFOLK CITY 204 – HILLPOINT 0761
SUFFOLK CITY 302 – JOHN F KENNEDY 0761
SUFFOLK CITY 304 – NANSEMOND RIVER 0761
SUFFOLK CITY 305 – SHOULDERS HILL 0761
SUFFOLK CITY 402 – WHALEYVILLE 0641
SUFFOLK CITY 404 – BOOKER T WASHINGTON 0761
SUFFOLK CITY 603 – ELEPHANTS FORK/WESTHAVEN 0761
SUFFOLK CITY 604 – WILROY 0761
SUFFOLK CITY 605 – HOLLYWOOD 0761
SUFFOLK CITY 702 – HARBOURVIEW 0761
SUSSEX COUNTY 101 – WAVERLY 0751
SUSSEX COUNTY 401 – PRECINCT 4-1 0751
SUSSEX COUNTY 403 – CHERRY HILL 0631
TAZEWELL COUNTY 109 – BISHOP 0031
TAZEWELL COUNTY 204 – CLEAR FORK 0031
VIRGINIA BEACH CITY 004 – LINKHORN 0821
VIRGINIA BEACH CITY 006 – ALANTON 0821
VIRGINIA BEACH CITY 012 – PLAZA 0821
VIRGINIA BEACH CITY 026 – FAIRFIELD 0851
VIRGINIA BEACH CITY 030 – RED WING 0811
VIRGINIA BEACH CITY 038 – WITCHDUCK 0831
VIRGINIA BEACH CITY 048 – WOLFSNARE 0821
VIRGINIA BEACH CITY 049 – LYNNHAVEN 0821
VIRGINIA BEACH CITY 063 – CULVER 0811
VIRGINIA BEACH CITY 070 – CORPORATE LANDING 0811
VIRGINIA BEACH CITY 076 – VILLAGE 0851
VIRGINIA BEACH CITY 080 – CHIMNEY HILL 0841
VIRGINIA BEACH CITY 086 – HAYGOOD 0831
VIRGINIA BEACH CITY 102 – DRIVER 0761
VIRGINIA BEACH CITY 401 – 4A 0991
VIRGINIA BEACH CITY 403 – STONEHOUSE C 0961
VIRGINIA BEACH CITY 413 – POPLAR HALLS 0901
WARREN COUNTY 102 – OLD TOWN 0291
WARREN COUNTY 102 – OTTERBURN 0151
WARREN COUNTY 402 – TOWN – WEST SHENANDOAH 0291
WARREN COUNTY 502 – FLINT HILL 0181
WASHINGTON COUNTY 102 – WEST ABINGDON 0041
WASHINGTON COUNTY 203 – HAYTERS GAP 0051
WASHINGTON COUNTY 204 – WOODLAND HILLS 0041
WASHINGTON COUNTY 501 – RHEA VALLEY 0051
WASHINGTON COUNTY 601 – BURSON PLACE 0041
WASHINGTON COUNTY 702 – WALLACE 0041
WAYNESBORO CITY 202 – WALKER 0571
WESTMORELAND COUNTY 101 – COURTHOUSE 0991
WESTMORELAND COUNTY 201 – PRECINCT 2-1 0991
WESTMORELAND COUNTY 301 – PRECINCT 3-1 0991
WILLIAMSBURG CITY 102 – WALLER MILL 0961
WINCHESTER CITY 301 – WAR MEMORIAL 0291
WINCHESTER CITY 302 – NEFF’S TOWN 0331
WINCHESTER CITY 402 – SHENANDOAH 0101
WISE COUNTY 101 – APPALACHIA 0011
WISE COUNTY 104 – WEST POUND 0041
WISE COUNTY 301 – BIG STONE GAP 0011
WYTHE COUNTY 203 – NEWBERN 0071
WYTHE COUNTY 501 – JACKSON MEMORIAL 0061
YORK COUNTY 102 – WALLER MILL 0961