Below you will find the current summary data and graphics from the 2026 VA June Dem Primary Election Daily Absentee List files. We pull the DAL file everyday and track the count of each specific ballot category in each daily file.
Note: Page may take a moment to load the graphics objects.
Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The logarithmic plot is the same underlying data as the linear scale plot, except with a logarithmic y-scale in order to be able to compress the dynamic range and see the shape of all of the data curves in a single graphic. Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The underlying data for the graphics above is provided in the summary data table.
Additional Data:
Additional CSV datasets stratified by Locality, City, Congressional District, State House District, State Senate District, and Precinct are available here. Please note that you need to give the page time to load before trying to drill down into any of the listed subdirectories, and mobile browsers have shown some issues.
A direct link to a zip file with ALL of the metrics data stratified by Locality, etc is here.
Data column descriptions:
“ISSUED” := Number of DAL file records where BALLOT_STATUS= “ISSUED”
“NOT_ISSUED” := Number of DAL file records where BALLOT_STATUS= “NOT ISSUED”
“PROVISIONAL” := Number of DAL file records where BALLOT_STATUS= “PROVISIONAL” and APP_STATUS=”APPROVED”
“DELETED” := Number of DAL file records where BALLOT_STATUS= “DELETED”
“MARKED” := Number of DAL file records where BALLOT_STATUS= “MARKED” and APP_STATUS=”APPROVED”
“ON_MACHINE” := Number of DAL file records where BALLOT_STATUS= “ON_MACHINE” and APP_STATUS=”APPROVED”
“PRE_PROCESSED” := Number of DAL file records where BALLOT_STATUS= “PRE-PROCESSED” and APP_STATUS=”APPROVED”
“FWAB” := Number of DAL file records where BALLOT_STATUS= “FWAB” and APP_STATUS=”APPROVED”
“MAIL_IN” := The sum of “MARKED” + “PRE_PROCESSED”
“COUNTABLE” := The sum of “PROVISIONAL” + “MARKED” + “PRE_PROCESSED” + “ON_MACHINE” + “FWAB”
“MILITARY” := Number of DAL file records where VOTER_TYPE= “MILITARY”
“OVERSEAS” := Number of DAL file records where VOTER_TYPE= “OVERSEAS”
“TEMPORARY” := Number of DAL file records where VOTER_TYPE= “TEMPORARY”
“MILITARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “MILITARY” and where COUNTABLE is True
“OVERSEAS_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “OVERSEAS” and where COUNTABLE is True
“TEMPORARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “TEMPORARY” and where COUNTABLE is True
“MILITARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “MILITARY” and where BALLOT_STATUS==”ISSUED”
“OVERSEAS_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “OVERSEAS” and where BALLOT_STATUS==”ISSUED”
“TEMPORARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “TEMPORARY” and where BALLOT_STATUS==”ISSUED”
“COUNTABLE_HIGH_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in 75% or more of the November General elections on record. (i.e. They have a high November General propensity score)
“COUNTABLE_MED_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in < 75% and > 0% of the November General elections on record.
“COUNTABLE_ZERO_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has never voted in any of the November General elections on record.
All data purchased by Electoral Process Education Corp. (EPEC) from the VA Dept of Elections (ELECT). All processing performed by EPEC.
If you like the work that EPEC is doing, please support us with a donation.
Below you will find the current summary data and graphics from the 2026 VA June Rep Primary Election Daily Absentee List files. We pull the DAL file everyday and track the count of each specific ballot category in each daily file.
Note: Page may take a moment to load the graphics objects.
Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The logarithmic plot is the same underlying data as the linear scale plot, except with a logarithmic y-scale in order to be able to compress the dynamic range and see the shape of all of the data curves in a single graphic. Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The underlying data for the graphics above is provided in the summary data table.
Additional Data:
Additional CSV datasets stratified by Locality, City, Congressional District, State House District, State Senate District, and Precinct are available here. Please note that you need to give the page time to load before trying to drill down into any of the listed subdirectories, and mobile browsers have shown some issues.
A direct link to a zip file with ALL of the metrics data stratified by Locality, etc is here.
Data column descriptions:
“ISSUED” := Number of DAL file records where BALLOT_STATUS= “ISSUED”
“NOT_ISSUED” := Number of DAL file records where BALLOT_STATUS= “NOT ISSUED”
“PROVISIONAL” := Number of DAL file records where BALLOT_STATUS= “PROVISIONAL” and APP_STATUS=”APPROVED”
“DELETED” := Number of DAL file records where BALLOT_STATUS= “DELETED”
“MARKED” := Number of DAL file records where BALLOT_STATUS= “MARKED” and APP_STATUS=”APPROVED”
“ON_MACHINE” := Number of DAL file records where BALLOT_STATUS= “ON_MACHINE” and APP_STATUS=”APPROVED”
“PRE_PROCESSED” := Number of DAL file records where BALLOT_STATUS= “PRE-PROCESSED” and APP_STATUS=”APPROVED”
“FWAB” := Number of DAL file records where BALLOT_STATUS= “FWAB” and APP_STATUS=”APPROVED”
“MAIL_IN” := The sum of “MARKED” + “PRE_PROCESSED”
“COUNTABLE” := The sum of “PROVISIONAL” + “MARKED” + “PRE_PROCESSED” + “ON_MACHINE” + “FWAB”
“MILITARY” := Number of DAL file records where VOTER_TYPE= “MILITARY”
“OVERSEAS” := Number of DAL file records where VOTER_TYPE= “OVERSEAS”
“TEMPORARY” := Number of DAL file records where VOTER_TYPE= “TEMPORARY”
“MILITARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “MILITARY” and where COUNTABLE is True
“OVERSEAS_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “OVERSEAS” and where COUNTABLE is True
“TEMPORARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “TEMPORARY” and where COUNTABLE is True
“MILITARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “MILITARY” and where BALLOT_STATUS==”ISSUED”
“OVERSEAS_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “OVERSEAS” and where BALLOT_STATUS==”ISSUED”
“TEMPORARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “TEMPORARY” and where BALLOT_STATUS==”ISSUED”
“COUNTABLE_HIGH_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in 75% or more of the November General elections on record. (i.e. They have a high November General propensity score)
“COUNTABLE_MED_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in < 75% and > 0% of the November General elections on record.
“COUNTABLE_ZERO_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has never voted in any of the November General elections on record.
All data purchased by Electoral Process Education Corp. (EPEC) from the VA Dept of Elections (ELECT). All processing performed by EPEC.
If you like the work that EPEC is doing, please support us with a donation.
Using data provided by the VA Department of Elections (“ELECT”), we have identified at least 8,566 unique registrations that were self-identified as “Declared NonCitizen” and removed from the voter rolls since May of 2023.
Of those 8,566 removals of self-declared noncitizens — which Virginia’s constitution prohibits from registering and voting, we see 1,756 registrations with a corresponding record of ballots cast, according to the statewide Voter History List (VHL) record.
As of February of 2019, that brings the number of ballots cast by declared noncitizens to 6,111, according to official records. Those are the records we know about.
In addition, the Daily Absentee List (DAL) data of Virginia’s 45-day early voting period shows an additional ten (10) noncitizen registrations and ballots — none of which are found in the Voter History List (VHL), the final tally of who voted.
Therefore, we see 6,121 illegal ballots cast by self-identified noncitizens, from 1,766 registrants who were removed from the voting rolls after self-declaring themselves as ineligible noncitizens. That’s according to the official Voter History List (VHL) and early voting data found in the Daily Absentee List (DAL) reports.
Voting as an ineligible individual is a Class 6 felony voting violation in Virginia.
Background on non-removal policy
After our initial post on this topic in March 2024, we submitted all of the relevant information for investigation to then-Attorney General, Jayson Miyares (R).
We did not hear back, nor did we receive any response or update on the matter. We are not aware of any action by the AG’s office on these apparent violations since 2024.
At the time in 2024, the Arlington County Electoral Board undertook its own investigation and voted 3-0 to send the information to the AG’s office as well. Fairfax County’s Electoral Board also issued a new policy on referring noncitizens with voting records to the Commonwealth Attorney. The policy stated:
“The General Registrar shall refer all individuals who were removed from the voter rolls pursuant to Va. Code § 24.2-427(C), after being identified by ELECT as noncitizens, to the Commonwealth’s Attorney and the Attorney General to determine if they have violated Virginia elections law.”
In October 2024, during early voting for the presidential election, the League of Women Voters along with the Biden Department of Justice sued VA, asking for an injunction to place approximately 1,600 removed noncitizen registrations back on the voter rolls. After two lower courts granted the injunction, the U.S. Supreme Court stayed the case, and the noncitizen removals proceeded as the litigation played out.
It is EPEC’s opinion that the Commonwealth of VA was correctly applying the National Voter Registration Act (NVRA) in this matter under the Youngkin administration and AG Miyares, as I detailed in an X.com post on Oct 12.
In 2025, the incoming Trump DOJ dropped the Biden DOJ’s lawsuit against VA; the League of Women Voters continued the litigation.
In April of 2026, Virginia’s Democrat Attorney General Jay Jones issued an advisory opinion to the Department of Elections that effectively adopts the same position of the challengers in the Biden DOJ / LWV lawsuit.
ELECT followed this advisory opinion with guidance to registrars instructing them not to remove any noncitizen voters within the NVRA’s 90-day “quiet period” around any federal election, including primaries.
As of May 6th 2026, ELECT is no longer populating noncitizen data into “hoppers” that are used to notify Commonwealth registrars of tasks that require their action.
Instead, ELECT has instructed registrars to change the categorization of existing flagged items in the hopper from “notify voter” to “needs research.”
See Jones’ April 16, 2026 letter to VA Commissioner of Elections Steven Koski here.
We believe this interpretation is impacting the number of self-identified noncitizens that are removed and reflected in the Monthly Update Service (MUS). We have already seen an order of magnitude difference in the data since June 1, 2026, which covers the May time-period in the new policy.
Voter-List Maintenance Obligations:
As part of its responsibilities under law, the VA Department of Elections is required to identify and remove invalid or out-of-date registration records from the voter rolls.
One situation for removal is when a registrant has been determined (via self identification) to be a noncitizen. The VA Constitution prohibits noncitizens from voting in VA elections.
“In elections by the people, the qualifications of voters shall be as follows: Each voter shall be a citizen of the United States, shall be eighteen years of age, shall fulfill the residence requirements set forth in this section, and shall be registered to vote pursuant to this article. …” VA Constitution, Article II, Section 1. https://law.lis.virginia.gov/constitution/article2/section1/
Additionally, according to VA Code Section 24.2-1004, the act of knowingly casting a ballot by someone who is not eligible to vote is a Class 6 felony.
EPEC’s Analysis Methodology:
ELECT makes available for purchase by qualifying parties various data sets, including the registered voter list (RVL) and the Voter History List (VHL).
Additionally, ELECT provides a Monthly Update Service (MUS) subscription that contains (almost) all of the Voter List changes and transactions for the previous period.
The MUS datasets carry an “NVRAReasonCode” field that is associated with each transaction that gives the reason for the update or change in the voter record. This is in accordance with disclosure and transparency requirements in the National Voter Registration Act (NVRA).
One of the reason codes for records that are removed is “Declared Non-Citizen.”
EPEC has been purchasing and archiving these official records as part of our nonprofit mission to document and educate the public about elections processes, and drive voter participation.
If you are interested in supporting this work, please head on over to our donation page, or to our give-send-go campaign to make a tax-deductible donation.
EPEC looked at the number of records associated with unique voter identification numbers identified for removal from the voter record due to non-citizenship status, per entries in the monthly updates (MUS).
We correlated those results with our accumulated Voter History List (VHL) information to determine whether noncitizen registrations had corresponding records of ballots cast in previous elections.
We only considered those records that are currently in a non-active state as of the latest MUS transaction log. Some determinations of non-citizenship status in the historical MUS transaction log might have been due to error and subsequently corrected and reinstated to active status.
Important to note: We are not considering those records that had a “Declared Non-Citizen” disqualification, but were subsequently reinstated and reactivated by ELECT.
Other Gaps to Note:
While EPEC has periodically purchased full copies of the Voter History List for our archives, there is a known issue with the way ELECT handles removals from the voter record that can cause sampling issues — depending on the time the VHL file is purchased. The result: Records of some legitimately cast ballots can be missing from the VHL due to this policy.
Namely, when ELECT removes an ineligible voter from the voter list, it also removes all instances of that registration’s voter ID from its voter history information and other data files that it provides to qualified organizations. (In my opinion, that process eliminates important voting information and thus is not a good way to manage the data, but that is the way it is done).
In light of that, EPEC also used its archived versions of the Daily Absentee List (DAL) early voting files to check records of ballots cast that might otherwise be eliminated from the VHL.
Results:
There were 8,566 unique voter records marked for removal with the reason of “Declared Non-Citizen” and not subsequently reinstated in the accumulated MUS record that EPEC began collecting in mid-2023. Of those 8,566 there were 1,756 that also had corresponding records of recent ballots cast at some point in the official Voter History record that we could observe. There were 6,111 associated ballots cast identified since Feb of 2019. Figure 1 below shows the distribution of non-citizen voters in the cumulative MUS file history. The blue trace represent the total identified and CANCELED non-citizen registrations, and the yellow trace represents the number of those records that also had corresponding records (at least 1) in the accumulated voter history data.
Figure 1: Distribution if the number of identified non-citizen records and ballots in the cumulative ELECT MUS file history. The x-axis is the date that a record was marked as CANCELED for the reason of “Declared Non-Citizen”.
Note that the data contained in the MUS updates often covers more than a single month’s period. In other words, the individual MUS files are oversampled. Subsequent MUS files can therefore also have repeated entries from previous versions, as their data may overlap. Our analysis used the first unique entry for a given voter ID marked as “Declared Non-Citizen” in the cumulative MUS record, that had not been subsequently reinstated, in order to build Figure 1. This data oversampling in the MUS may help explain the relative spike in the first (May 2023) bin compared to subsequent months.
As VHL information can be incomplete depending on the time the VHL data was purchased in relation to the time that registrants were removed from voter records, EPEC also checked these non-citizen removals against the archived history of Daily Absentee List (DAL) files that EPEC has accumulated. There were an additional ten non-citizen registrations and ballots as per the Daily Absentee List (DAL) data that were not contained in the Voter History data. The total number of identified non-citizen ballots cast is therefore 6,121 by 1,766 registrants when combining unique VHL and DAL identifications.
These identifications represent only the individuals who declared themselves as non-citizen status through official interactions with ELECT, DMV, or other agencies. Each removed registrant was then contacted by the registrar to confirm their non-citizen status prior to removal, as is the current policy. (Again … we are only considering those records that we’re flagged as “Declared Non-Citizen”, removed and never reinstated.)
The distribution of identified unique voter ID’s for the 1,756 identified non-citizen voters per VA locality is given below in Table 1. It should be noted that each ballot record has a specific locality associated with it stating where the ballot was cast, whereas unique individuals might move between localities over time. The assignment of unique identified individuals to each locality in table 1 is therefore based on the locality listed in the specific MUS “Declared Non-Citizen” record for that individual, while the assignment of ballot cast to Localities is based on the individual VHL/DAL records. A person could have lived and voted multiple times in one county, then moved to another county and voted again before finally being determined as a non-citizen. The same person would have generated multiple VHL/DAL records for each ballot cast, and associated with potentially different localities. This should be kept in mind when attempting to interpret Table 1.
LOCALITY_NAME
REMOVED
VOTED_VHL
VOTES_VHL
VOTED_DAL_NOT_IN_VHL
ACCOMACK COUNTY
20
1
7
0
ALBEMARLE COUNTY
94
31
162
0
ALEXANDRIA CITY
309
58
204
0
ALLEGHANY COUNTY
0
0
0
0
AMELIA COUNTY
5
2
9
0
AMHERST COUNTY
1
0
0
0
APPOMATTOX COUNTY
3
0
0
0
ARLINGTON COUNTY
264
55
185
0
AUGUSTA COUNTY
42
12
37
0
BATH COUNTY
3
1
1
0
BEDFORD COUNTY
31
14
60
0
BLAND COUNTY
1
1
3
0
BOTETOURT COUNTY
6
1
4
0
BRISTOL CITY
3
1
7
0
BRUNSWICK COUNTY
4
3
15
0
BUCHANAN COUNTY
0
0
0
0
BUCKINGHAM COUNTY
6
1
13
0
BUENA VISTA CITY
0
0
0
0
CAMPBELL COUNTY
3
1
10
0
CAROLINE COUNTY
18
4
15
0
CARROLL COUNTY
18
6
26
0
CHARLES CITY COUNTY
8
4
26
0
CHARLOTTE COUNTY
3
1
2
0
CHARLOTTESVILLE CITY
51
16
51
0
CHESAPEAKE CITY
192
67
267
0
CHESTERFIELD COUNTY
501
74
276
0
CLARKE COUNTY
16
7
19
0
COLONIAL HEIGHTS CITY
25
4
10
0
COVINGTON CITY
4
0
1
0
CRAIG COUNTY
3
2
3
0
CULPEPER COUNTY
51
9
32
0
CUMBERLAND COUNTY
1
0
0
0
DANVILLE CITY
43
5
13
0
DICKENSON COUNTY
3
1
1
0
DINWIDDIE COUNTY
18
6
25
0
EMPORIA CITY
5
0
0
0
ESSEX COUNTY
8
2
4
0
FAIRFAX CITY
32
9
26
0
FAIRFAX COUNTY
1428
271
737
2
FALLS CHURCH CITY
8
2
5
0
FAUQUIER COUNTY
45
9
16
0
FLOYD COUNTY
0
0
0
0
FLUVANNA COUNTY
6
3
12
0
FRANKLIN CITY
2
1
2
0
FRANKLIN COUNTY
13
7
36
0
FREDERICK COUNTY
45
8
24
0
FREDERICKSBURG CITY
48
4
12
0
GALAX CITY
5
0
0
0
GILES COUNTY
3
0
0
0
GLOUCESTER COUNTY
9
3
6
1
GOOCHLAND COUNTY
10
1
3
0
GRAYSON COUNTY
6
2
12
1
GREENE COUNTY
16
3
9
0
GREENSVILLE COUNTY
1
0
0
0
HALIFAX COUNTY
10
1
2
0
HAMPTON CITY
147
45
176
0
HANOVER COUNTY
35
6
23
0
HARRISONBURG CITY
161
13
27
0
HENRICO COUNTY
381
40
178
0
HENRY COUNTY
1
0
2
0
HIGHLAND COUNTY
0
0
0
0
HOPEWELL CITY
1
0
0
0
ISLE OF WIGHT COUNTY
5
2
21
0
JAMES CITY COUNTY
65
13
46
0
KING AND QUEEN COUNTY
3
2
7
0
KING GEORGE COUNTY
10
1
4
0
KING WILLIAM COUNTY
5
3
37
0
LANCASTER COUNTY
4
2
1
0
LEE COUNTY
0
0
0
0
LEXINGTON CITY
1
1
3
0
LOUDOUN COUNTY
484
127
414
0
LOUISA COUNTY
19
7
36
0
LUNENBURG COUNTY
2
0
0
0
LYNCHBURG CITY
53
13
51
0
MADISON COUNTY
2
1
5
0
MANASSAS CITY
110
15
43
0
MANASSAS PARK CITY
51
6
22
0
MARTINSVILLE CITY
18
5
5
0
MATHEWS COUNTY
0
0
0
0
MECKLENBURG COUNTY
16
8
19
0
MIDDLESEX COUNTY
3
1
1
0
MONTGOMERY COUNTY
31
5
21
1
NELSON COUNTY
7
4
20
0
NEW KENT COUNTY
14
9
36
0
NEWPORT NEWS CITY
233
55
219
0
NORFOLK CITY
247
55
220
0
NORTHAMPTON COUNTY
7
2
7
0
NORTHUMBERLAND COUNTY
4
3
11
0
NORTON CITY
1
0
0
0
NOTTOWAY COUNTY
12
4
31
0
ORANGE COUNTY
12
7
15
0
PAGE COUNTY
0
0
0
0
PATRICK COUNTY
5
1
2
0
PETERSBURG CITY
59
15
68
0
PITTSYLVANIA COUNTY
25
11
52
0
POQUOSON CITY
1
0
0
0
PORTSMOUTH CITY
121
46
132
0
POWHATAN COUNTY
6
1
8
0
PRINCE EDWARD COUNTY
14
3
11
0
PRINCE GEORGE COUNTY
34
5
9
0
PRINCE WILLIAM COUNTY
915
152
448
1
PULASKI COUNTY
14
4
7
0
RADFORD CITY
1
0
3
0
RAPPAHANNOCK COUNTY
3
0
0
0
RICHMOND CITY
345
65
241
1
RICHMOND COUNTY
2
1
4
0
ROANOKE CITY
193
22
68
0
ROANOKE COUNTY
34
4
5
0
ROCKBRIDGE COUNTY
0
0
1
0
ROCKINGHAM COUNTY
78
16
48
0
RUSSELL COUNTY
9
3
9
0
SALEM CITY
15
4
17
0
SCOTT COUNTY
6
4
17
0
SHENANDOAH COUNTY
42
6
18
0
SMYTH COUNTY
11
5
21
0
SOUTHAMPTON COUNTY
0
0
3
0
SPOTSYLVANIA COUNTY
137
7
18
0
STAFFORD COUNTY
242
45
133
2
STAUNTON CITY
9
2
11
0
SUFFOLK CITY
85
37
169
1
SURRY COUNTY
2
0
0
0
SUSSEX COUNTY
2
1
3
0
TAZEWELL COUNTY
9
3
13
0
VIRGINIA BEACH CITY
380
82
348
0
WARREN COUNTY
30
6
24
0
WASHINGTON COUNTY
21
6
22
0
WAYNESBORO CITY
3
0
4
0
WESTMORELAND COUNTY
8
1
6
0
WILLIAMSBURG CITY
18
4
7
0
WINCHESTER CITY
45
5
6
0
WISE COUNTY
6
5
13
0
WYTHE COUNTY
3
0
0
0
YORK COUNTY
38
15
51
0
8566
1756
6111
10
Discussion
Of particular concern is that we can see that there has been a significant order of magnitude (10 x) drop in the number of reported non-citizen removals in the MUS data starting in the MUS covering May 2026. This coincides with the recent aforementioned opinion letter from AG Jones to the Department of Elections that advised ELECT to NOT remove self-identified non-citizens from the rolls. The previous AG (Miyares) made the case that the fact that all of these removals were initiated by individual actions of self-identification via interactions with DMV or the Courts, etc., made the program appropriately “individualized” in accordance with NVRA. The courts had tentatively sided with Miyares argument and ultimately denied the injunction requested by the DOJ, LWV and fellow litigants. However, the case was withdrawn shortly after the election of AG Jones. AG Jones has now taken the opposite stance of Miyares, and is now effectively granting the relief that the DOJ & LWV were requesting in their suit even though the supreme court did not grant the injunction. Because of this new direction to not remove self identified non-citizens, this explains the order of magnitude decrease in the number of non-citizen removals that we observe in the MUS data.
Another point of concern is that even though we see a decrease in the removal rate per the policy changes above, we see a significant increase in the number of ballots associated with non-citizen records compared to our previous documented trends. The table below summarizes all of our previous posts on the subject, including this post. As can been seen in the table, while the cumulative number of identified non-citizen removals has increased by 1233 since our last report, the number of associated ballots cast has gone up by 2596 (nearly double). This equates to an average number of identified associated ballots cast per removed non-citizen of 0.713, while all other previous analyses had averages between 0.35 and 0.566.
Analysis Date
Removals
With Vote History
Associated Ballots Cast
Ratio of removed Non-Citizens to Ballots Cast
2024-03
1,481
335
838
0.5658
2024-07
1,973
399
938
0.4754
2024-09
2,299
438
1,034
0.4498
2024-10
3,533
537
1,296
0.3668
2024-11
3,761
569
1,333
0.3544
2024-12
3,765
562
1,318
0.3501
2025-03
4,400
683
1,775
0.4034
2025-08
6,086
1,003
2,839
0.4665
2026-01
7,343
1,225
3,515
0.4787
2026-06
8,566
1,756
6,111
0.7134
It is important to note that the records identified in the MUS are only those resulting from individuals who were removed from the voter rolls by ELECT after self-identifying as a non-citizen via interactions with DMV, ELECT, or other official avenues, and that the data presented here specifically excludes those individuals that were subsequently reinstated onto the voter rolls.
The fact that a small number of these identified non-citizen registrations are also associated with (presumably … if the data from ELECT is accurate) illegally cast ballots in previous elections does raise a number of questions that citizens should be (politely) asking and discussing with their legislators, elected and appointed government officials. Each act of non-citizen voting is a de-facto disenfranchisement of legal voters rights, and is a punishable offense under VA law.
Additionally, this evidence which is derived from only official state records, directly contradicts multiple news media reports and attestations that non-citizen voting is a “Myth”, and that non-citizen voting happens “almost never”. If the data from ELECT is accurate, then there are at least6,111 ballots that have been cast by non-citizen voters just since 2019. Now, that is still very infrequent, but it is not “almost never.” It is a legitimate concern … and these discoveries are only the registrations that have been found and removed from the voter roles by ELECT and that we can observe in the data.
It should also be reiterated that these are only the records that we can observe given our data repository, and how often we can realistically purchase and acquire voter history and voter registration information. It is therefore likely that this represents a significant undercount of the occurrences of non-citizen voters and non-citizen voting.
Due to the infrequent nature of these data purchases, it is very likely that some individuals have had their voter history or voter registration information completely removed from the record in between our purchases. Additionally, we know that the MUS data does not entirely encompass all transactions performed on the RVL by the department of elections, so there may be yet other unknown transactions that we are missing.
We do not know how many exist that we do not know about, and with the recent change in guidance from the new AG Jones to ELECT we expect that our ability to observe and report on these issues into the future will be significantly impacted, as ELECT will stop removals of many of these records, and therefore they will not show up in the MUS records, even though they have been correctly flagged via self-identification.
There are at least 6,096 statewide records that are currently approved to receive absentee ballots, on a permanent basis, that DO NOT HAVE CORRESPONDING RECORDS EXISTING in the Registered Voter List.
Derivation:
As we’re now in the early voting period for the VA April 21 2026 Special Election regarding the redistricting push (sidebar: we strongly urge you to vote, and to vote “NO” btw), we purchased a fresh version of the Registered Voter List (“RVL”) and the Comprehensive Absentee Application List (“CAAL”) from the department of elections, as well as a Voter History List (VHL), all at the same time.
This gives us a full, temporally consistent, official dataset of all of these files direct from the department of elections (“ELECT”).
The the CAAL encompasses the Permanent Absentee List (PAL) as well as those voters that have made non-recurring requests for absentee by mail ballots. Upon examining the CAAL file, there are a couple of issues that are easily observed.
The first issue observed is that the CAAL, as we received it from ELECT, contains a number of duplicated records, with the only distinction being the APP_STATUS field. As there is no other distinguishing difference between rows that represent the same voter ID, it is impossible to know which row represents the current “status” of the voter ID being represented. There is no distinguishing transaction time stamp or other method to determine precedence of the records.
We don’t have any way of knowing which row entry came first. i.e. Was John Q Public in the table below first deemed to be “INCOMPLETE” then “DENIED”, and then John corrected his request and was “APPROVED”? OR was he initially “APPROVED” by default, but then an issue was discovered by the GR and he was deemed “INCOMPLETE”, with him finally getting “DENIED” because he didn’t correct the issue after a given time period?
There is no way to tell from the incomplete data provided by ELECT.
ID
FIRST
MIDDLE
LAST
…
APP_STATUS
12345
John
Q
Public
…
APPROVED
12345
John
Q
Public
…
INCOMPLETE
12345
John
Q
Public
…
DENIED
… etc …
So how do we make an inference as to if a given voter with multiple conflicting records in the CAAL are “APPROVED” to receive mail in ballots or not?
Since we don’t know the temporal precedence, we could try and make a mathematical simplification / assumption that an APPROVED state can be cancelled out by a any “non-approved” state, and then we can take the sum of any APPROVED state (with a value of +1) combined with any “non-approved” (with a value of -1) state for a given voter ID number that appears in the CAAL. If the result is positive, we could consider the current state as being “approved”.
While that might be an appropriate way to interpret the data … a more conservative method is to only consider those records where there is no conflict in the APP_STATUS field. i.e. There is only a single row representing a given Voter ID number, and it’s status is “APPROVED”. This assures us that there is no confusion, although it may be a significant undercount as to understanding the total numbers that are considered APPROVED by the state from the official record as provided.
If we take that second, more conservative, approach and then cross correlate with the aforementioned RVL, which was purchased at the same time as the CAAL, we discover a second issue with the data from ELECT. Namely, that there are a number of APPROVED records on the CAAL that have no existing record in the RVL. There are 6,109 of these, to be exact.
To be extra conservative in trying to interpret this data, if we further restrict this list to only those records that are “Permanent Absentee” … meaning that they are signed up to automatically receive mail in ballots every election in perpetuity … the number drops (only by 13) to 6,096.
That is … There are 6,096 statewide records (a very conservative estimate) that are currently approved to receive absentee ballots, on a permanent basis, that DO NOT HAVE CORRESPONDING RECORDS EXISTING in the Registered Voter List.
This is based on only official data from ELECT
All data was purchased at the same exact time from ELECT, so we have the most temporally consistent datasets possible to compare against.
Our analysis was extremely conservative in our interpretation of the data from ELECT, ignoring entries that could not be clearly interpreted or rectified.
Below you will find the current summary data and graphics from the 2026 VA April 21 Special Election Daily Absentee List files. We pull the DAL file everyday and track the count of each specific ballot category in each daily file.
It should be noted that EPEC strongly encourages voters to make their voices heard and recommends that voters vote NO on this special election referendum.
Note: Page may take a moment to load the graphics objects.
Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The logarithmic plot is the same underlying data as the linear scale plot, except with a logarithmic y-scale in order to be able to compress the dynamic range and see the shape of all of the data curves in a single graphic. Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The underlying data for the graphics above is provided in the summary data table.
Additional Data:
Additional CSV datasets stratified by Locality, City, Congressional District, State House District, State Senate District, and Precinct are available here. Please note that you need to give the page time to load before trying to drill down into any of the listed subdirectories, and mobile browsers have shown some issues.
A direct link to a zip file with ALL of the metrics data stratified by Locality, etc is here.
Data column descriptions:
“ISSUED” := Number of DAL file records where BALLOT_STATUS= “ISSUED”
“NOT_ISSUED” := Number of DAL file records where BALLOT_STATUS= “NOT ISSUED”
“PROVISIONAL” := Number of DAL file records where BALLOT_STATUS= “PROVISIONAL” and APP_STATUS=”APPROVED”
“DELETED” := Number of DAL file records where BALLOT_STATUS= “DELETED”
“MARKED” := Number of DAL file records where BALLOT_STATUS= “MARKED” and APP_STATUS=”APPROVED”
“ON_MACHINE” := Number of DAL file records where BALLOT_STATUS= “ON_MACHINE” and APP_STATUS=”APPROVED”
“PRE_PROCESSED” := Number of DAL file records where BALLOT_STATUS= “PRE-PROCESSED” and APP_STATUS=”APPROVED”
“FWAB” := Number of DAL file records where BALLOT_STATUS= “FWAB” and APP_STATUS=”APPROVED”
“MAIL_IN” := The sum of “MARKED” + “PRE_PROCESSED”
“COUNTABLE” := The sum of “PROVISIONAL” + “MARKED” + “PRE_PROCESSED” + “ON_MACHINE” + “FWAB”
“MILITARY” := Number of DAL file records where VOTER_TYPE= “MILITARY”
“OVERSEAS” := Number of DAL file records where VOTER_TYPE= “OVERSEAS”
“TEMPORARY” := Number of DAL file records where VOTER_TYPE= “TEMPORARY”
“MILITARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “MILITARY” and where COUNTABLE is True
“OVERSEAS_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “OVERSEAS” and where COUNTABLE is True
“TEMPORARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “TEMPORARY” and where COUNTABLE is True
“MILITARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “MILITARY” and where BALLOT_STATUS==”ISSUED”
“OVERSEAS_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “OVERSEAS” and where BALLOT_STATUS==”ISSUED”
“TEMPORARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “TEMPORARY” and where BALLOT_STATUS==”ISSUED”
“COUNTABLE_HIGH_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in 75% or more of the November General elections on record. (i.e. They have a high November General propensity score)
“COUNTABLE_MED_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in < 75% and > 0% of the November General elections on record.
“COUNTABLE_ZERO_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has never voted in any of the November General elections on record.
All data purchased by Electoral Process Education Corp. (EPEC) from the VA Dept of Elections (ELECT). All processing performed by EPEC.
If you like the work that EPEC is doing, please support us with a donation.
Using the data provided by the VA Department of Elections (ELECT), we have identified at least 7,343 unique registrations that were self-identified as “Declared Non-Citizen” and removed by ELECT from the voter rolls since May of 2023. Of those 7,343 removals there were 1,225 that also had corresponding records of recent ballots cast at some point in the official Voter History record that we could observe. There were 3,515 associated ballots cast identified since Feb of 2019. There were an additional 10 non-citizen registrations and ballots as per the Daily Absentee List (DAL) data, that were not contained in the Voter History data. The total number of identified non-citizen ballots cast is therefore 3,525 by 1,235 registrants when combining unique VHL and DAL identifications.
After our initial March 2024 post on this topic, we submitted all of the relevant information that we had at the time to the VA AG’s office. We have not heard any response or update on the matter since that time, besides this being considered an active investigation. We subsequently sent our July results as well to the same contact at the AG’s office, but have had no response. The outgoing VA AG declined to take any action on these cases that we are aware of.
The Arlington County VA Electoral Board undertook their own investigation into this matter after our previous results were posted, and they (as of Sept 10 2024) voted 3-0 to send the information to the AG’s office as well. The Arlington County Commonwealths Attorney also is reported to have an ongoing investigation into the matter. Similar efforts are underway in multiple other counties, including Loudoun and Fairfax counties, to name a few.
In October 2024 the League of Women Voters along with the US DOJ sued VA over this issue and attempted to get an injunction to place ~1,600 of these removed registrations back on the Voter roll. After two lower courts granted the injunction, it was stayed by the US Supreme Court. It is EPEC’s opinion that the State of VA is correctly applying the law in this matter, as I detailed in a X.com post on Oct 12.
Background:
The VA Department of Elections continuously tries to identify and remove invalid or out of date registration records from the voter rolls. One category used for removal is if a registrant has been determined to be a non-citizen. It is required by the VA Constitution that only citizens are allowed to vote in VA elections.
In elections by the people, the qualifications of voters shall be as follows: Each voter shall be a citizen of the United States, shall be eighteen years of age, shall fulfill the residence requirements set forth in this section, and shall be registered to vote pursuant to this article. …VA Constitution, Article II, Section 1. https://law.lis.virginia.gov/constitution/article2/section1/
Additionally, according to VA Code Section 24.2-1004, the act of knowingly casting a ballot by someone who is not eligible to vote is a Class 6 felony.
A. Any person who wrongfully deposits a ballot in the ballot container or casts a vote on any voting equipment, is guilty of a Class 1 misdemeanor.
B. Any person who intentionally (i) votes more than once in the same election, whether those votes are cast in Virginia or in Virginia and any other state or territory of the United States, (ii) procures, assists, or induces another to vote more than once in the same election, whether those votes are cast in Virginia or in Virginia and any other state or territory of the United States, (iii) votes knowing that he is not qualified to vote where and when the vote is to be given, or (iv) procures, assists, or induces another to vote knowing that such person is not qualified to vote where and when the vote is to be given is guilty of a Class 6 felony.https://law.lis.virginia.gov/vacode/title24.2/chapter10/section24.2-1004/
ELECT makes available for purchase by qualifying parties various different data sets, including the registered voter list (RVL) and the voter history list information file (VHL). Additionally, ELECT makes available a Monthly Update Service (MUS) subscription that is published at the beginning of each month and contains (almost) all of the Voter List changes and transactions for the previous period.
In the MUS data there is a “NVRAReasonCode” field that is associated with each transaction that gives the reason for the update or change in the voter record. This is in accordance with the disclosure and transparency requirements in the NVRA. One of the possible reason codes given for records that are removed is “Declared Non-Citizen.”
EPEC has been consistently purchasing and archiving all of these official records as part of our ongoing work to document and educate the public as to the ongoing operations of our elections. (If your interested in supporting this work, please head on over to our donation page, or to our give-send-go campaign to make a tax-deductible donation, as these data purchases are not cheap!)
EPEC looked at the number of records associated with unique voter identification numbers that had been identified for removal from the voter record due to non-citizenship status, per the entries in the MUS, and correlated those results with our accumulated voter history list information in order to determine how many non-citizen registrations had corresponding records of ballots cast in previous elections. We only considered those records that are currently in a non-active state as of the latest MUS transaction log, as some determinations of non-citizenship status in the historical MUS transaction log might have been due to error and subsequently corrected and reinstated to active status. That is, and we emphasize here that we are not considering those records that had a “Declared Non-Citizen” disqualification, but were then subsequently reinstated and reactivated by ELECT.
Note that while EPEC has periodically purchased full copies of the Voter History List for our archive, there is a known issue with the way ELECT handles removals from the voter record that can cause sampling issues depending on the time the VHL file is purchased, and records of legitimately cast ballots to not be present in the VHL: Namely, when ELECT removes a voter from the voter list, they also remove all instances of that voter ID from voter history information and other data files provided to qualified organizations. (IMO … thats a terrible way to manage the data, but that is the way it is done.) In light of that, EPEC also used its archived versions of the Daily Absentee List (DAL) for recent elections in order to attempt to find records of votes cast that might otherwise be missing from the VHL.
Results:
There were 7,343 unique voter records marked for removal with the reason of “Declared Non-Citizen” and not subsequently reinstated in the accumulated MUS record that EPEC began collecting in mid-2023. Of those 7,343 there were 1,225 that also had corresponding records of recent ballots cast at some point in the official Voter History record that we could observe. There were 3,515 associated ballots cast identified since Feb of 2019. Figure 1 below shows the distribution of non-citizen voters in the cumulative MUS file history. The blue trace represent the total identified and CANCELED non-citizen registrations, and the yellow trace represents the number of those records that also had corresponding records (at least 1) in the accumulated voter history data.
Figure 1: Distribution if the number of identified non-citizen records and ballots in the cumulative ELECT MUS file history. The x-axis is the date that a record was marked as CANCELED for the reason of “Declared Non-Citizen”.
Note that the data contained in the MUS updates often covers more than a single month period. In other words, the individual MUS files are oversampled. Subsequent MUS files can therefore also have repeated entries from previous versions, as their data may overlap. Our analysis used the first unique entry for a given voter ID marked as “Declared Non-Citizen” in the cumulative MUS record, that had not been subsequently reinstated, in order to build Figure 1. This data oversampling in the MUS may help explain the relative spike in the first (May 2023) bin compared to subsequent months.
As VHL information can be incomplete depending on the time the VHL data was purchased in relation to the time that registrants were removed from voter records, EPEC also checked these non-citizen removals against the archived history of Daily Absentee List (DAL) files that EPEC has accumulated. There were an additional 10 non-citizen registrations and ballots as per the Daily Absentee List (DAL) data that were not contained in the Voter History data. The total number of identified non-citizen ballots cast is therefore 3,525 by 1,235 registrants when combining unique VHL and DAL identifications.
These identifications represent only the individuals who declared themselves as non-citizen status through official interactions with ELECT, DMV, or other agencies. Each removed registrant was then contacted by the registrar to confirm their non-citizen status prior to removal, as is the current policy. (Again … we are only considering those records that we’re flagged as “Declared Non-Citizen”, removed and never reinstated.)
The distribution of identified unique voter ID’s for the 1,225 identified non-citizen voters per VA locality is given below in Table 1. It should be noted that each ballot record has a specific locality associated with where the ballot was cast, whereas unique individuals might move between localities over time. The assignment of unique identified individuals to each locality in table 1 is therefore based on the locality listed in the specific MUS “Declared Non-Citizen” record for that individual, while the assignment of ballot cast to Localities is based on the individual VHL/DAL records. A person could have lived and voted multiple times in one county, then moved to another county and voted again before finally being determined as a non-citizen. The same person would have generated multiple VHL/DAL records for each ballot cast, and associated with potentially different localities. This should be kept in mind when attempting to interpret Table 1.
LOCALITY_NAME
REMOVED
VOTED_VHL
VOTES_VHL
VOTED_DAL_NOT_IN_VHL
ACCOMACK COUNTY
18
0
1
0
ALBEMARLE COUNTY
74
16
59
0
ALEXANDRIA CITY
270
31
71
0
ALLEGHANY COUNTY
0
0
0
0
AMELIA COUNTY
4
2
9
0
AMHERST COUNTY
1
0
0
0
APPOMATTOX COUNTY
2
0
0
0
ARLINGTON COUNTY
219
34
75
0
AUGUSTA COUNTY
32
6
10
0
BATH COUNTY
3
1
1
0
BEDFORD COUNTY
19
4
10
0
BLAND COUNTY
1
1
3
0
BOTETOURT COUNTY
5
0
0
0
BRISTOL CITY
2
0
0
0
BRUNSWICK COUNTY
3
2
6
0
BUCHANAN COUNTY
0
0
0
0
BUCKINGHAM COUNTY
4
0
0
0
BUENA VISTA CITY
0
0
0
0
CAMPBELL COUNTY
0
0
6
0
CAROLINE COUNTY
15
2
6
0
CARROLL COUNTY
14
5
16
0
CHARLES CITY COUNTY
7
3
14
0
CHARLOTTE COUNTY
1
0
0
0
CHARLOTTESVILLE CITY
38
8
18
0
CHESAPEAKE CITY
153
44
136
0
CHESTERFIELD COUNTY
438
51
148
0
CLARKE COUNTY
13
4
6
0
COLONIAL HEIGHTS CITY
23
2
4
0
COVINGTON CITY
4
0
1
0
CRAIG COUNTY
3
2
3
0
CULPEPER COUNTY
45
7
22
0
CUMBERLAND COUNTY
1
0
0
0
DANVILLE CITY
37
5
13
0
DICKENSON COUNTY
3
1
1
0
DINWIDDIE COUNTY
18
6
25
0
EMPORIA CITY
4
0
0
0
ESSEX COUNTY
8
2
4
0
FAIRFAX CITY
28
7
22
0
FAIRFAX COUNTY
1261
224
537
2
FALLS CHURCH CITY
8
2
5
0
FAUQUIER COUNTY
41
5
11
0
FLOYD COUNTY
0
0
0
0
FLUVANNA COUNTY
4
2
10
0
FRANKLIN CITY
1
0
0
0
FRANKLIN COUNTY
10
5
16
0
FREDERICK COUNTY
37
4
5
0
FREDERICKSBURG CITY
43
3
10
0
GALAX CITY
4
0
0
0
GILES COUNTY
3
0
0
0
GLOUCESTER COUNTY
6
2
2
1
GOOCHLAND COUNTY
9
0
0
0
GRAYSON COUNTY
3
0
0
1
GREENE COUNTY
15
2
8
0
GREENSVILLE COUNTY
1
0
0
0
HALIFAX COUNTY
8
1
2
0
HAMPTON CITY
121
29
83
0
HANOVER COUNTY
28
3
9
0
HARRISONBURG CITY
143
8
17
0
HENRICO COUNTY
302
14
71
0
HENRY COUNTY
1
0
2
0
HIGHLAND COUNTY
0
0
0
0
HOPEWELL CITY
0
0
0
0
ISLE OF WIGHT COUNTY
3
0
2
0
JAMES CITY COUNTY
58
9
32
0
KING AND QUEEN COUNTY
3
2
7
0
KING GEORGE COUNTY
10
1
1
0
KING WILLIAM COUNTY
3
1
12
0
LANCASTER COUNTY
1
1
0
0
LEE COUNTY
0
0
0
0
LEXINGTON CITY
0
0
0
0
LOUDOUN COUNTY
418
99
228
0
LOUISA COUNTY
13
2
11
0
LUNENBURG COUNTY
2
0
0
0
LYNCHBURG CITY
43
7
20
0
MADISON COUNTY
1
0
0
0
MANASSAS CITY
90
10
32
0
MANASSAS PARK CITY
43
3
9
0
MARTINSVILLE CITY
16
4
3
0
MATHEWS COUNTY
0
0
0
0
MECKLENBURG COUNTY
14
7
18
0
MIDDLESEX COUNTY
3
1
1
0
MONTGOMERY COUNTY
26
4
17
1
NELSON COUNTY
3
0
0
0
NEW KENT COUNTY
9
5
22
0
NEWPORT NEWS CITY
211
47
161
0
NORFOLK CITY
199
33
123
0
NORTHAMPTON COUNTY
6
1
4
0
NORTHUMBERLAND COUNTY
3
2
7
0
NORTON CITY
1
0
0
0
NOTTOWAY COUNTY
7
1
6
0
ORANGE COUNTY
9
5
14
0
PAGE COUNTY
0
0
0
0
PATRICK COUNTY
5
1
2
0
PETERSBURG CITY
44
7
26
0
PITTSYLVANIA COUNTY
15
3
9
0
POQUOSON CITY
1
0
0
0
PORTSMOUTH CITY
96
33
93
0
POWHATAN COUNTY
5
1
8
0
PRINCE EDWARD COUNTY
14
3
11
0
PRINCE GEORGE COUNTY
30
3
5
0
PRINCE WILLIAM COUNTY
827
126
348
1
PULASKI COUNTY
13
4
7
0
RADFORD CITY
1
0
1
0
RAPPAHANNOCK COUNTY
3
0
0
0
RICHMOND CITY
310
54
176
1
RICHMOND COUNTY
0
0
0
0
ROANOKE CITY
159
9
18
0
ROANOKE COUNTY
30
3
4
0
ROCKBRIDGE COUNTY
0
0
1
0
ROCKINGHAM COUNTY
69
14
34
0
RUSSELL COUNTY
6
3
9
0
SALEM CITY
10
2
1
0
SCOTT COUNTY
6
4
17
0
SHENANDOAH COUNTY
35
3
10
0
SMYTH COUNTY
8
3
14
0
SOUTHAMPTON COUNTY
0
0
0
0
SPOTSYLVANIA COUNTY
123
4
11
0
STAFFORD COUNTY
210
30
69
2
STAUNTON CITY
7
0
0
0
SUFFOLK CITY
67
25
81
1
SURRY COUNTY
2
0
0
0
SUSSEX COUNTY
2
1
3
0
TAZEWELL COUNTY
8
2
9
0
VIRGINIA BEACH CITY
336
65
260
0
WARREN COUNTY
26
4
12
0
WASHINGTON COUNTY
14
3
8
0
WAYNESBORO CITY
3
0
0
0
WESTMORELAND COUNTY
7
0
0
0
WILLIAMSBURG CITY
17
3
5
0
WINCHESTER CITY
40
3
4
0
WISE COUNTY
2
1
2
0
WYTHE COUNTY
3
0
0
0
YORK COUNTY
35
13
49
0
7,343
1,225
3,515
10
The distribution of the 3,515 ballots that were identified as being cast by non-citizen voters (the yellow trace in Figure 1) in previous elections is shown in Figure 2. The most significant spikes are in the 2019, 2020, 2021 and 2022 November General elections, as well as the 2020 March Democratic presidential primary. Figure 3, which shows this distribution as a percentage of votes cast. Please note the scale of the Y-axis on the percent plot in Figure 3 is in percent of total ballots cast in each election. These graphs were only produced for the VHL data, and do not include the DAL identified records.
Figure 2: Distribution of identified non-citizen ballots cast in previous elections.Figure 3: Distribution of identified non-citizen ballots cast in previous elections as percent of total ballots cast, according to entries in the VHL/DAL data files.
Figures 4 and 5 show the distribution of the registration dates of the identified non-citizen records. The same data is plotted in figure 4 and 5, with the only difference being the scale of the Y-axis in order to better observe the dynamic range of the values. When we look at the registration date of these identified records, we see that there is a distinct relative increase starting around 1996, and then again around 2012.
Figure 4: Registration dates of the identified non-citizen records. Absolute count on y-axis.Figure 5: Registration dates of the identified non-citizen records. Logarithmic Y-axis scale.
EPEC made a FOIA request to the VA Attorney General’s office on March 11, 2024 inquiring for any records regarding how many prosecutions for non-citizen voting had occurred since June of 2023. We received a response that the AG had no such relevant records.
EPEC subsequently submitted our March analysis dataset to the VA AG’s office upon their request. We have heard no updates or status as to any action taken by the AG’s office since that time, except that it is being considered an ongoing investigation.
Discussion
It appears from the MUS data, that the VA Department of Elections (ELECT) is doing routine identification, cleanup and removal of non-citizen registrations, which is a good thing and we commend them for their continued efforts to maintain clean voter registration lists.
Given the current court cases filed by LWV and DOJ against the state of VA on the matter, it is important to note that the records identified in the MUS are only those resulting from individuals self-identifying as a non-citizen via interactions with DMV, ELECT, or other official avenues, and that the data presented here specifically excludes those individuals that were subsequently reinstated onto the voter rolls.
The fact that a small number of these identified non-citizen registrations are also associated with (presumably … if the data from ELECT is accurate) illegally cast ballots in previous elections does raise a number of questions that citizens should be (politely) asking and discussing with their legislators, elected and appointed government officials. Each act of non-citizen voting is a de-facto disenfranchisement of legal voters rights, and is a punishable offense under VA law.
Q: How did these registrants get placed onto the voter rolls in the first place?
Q: What method and/or data sources are used by the state to identify non-citizen registrations for removal? If that process is exhaustive, and covers all registrations, then these numbers might be considered to represent a statistical complete picture of the problem. If that process is not exhaustive, in that it only uses serendipitous corroborating data sources, then these results likely under-represent the scale of the issues.
Q: As noted above, we are only considering here those individuals who have not had their records re-instated or reactivated after a determination of non-citizen status. We do not have enough information to determine how or why some records were first determined to be non-citizen, canceled and then subsequently re-instated. One potential area of concern is determining whether or not registrants might be falsely or errantly claiming to not be a citizen on official documents in order to be excused from jury duty, for example, and then work to re-instate their voting status once those documents percolate through the system to ELECT and are flagged for removal. This is a wholly separate but serious issue, as making false claims on official documents is itself a punishable offense.
Q: What procedures, processes and technical solutions are in place to prevent current or future registration and casting of ballots by non-citizens? This is especially pertinent given the recent state of the flow of illegal immigrants crossing our national borders. According to a recent report by Yahoo Finance, VA is one of the top 30 destinations for illegal migrants, with both Loudoun County and Fairfax making the list.
Q: Why have none of the identified non-citizens who also cast ballots been investigated or prosecuted under VA Code 24.2-1004? As the identification of these ballots comes directly from looking at the official records produced by ELECT, it seems prudent for these to be forwarded by ELECT to the AG’s office with a recommendation to investigate and prosecute. Yet our FOIA request to the VA AG’s office inquiring as to any records associated with these types of investigations or prosecutions produced a “no relevant records exist” response. And since we submitted this information to the AG’s office, there has been no follow up.
Additionally, this evidence which is derived from only official state records, directly contradicts multiple news media reports and attestations that non-citizen voting is a “Myth”, and that non-citizen voting happens “almost never”. If the data from ELECT is accurate, then there are at least 3,515 ballots that have been cast by non-citizen voters just since 2019. Now, that is still very infrequent, but it is not “almost never.” It is a legitimate concern … and these discoveries are only the registrations that have been found and removed from the voter roles by ELECT and that we can observe in the data. We do not know how many exist that we do not know about.
It should be reiterated that these are only the records that we can observe given our data repository, and how often we can realistically purchase and acquire voter history and voter registration information. It is therefore likely that this represents a significant undercount of the occurrences of non-citizen voters and non-citizen voting.
Due to the infrequent nature of these data purchases, it is very likely that some individuals have had their voter history or voter registration information completely removed from the record in between our purchases. Additionally, we know that the MUS data does not entirely encompass all transactions performed on the RVL by the department of elections, so there may be yet other unknown transactions that we are missing.
For information that is supposed to be publicly available (according to federal NVRA laws), the state has put up significant hurdles in order for citizens and organizations to acquire it for use it for ensuring transparency and integrity of our electoral process. If we are to have elections that are transparent and accountable to the public, then we must insist that the data be made available and accessible.
Below you will find the current summary data and graphics from the 2024 VA November General Election Daily Absentee List files. We pull the DAL file everyday and track the count of each specific ballot category in each daily file.
Note: Page may take a moment to load the graphics objects.
Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The logarithmic plot is the same underlying data as the linear scale plot, except with a logarithmic y-scale in order to be able to compress the dynamic range and see the shape of all of the data curves in a single graphic. Place your cursor over the series name in the legend at right to see the series highlighted in the graphic. Place your cursor over a specific data point to see that data points value.
The underlying data for the graphics above is provided in the summary data table.
Additional Data:
Additional CSV datasets stratified by Locality, City, Congressional District, State House District, State Senate District, and Precinct are available here. Please note that you need to give the page time to load before trying to drill down into any of the listed subdirectories, and mobile browsers have shown some issues.
A direct link to a zip file with ALL of the metrics data stratified by Locality, etc is here.
Data column descriptions:
“ISSUED” := Number of DAL file records where BALLOT_STATUS= “ISSUED”
“NOT_ISSUED” := Number of DAL file records where BALLOT_STATUS= “NOT ISSUED”
“PROVISIONAL” := Number of DAL file records where BALLOT_STATUS= “PROVISIONAL” and APP_STATUS=”APPROVED”
“DELETED” := Number of DAL file records where BALLOT_STATUS= “DELETED”
“MARKED” := Number of DAL file records where BALLOT_STATUS= “MARKED” and APP_STATUS=”APPROVED”
“ON_MACHINE” := Number of DAL file records where BALLOT_STATUS= “ON_MACHINE” and APP_STATUS=”APPROVED”
“PRE_PROCESSED” := Number of DAL file records where BALLOT_STATUS= “PRE-PROCESSED” and APP_STATUS=”APPROVED”
“FWAB” := Number of DAL file records where BALLOT_STATUS= “FWAB” and APP_STATUS=”APPROVED”
“MAIL_IN” := The sum of “MARKED” + “PRE_PROCESSED”
“COUNTABLE” := The sum of “PROVISIONAL” + “MARKED” + “PRE_PROCESSED” + “ON_MACHINE” + “FWAB”
“MILITARY” := Number of DAL file records where VOTER_TYPE= “MILITARY”
“OVERSEAS” := Number of DAL file records where VOTER_TYPE= “OVERSEAS”
“TEMPORARY” := Number of DAL file records where VOTER_TYPE= “TEMPORARY”
“MILITARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “MILITARY” and where COUNTABLE is True
“OVERSEAS_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “OVERSEAS” and where COUNTABLE is True
“TEMPORARY_COUNTABLE” := Number of DAL file records where VOTER_TYPE= “TEMPORARY” and where COUNTABLE is True
“MILITARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “MILITARY” and where BALLOT_STATUS==”ISSUED”
“OVERSEAS_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “OVERSEAS” and where BALLOT_STATUS==”ISSUED”
“TEMPORARY_ISSUED” := Number of DAL file records where APP_STATUS==”Approved”, VOTER_TYPE= “TEMPORARY” and where BALLOT_STATUS==”ISSUED”
“COUNTABLE_HIGH_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in 75% or more of the November General elections on record. (i.e. They have a high November General propensity score)
“COUNTABLE_MED_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has voted in < 75% and > 0% of the November General elections on record.
“COUNTABLE_ZERO_PROP_NG” := Number of DAL file records where COUNTABLE is True and the registrant has never voted in any of the November General elections on record.
All data purchased by Electoral Process Education Corp. (EPEC) from the VA Dept of Elections (ELECT). All processing performed by EPEC.
If you like the work that EPEC is doing, please support us with a donation.
I previously had put together analysis that utilized the full name and date of birth information from the Virginia Registered Voter List (“RVL”) in order to look for duplicate registrations, either exact matches or by using a string distance measure (the Levenshtein distance) to accommodate for typos, abbreviations, and mis-spellings.
Just prior to the start of early voting in the 2024 November General Election, we were notified that the department of elections (“ELECT”) was removing the full date of birth from the data we purchase. This removal of the full date of birth increased the number of false positive in our duplication detection scripts. Our organization, as well as others, were ready to go to court to compel ELECT to reinstate the data. (Link to our notice of violation letter is here).
Happily, we ended up not having to go to court as ELECT decided to reinstate the data earlier this year (~May timeframe), which means we can resume our computation and detections of potentially duplicate entries again with much more reliable results. The results below mirror our previous analysis, but with the new updated data.
Using the latest Registered Voter List (RVL) and Voter History List (VHL) data purchased directly 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, but representative, 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:
As a baseline, there were 5,514 (as compared to 6,464 in the previous May 27, 2023 posting) records for STATUS=’Active’ registrants that adhered to the definition of a “duplicate” when Social Security Number (SSN) is not available, as defined by the MOU between DMV and ELECT (section 7.3) of having the same First Name + Last Name + Full Date of Birth (DOB). It should be noted that most records held by DMV and ELECT have a SSN associated with them (or at least they should). SSN information is not distributed as part of the data purchased by us from ELECT, however, so this is the appropriate standard baseline for this work.
Upgrading our definition of a potential duplicate to [First + Middle + Last + Suffix + DOB] and using a LevenshteinDistance=0 (meaning an exact match) drops the number of potential duplicates to 1,062 (1,982 previously), with each identified registrant in a pair having an exactly matching string result and unique voter ID numbers.
According to my derivations and simulations that are described in detail here, we should only expect to see an average of 11 (+/- 3) potential duplicate pairs (a.k.a. “collisions”) at a distance of 0. This is over two orders of magnitude different than what we observe in the compiled results. Such a discrepancy deserves further investigation and verification.
Allowing for a single string difference by setting LevenshteinDistance<=1 increases the pool of potential duplicates to 4,572 (5,568 previously). While this relaxation of the filter does allow us to find certain issues (described below) it also increases our chances of finding false positives as well. The LD metric results should not be viewed as a final determination, but as simply a useful tool to make an initial pass through the data and find candidate matches that still require further review, verification and validation.
Increasing to LevenshteinDistance<=2 brings the number of potential duplicates up to 27,178 (32,610 previously). When we increase to LD <= 3 we get an explosion of 158,940 (183,130 previously) potential duplicates.
It should be noted that compared to our last full analysis (May 2023) the dept of elections has reduced the number of exact duplicates by about 45%, and by approximately 13-15% for the other inexact categories.
Method:
For every entry in the latest RVL, I performed a string distance comparison, based on Levenshtein distance, between every possible pair of strings of (FIRST NAME + MIDDLE NAME + LAST NAME + SUFFIX + FULL DOB). For the ~6M+ different RVL entries, we therefore need to compute ~3.8 x 10^13 different string comparisons, and each string comparison can require upwards of 75 x 75 individual character comparisons, meaning the total number of character operations is on the order of 202.5 Quadrillion, not including logging and I/O.
A distance of 0 indicates the strings being compared are identical, a distance of 1 indicates that there a single character can be changed, inserted or removed that would convert one string into the other. A distance of 2 indicates that 2 modifications are required, etc.
Example: The string pair of “ALISHA” –> “ALISHIA” has an LD of 1, corresponding to the addition of an “I” before the final “A”.
I aggregated all of the Levenshtein 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 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 distance of 1 at the same address. In an attempt to limit false positives, I have clamped the distance checks to <= 3 in this analysis.
Note that the Levenshtein distance measure is importantly able to identify potential insertions or deletions as well as character changes, which is an improvement over the Hamming distance measure. This is exampled by the following pairing: “David Joseph Smith M 10/01/1981” and “Dave Joseph Smith M 10/01/1981”. The change from “id” to “e” in the first name adds/subtracts a character making the rest of the characters in the remainder of the string shift position. A Levenshtein metric would correctly return a small distance of 2, whereas the hamming distance returns 27.
Also 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.
DMV_ELECT MOU Standard
LD <= 0
LD <= 1
LD <= 2
LD <= 3
Number of Potential Duplicate Registrant Pairs
6,108
1,250
5,116
29,480
170,772
Number of Potential Duplicate Registrant Pairs (Active Only)
5,514
1,062
4,572
27,178
158,940
Number of Potential Duplicate Ballots
2,856
58
1,580
16,984
109,428
Number of Potential Duplicate Ballots (Active Only)
2,770
54
1,552
16,410
105,932
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 (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 here), 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 (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 (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 (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 (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 (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 (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
Example #8: The following set of records has a single punctuation character different, with the 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:
JOHN JACOB JINGLHIEMER-SCHMIDT 06/29/1997 M 12345 JACOBS RD
Voter Record B:
JOHN JACOB JINGLHIEMER SCHMIDT 06/29/1997 M 12345 JACOBS RD
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 [First Name, Middle Name, Last Name, Suffix, and DOB]. The full file with specific voter information can be provided to parties authorized by ELECT to receive and process voter information, Election Officials, or Law Enforcement upon request.
Using the data provided by the VA Department of Elections (ELECT), we have identified at least 6,086 unique registrations that were self-identified as “Declared Non-Citizen” and removed by ELECT from the voter rolls since May of 2023. Of those 6,086 removals there were 1,003 that also had corresponding records of recent ballots cast at some point in the official Voter History record that we could observe. There were 2,839 associated ballots cast identified since Feb of 2019. There were an additional 8 non-citizen registrations and ballots as per the Daily Absentee List (DAL) data, that were not contained in the Voter History data. The total number of identified non-citizen ballots cast is therefore 2,847 by 1,011 registrants when combining unique VHL and DAL identifications.
After our initial March 2024 post on this topic, we submitted all of the relevant information that we had at the time to the VA AG’s office. We have not heard any response or update on the matter since that time, besides this being considered an active investigation. We subsequently sent our July results as well to the same contact at the AG’s office, but have had no response.
The Arlington County VA Electoral Board undertook their own investigation into this matter after our previous results were posted, and they (as of Sept 10 2024) voted 3-0 to send the information to the AG’s office as well. The Arlington County Commonwealths Attorney also is reported to have an ongoing investigation into the matter. Similar efforts are underway in multiple other counties, including Loudoun and Fairfax counties, to name a few.
In October 2024 the League of Women Voters along with the US DOJ sued VA over this issue and attempted to get an injunction to place ~1,600 of these removed registrations back on the Voter roll. After two lower courts granted the injunction, it was stayed by the US Supreme Court. It is EPEC’s opinion that the State of VA is correctly applying the law in this matter, as I detailed in a X.com post on Oct 12.
Background:
The VA Department of Elections continuously tries to identify and remove invalid or out of date registration records from the voter rolls. One category used for removal is if a registrant has been determined to be a non-citizen. It is required by the VA Constitution that only citizens are allowed to vote in VA elections.
In elections by the people, the qualifications of voters shall be as follows: Each voter shall be a citizen of the United States, shall be eighteen years of age, shall fulfill the residence requirements set forth in this section, and shall be registered to vote pursuant to this article. …VA Constitution, Article II, Section 1. https://law.lis.virginia.gov/constitution/article2/section1/
Additionally, according to VA Code Section 24.2-1004, the act of knowingly casting a ballot by someone who is not eligible to vote is a Class 6 felony.
A. Any person who wrongfully deposits a ballot in the ballot container or casts a vote on any voting equipment, is guilty of a Class 1 misdemeanor.
B. Any person who intentionally (i) votes more than once in the same election, whether those votes are cast in Virginia or in Virginia and any other state or territory of the United States, (ii) procures, assists, or induces another to vote more than once in the same election, whether those votes are cast in Virginia or in Virginia and any other state or territory of the United States, (iii) votes knowing that he is not qualified to vote where and when the vote is to be given, or (iv) procures, assists, or induces another to vote knowing that such person is not qualified to vote where and when the vote is to be given is guilty of a Class 6 felony.https://law.lis.virginia.gov/vacode/title24.2/chapter10/section24.2-1004/
ELECT makes available for purchase by qualifying parties various different data sets, including the registered voter list (RVL) and the voter history list information file (VHL). Additionally, ELECT makes available a Monthly Update Service (MUS) subscription that is published at the beginning of each month and contains (almost) all of the Voter List changes and transactions for the previous period.
In the MUS data there is a “NVRAReasonCode” field that is associated with each transaction that gives the reason for the update or change in the voter record. This is in accordance with the disclosure and transparency requirements in the NVRA. One of the possible reason codes given for records that are removed is “Declared Non-Citizen.”
EPEC has been consistently purchasing and archiving all of these official records as part of our ongoing work to document and educate the public as to the ongoing operations of our elections. (If your interested in supporting this work, please head on over to our donation page, or to our give-send-go campaign to make a tax-deductible donation, as these data purchases are not cheap!)
EPEC looked at the number of records associated with unique voter identification numbers that had been identified for removal from the voter record due to non-citizenship status, per the entries in the MUS, and correlated those results with our accumulated voter history list information in order to determine how many non-citizen registrations had corresponding records of ballots cast in previous elections. We only considered those records that are currently in a non-active state as of the latest MUS transaction log, as some determinations of non-citizenship status in the historical MUS transaction log might have been due to error and subsequently corrected and reinstated to active status. That is, and we emphasize here that we are not considering those records that had a “Declared Non-Citizen” disqualification, but were then subsequently reinstated and reactivated by ELECT.
Note that while EPEC has periodically purchased full copies of the Voter History List for our archive, there is a known issue with the way ELECT handles removals from the voter record that can cause sampling issues depending on the time the VHL file is purchased, and records of legitimately cast ballots to not be present in the VHL: Namely, when ELECT removes a voter from the voter list, they also remove all instances of that voter ID from voter history information and other data files provided to qualified organizations. (IMO … thats a terrible way to manage the data, but that is the way it is done.) In light of that, EPEC also used its archived versions of the Daily Absentee List (DAL) for recent elections in order to attempt to find records of votes cast that might otherwise be missing from the VHL.
Results:
There were 6,086 unique voter records marked for removal with the reason of “Declared Non-Citizen” and not subsequently reinstated in the accumulated MUS record that EPEC began collecting in mid-2023. Of those 6,086 there were 1,003 that also had corresponding records of recent ballots cast at some point in the official Voter History record that we could observe. There were 2,834 associated ballots cast identified since Feb of 2019. Figure 1 below shows the distribution of non-citizen voters in the cumulative MUS file history. The blue trace represent the total identified and CANCELED non-citizen registrations, and the yellow trace represents the number of those records that also had corresponding records (at least 1) in the accumulated voter history data.
Figure 1: Distribution if the number of identified non-citizen records and ballots in the cumulative ELECT MUS file history. The x-axis is the date that a record was marked as CANCELED for the reason of “Declared Non-Citizen”.
Note that the data contained in the MUS updates often covers more than a single month period. In other words, the individual MUS files are oversampled. Subsequent MUS files can therefore also have repeated entries from previous versions, as their data may overlap. Our analysis used the first unique entry for a given voter ID marked as “Declared Non-Citizen” in the cumulative MUS record, that had not been subsequently reinstated, in order to build Figure 1. This data oversampling in the MUS may help explain the small relative increase in the first (May 2023) bin compared to subsequent months.
As VHL information can be incomplete depending on the time the VHL data was purchased in relation to the time that registrants were removed from voter records, EPEC also checked these non-citizen removals against the archived history of Daily Absentee List (DAL) files that EPEC has accumulated. There were an additional 8 non-citizen registrations and ballots as per the Daily Absentee List (DAL) data that were not contained in the Voter History data. The total number of identified non-citizen ballots cast is therefore 2,847 by 1,011 registrants when combining unique VHL and DAL identifications.
These identifications represent only the individuals who declared themselves as non-citizen status through official interactions with ELECT, DMV, or other agencies. Each removed registrant was then contacted by the registrar to confirm their non-citizen status.
The distribution of identified unique voter ID’s for the 1,003 identified non-citizen voters per VA locality is given below in Table 1. It should be noted that each ballot record has a specific locality associated with where the ballot was cast, whereas unique individuals might move between localities over time. The assignment of unique identified individuals to each locality in table 1 is therefore based on the locality listed in the specific MUS “Declared Non-Citizen” record for that individual, while the assignment of ballot cast to Localities is based on the individual VHL/DAL records. A person could have lived and voted multiple times in one county, then moved to another county and voted again before finally being determined as a non-citizen. The same person would have generated multiple VHL/DAL records for each ballot cast, and associated with potentially different localities. This should be kept in mind when attempting to interpret Table 1.
LOCALITY_NAME
REMOVED
VOTED_VHL
VOTES_VHL
VOTED_DAL_NOT_IN_VHL
ACCOMACK COUNTY
12
0
1
0
ALBEMARLE COUNTY
71
18
66
0
ALEXANDRIA CITY
225
29
75
0
AMELIA COUNTY
3
2
9
0
AMHERST COUNTY
1
0
0
0
APPOMATTOX COUNTY
1
0
0
0
ARLINGTON COUNTY
188
30
82
0
AUGUSTA COUNTY
31
8
18
0
BATH COUNTY
2
1
1
0
BEDFORD COUNTY
18
3
5
0
BLAND COUNTY
1
1
3
0
BOTETOURT COUNTY
4
0
0
0
BRISTOL CITY
2
0
0
0
BRUNSWICK COUNTY
3
2
6
0
BUCKINGHAM COUNTY
4
0
0
0
CAMPBELL COUNTY
0
0
0
0
CAROLINE COUNTY
15
3
10
0
CARROLL COUNTY
13
5
16
0
CHARLES CITY COUNTY
7
4
22
0
CHARLOTTE COUNTY
1
0
0
0
CHARLOTTESVILLE CITY
34
7
17
0
CHESAPEAKE CITY
133
34
82
0
CHESTERFIELD COUNTY
376
41
119
0
CLARKE COUNTY
8
3
4
0
COLONIAL HEIGHTS CITY
20
2
4
0
COVINGTON CITY
3
0
1
0
CRAIG COUNTY
2
1
1
0
CULPEPER COUNTY
42
6
27
0
CUMBERLAND COUNTY
1
0
0
0
DANVILLE CITY
33
5
13
0
DICKENSON COUNTY
2
0
0
0
DINWIDDIE COUNTY
15
5
21
0
EMPORIA CITY
3
0
0
0
ESSEX COUNTY
5
2
4
0
FAIRFAX CITY
24
6
20
0
FAIRFAX COUNTY
1078
187
448
2
FALLS CHURCH CITY
5
1
2
0
FAUQUIER COUNTY
38
7
12
0
FLUVANNA COUNTY
3
2
10
0
FRANKLIN CITY
1
0
0
0
FRANKLIN COUNTY
4
1
1
0
FREDERICK COUNTY
37
5
5
0
FREDERICKSBURG CITY
35
3
10
0
GALAX CITY
4
0
0
0
GILES COUNTY
3
0
0
0
GLOUCESTER COUNTY
2
1
1
0
GOOCHLAND COUNTY
9
0
0
0
GRAYSON COUNTY
3
0
0
1
GREENE COUNTY
12
2
8
0
GREENSVILLE COUNTY
1
0
0
0
HALIFAX COUNTY
6
1
2
0
HAMPTON CITY
107
25
67
0
HANOVER COUNTY
23
3
9
0
HARRISONBURG CITY
125
7
14
0
HENRICO COUNTY
190
4
27
0
HENRY COUNTY
1
0
2
0
ISLE OF WIGHT COUNTY
3
0
2
0
JAMES CITY COUNTY
49
8
24
0
KING AND QUEEN COUNTY
2
1
4
0
KING GEORGE COUNTY
9
1
1
0
KING WILLIAM COUNTY
2
0
2
0
LANCASTER COUNTY
1
1
0
0
LOUDOUN COUNTY
350
81
198
0
LOUISA COUNTY
13
3
17
0
LUNENBURG COUNTY
1
0
0
0
LYNCHBURG CITY
35
5
10
0
MADISON COUNTY
1
0
0
0
MANASSAS CITY
79
9
22
0
MANASSAS PARK CITY
38
3
9
0
MARTINSVILLE CITY
9
2
1
0
MECKLENBURG COUNTY
13
6
17
0
MIDDLESEX COUNTY
3
1
1
0
MONTGOMERY COUNTY
20
4
17
1
NELSON COUNTY
2
0
0
0
NEW KENT COUNTY
6
3
6
0
NEWPORT NEWS CITY
179
40
131
0
NORFOLK CITY
164
26
91
0
NORTHAMPTON COUNTY
4
0
1
0
NORTHUMBERLAND COUNTY
2
1
1
0
NORTON CITY
1
0
0
0
NOTTOWAY COUNTY
7
1
6
0
ORANGE COUNTY
6
3
7
0
PATRICK COUNTY
5
1
2
0
PETERSBURG CITY
41
9
39
0
PITTSYLVANIA COUNTY
13
2
4
0
POQUOSON CITY
1
0
0
0
PORTSMOUTH CITY
74
23
75
0
POWHATAN COUNTY
5
1
8
0
PRINCE EDWARD COUNTY
11
3
11
0
PRINCE GEORGE COUNTY
23
1
2
0
PRINCE WILLIAM COUNTY
679
100
255
1
PULASKI COUNTY
8
1
2
0
RAPPAHANNOCK COUNTY
3
0
0
0
RICHMOND CITY
265
44
149
1
RICHMOND COUNTY
0
0
0
0
ROANOKE CITY
128
7
9
0
ROANOKE COUNTY
23
3
4
0
ROCKBRIDGE COUNTY
0
0
1
0
ROCKINGHAM COUNTY
21
5
13
0
RUSSELL COUNTY
5
2
3
0
SALEM CITY
7
2
1
0
SCOTT COUNTY
2
1
4
0
SHENANDOAH COUNTY
30
1
5
0
SMYTH COUNTY
2
0
0
0
SPOTSYLVANIA COUNTY
100
4
11
0
STAFFORD COUNTY
171
23
48
2
STAUNTON CITY
5
1
9
0
SUFFOLK CITY
61
26
87
0
SURRY COUNTY
2
0
0
0
SUSSEX COUNTY
2
1
3
0
TAZEWELL COUNTY
7
2
9
0
VIRGINIA BEACH CITY
277
52
208
0
WARREN COUNTY
22
3
4
0
WASHINGTON COUNTY
10
3
6
0
WAYNESBORO CITY
3
0
0
0
WESTMORELAND COUNTY
6
0
0
0
WILLIAMSBURG CITY
15
2
4
0
WINCHESTER CITY
34
2
2
0
WISE COUNTY
1
0
0
0
WYTHE COUNTY
3
0
0
0
YORK COUNTY
32
12
48
0
6086
1003
2839
8
The distribution of the 2,839 ballots that were identified as being cast by non-citizen voters (the yellow trace in Figure 1) in previous elections is shown in Figure 2. The most significant spikes are in the 2019, 2020, 2021 and 2022 November General elections, as well as the 2020 March Democratic presidential primary. Figure 3, which shows this distribution as a percentage of votes cast. Please note the scale of the Y-axis on the percent plot in Figure 3 is in percent of total ballots cast in each election. These graphs were only produced for the VHL data, and do not include the DAL identified records.
Figure 2: Distribution of identified non-citizen ballots cast in previous elections.Figure 3: Distribution of identified non-citizen ballots cast in previous elections as percent of total ballots cast, according to entries in the VHL/DAL data files.
Figures 4 and 5 show the distribution of the registration dates of the identified non-citizen records. The same data is plotted in figure 4 and 5, with the only difference being the scale of the Y-axis in order to better observe the dynamic range of the values. When we look at the registration date of these identified records, we see that there is a distinct relative increase starting around 1996, and then again around 2012.
Figure 4: Registration dates of the identified non-citizen records. Absolute count on y-axis.Figure 5: Registration dates of the identified non-citizen records. Logarithmic Y-axis scale.
EPEC made a FOIA request to the VA Attorney General’s office on March 11, 2024 inquiring for any records regarding how many prosecutions for non-citizen voting had occurred since June of 2023. We received a response that the AG had no such relevant records.
EPEC subsequently submitted our March analysis dataset to the VA AG’s office upon their request. We have heard no updates or status as to any action taken by the AG’s office since that time, except that it is being considered an ongoing investigation.
Discussion
It appears from the MUS data, that the VA Department of Elections (ELECT) is doing routine identification, cleanup and removal of non-citizen registrations, which is a good thing and we commend them for their continued efforts to maintain clean voter registration lists.
Given the current court cases filed by LWV and DOJ against the state of VA on the matter, it is important to note that the records identified in the MUS are only those resulting from individuals self-identifying as a non-citizen via interactions with DMV, ELECT, or other official avenues, and that the data presented here specifically excludes those individuals that were subsequently reinstated onto the voter rolls.
The fact that a small number of these identified non-citizen registrations are also associated with (presumably … if the data from ELECT is accurate) illegally cast ballots in previous elections does raise a number of questions that citizens should be (politely) asking and discussing with their legislators, elected and appointed government officials. Each act of non-citizen voting is a de-facto disenfranchisement of legal voters rights, and is a punishable offense under VA law.
Q: How did these registrants get placed onto the voter rolls in the first place?
Q: What method and/or data sources are used by the state to identify non-citizen registrations for removal? If that process is exhaustive, and covers all registrations, then these numbers might be considered to represent a statistical complete picture of the problem. If that process is not exhaustive, in that it only uses serendipitous corroborating data sources, then these results likely under-represent the scale of the issues.
Q: As noted above, we are only considering here those individuals who have not had their records re-instated or reactivated after a determination of non-citizen status. We do not have enough information to determine how or why some records were first determined to be non-citizen, canceled and then subsequently re-instated. One potential area of concern is determining whether or not registrants might be falsely or errantly claiming to not be a citizen on official documents in order to be excused from jury duty, for example, and then work to re-instate their voting status once those documents percolate through the system to ELECT and are flagged for removal. This is a wholly separate but serious issue, as making false claims on official documents is itself a punishable offense.
Q: What procedures, processes and technical solutions are in place to prevent current or future registration and casting of ballots by non-citizens? This is especially pertinent given the recent state of the flow of illegal immigrants crossing our national borders. According to a recent report by Yahoo Finance, VA is one of the top 30 destinations for illegal migrants, with both Loudoun County and Fairfax making the list.
Q: Why have none of the identified non-citizens who also cast ballots been investigated or prosecuted under VA Code 24.2-1004? As the identification of these ballots comes directly from looking at the official records produced by ELECT, it seems prudent for these to be forwarded by ELECT to the AG’s office with a recommendation to investigate and prosecute. Yet our FOIA request to the VA AG’s office inquiring as to any records associated with these types of investigations or prosecutions produced a “no relevant records exist” response. And since we submitted this information to the AG’s office, there has been no follow up.
Additionally, this evidence which is derived from only official state records, directly contradicts multiple news media reports and attestations that non-citizen voting is a “Myth”, and that non-citizen voting happens “almost never”. If the data from ELECT is accurate, then there are at least 2,839 ballots that have been cast by non-citizen voters just since 2019. Now, that is still very infrequent, but it is not “almost never.” It is a legitimate concern … and these discoveries are only the registrations that have been found and removed from the voter roles by ELECT and that we can observe in the data. We do not know how many exist that we do not know about.
It should be reiterated that these are only the records that we can observe given our data repository, and how often we can realistically purchase and acquire voter history and voter registration information. It is therefore likely that this represents a significant undercount of the occurrences of non-citizen voters and non-citizen voting.
It costs us (EPEC) approximately ~$5K for each purchase of the statewide voter history list, and approximately $15K/year to maintain RVL records using a single baseline full purchase + 2 purchases of the 6mo MUS subscription. Due to the infrequent nature of these data purchases, it is very likely that some individuals have had their voter history or voter registration information completely removed from the record in between our purchases. Additionally, we know that the MUS data does not entirely encompass all transactions performed on the RVL by the department of elections, so there may be yet other unknown transactions that we are missing.
For information that is supposed to be publicly available (according to federal NVRA laws), the state has put up significant hurdles in order for citizens and organizations to acquire it for use it for ensuring transparency and integrity of our electoral process. If we are to have elections that are transparent and accountable to the public, then we must insist that the data be made available and accessible.
Recently I was made aware of the work Ed Solomon had been doing with data from the 2020 Colorado Cast Vote Records (CVRs), and I’ve taken some time to replicate and validate some of his data observations. I don’t always agree with Ed, but I wanted to take some time and verify the facts of the matter for myself.
For background, CVRs are machine logs of the way the tabulators process the “cast” ballots. You can think of them as equivalent to your bank statement showing all of the recorded transactions for each ballot scanned. They are required to be producible by ballot electronic tabulation systems, and are used as part of official forensic audits and documentation. They do not have any personal information and simply operate on the content of individual ballots as they are processed.
There are 2 specific items that need to be validated here:
Odd statistics associated with statewide ballot measures in Arapahoe County as compared to other counties. Specifically, there were two statewide ballot measures (one dealing with taxes, and another on abortion) that one would expect to show a significant partisan split, and we in fact do see such a split in neighboring El Paso and Adams counties. However, the ballot measures do not show the partisan split in Arapahoe County.
The difference is not just that the partisan split is muted or reduced, it is a night and day difference. In Arapahoe county there is almost no statistical difference between Trump and Biden voters on the ballot measures, but there is an obvious and clear difference on the same ballot measures in neighboring Adams and El Paso counties.
Why is this important? It raises questions as to the veracity of the election counts, data handling practices, and the ability to use CVRs for their intended forensic purpose.
The fact that the Arapahoe County CVR data was changed on the official county website without any notification or explanation around Feb 2025. The internal composition of ballots was changed in the data and “scrambled” by Arapahoe county … with the new version of the CVR files no longer showing the inconsistency from #1.
As CVRs are official records that are used for legal purposes such as audits etc., they should never be “quietly” changed or modified retroactively. A full and transparent explanation of the issues and steps made to remedy should accompany any updates for official documents such as CVRs.
This change took place years after the CVR was originally produced, and after Ed Solomon had used this particular CVR as part of his supporting documentation in an election case (Thompson vs Secretary of State NV) in Nevada.
The county was fully aware of the use of these records in the Nevada case.
The county CVRs had already been used in a previous audit of the 2020 election, where ballots from a specific tabulator and batch were pulled and compared to the cast vote record for accuracy. (see here, and here)
After Ed and Mark noticed the retroactive modifications and started asking questions, the County released a statement explaining that they were contacted by a researcher about potential issues with their CVR regarding “redaction” and privacy concerns.
However, the county statement gives an incompatible date for when the documents were “corrected”, according to the file timestamps and internet archive logs. The statement claims April 2nd 2025, whereas the contents of the uploaded file show Feb 20th 2025 as the file modification date.
The counties explanation does not comport with the observation of the scrambling of internal contents of official ballots. Its not just that the ordering of ballots was randomized to assuage privacy concerns, but that the actual records of votes cast were being swapped between ballots.
At BEST this shows a woeful lack of transparency and procedural safeguards by the county.
At WORST this has the appearance of being intentional tampering with official records.
I can independently replicate and validate both of these data observations. There does seem to be an issue with the ballot measures in the original Arapahoe County CVR data, and that data has been retroactively modified by the county in such a way as to scramble the information associated with votes cast.
Note that Ed Solomon, Draza Smith, Jeff O’Donnell (a.k.a. “The Lone Raccoon”), Mark Cook, MadLiberals, and others all provided data and pointers to the original documents and URLs in question, as well as their own analysis on the X.com platform.
The original data is also still available on the Arapahoe County website, but one needs to do some creative sleuthing via the wayback machine and looking at the URL links in order to get to it, as was done by Mark Cook. (see: here and here)
The original data from the 2020 CVR data had also been collected and collated by Jeff O’Donnell on his https://votedatabase.com (formerly ordros.com) site, which I archived and versioned in Sept of 2022. I can confirm that the original file matches the files in the votedatabase archive, as well as the current votedatabase site. I used additional files from votedatabase archive for neighboring Adams and El Paso counties as a source for the rest of this work, as I could not find corresponding links to CVR downloads on the Adams or El Paso county websites.
Ed’s original observation was that the two ballot measures that *should* be partisan split were not when looking at the original 2020 CVR Arapahoe County data. He used this observation as supporting evidence showing inconsistencies and irregularities in 2020 election data in an court case (Thompson vs Secretary of State NV) he was providing analysis for in Nevada. All of his analysis and the original file have therefore been previously submitted to the court.
Amendment B was a repeal of the “Gallagher Amendment” dealing with property tax rates and was expected to have a highly partisan split. Likewise Proposition 115 dealt with abortion and was also expected to have highly partisan split.
If we look at the plots of the ballots cast for these two ballot measures, but we condition them on if the person voted for Trump or Biden at the top of the ticket we do see in neighboring counties such as El Paso and Adams counties this partisan split, as shown below. Note the significant spread between the Biden/No (Yellow) & Trump/No (Purple), as well as between the Biden/Yes (Blue) & Trump/Yes (Red).
As can be seen in the plots above from Adams and El Paso counties, there is a significant partisan split in these two down-ballot races when conditioned on how the top of the ticket votes. However this seems to vanish when looking at Arapahoe County, with the Biden/No (Yellow) & Trump/No (Purple) and the Biden/Yes (Blue) & Trump/Yes (Red) stacking almost completely on top of one another.
It can be clearly seen in the plots that the partisan split that was present in the other counties results seems to have completely vanished in Arapahoe.
I will note that the partisan split seems to be missing from almost all down-ballot races that I looked at, not just these two, although these were the ones specifically called out by Ed. This is an important point that I will come back to in a minute.
… And now to item # 2:
Ed’s original observation was submitted as part of his case in Nevada. At one point he and Mark Cook attempted to make a live stream video showing how people could recreate the observations starting from the source documents on the Arapahoe County website, which is when he and Mark realized that the original CVR file on the county website had been quietly replaced with a new file that had its contents scrambled and the results no longer showed the observed pattern.
Note that a CVR file is a legally required forensic record. It is the equivalent of a bank transaction log, and should almost never have its contents manipulated. If an error is discovered, and a correction does need to be issued, then a new file with the corrections should be published along side the original with a clear and prominent explanation and notification of the change. In this case, however, the County simply replaced the link to the original file with the new file with no explanation and no notice.
It was only after this was discovered, and after Ed started making phone calls to the County and bringing up the issue with the Judge in his Nevada case, that Arapahoe County belabouredly published an admission that they had adjusted the file. Their excuse for the modification was that they were made aware of a mistake with their “redaction” of data in the original publication, and were worried about individual privacy.
The (new) altered file did have 16 specific ballots that had their down-ballot races zeroed out, and was missing the “CountingGroup” metadata column. However, the file didn’t just have a small number of ballots (16) down-ballot information omitted, the internal contents on ALL ballots were also completely scrambled, with the top-of-the-ticket entries for President and Senate and metadata columns being completely reordered from all of the down-ballot information. This split-scrambling also also “fixed” the observed issues with Amendment B and Proposition 115, as can be seen below, where there is now a distinct partisan split between the data trends.
This kicked off multiple efforts to reverse engineer the actual changes that were performed on the CVR data by Arapahoe county, by myself and multiple others. Jeff O’Donnell and MadLiberals on X made the observation of the split reordering. I was able to verify this and remove the split-shuffling, exposing the fact that there were 16 ballots that also had all of their down ballot information zeroed out. There were a total of 432 down ballot votes that were removed from 16 specific ballots, followed by ALL of the President and Senate votes for ALL ballots being scrambled in relation to their down-ballot races.
Back to the point I made before above … the “scrambling” of the new file does seem to have “fixed” the expected partisan nature of most of the down-ballot races, so it is not unreasonable to think that this was actually a “fix” for a processing error on the original CVR file. That being said, the original (assumed incorrect) CVR was used in an audit process of two down-ballot races (linked above). Why did they not catch this issue years earlier during the audit? And why did they make the change to files, under the pretense of privacy issues, without announcing and documenting the errors?
Conclusion:
I can verify the two main data issues documented by Ed Solomon on the Arapahoe County 2020 CVR data.
The original data file had significant issues with down-ballot races not showing the expected partisan splits.
Arapahoe county did “quietly” revise the data without explanation until it was discovered by Ed and Mark, and then when pushed, only acknowledged that there was an issue with redactions and data privacy concerns.
The fact that the modification did correct the expected partisan split for ALL down-ballot races lends some credence to the assertion that they were correcting an error/issue with the original CVR file, however it does not excuse the fact that they performed this correction without notice or explanation. It also does not explain how their 2020 audit was able to use the incorrect original CVR files and not catch any of these issues.
The CVR files are intended to be official forensic records. If they are subject to manipulation and “adjustments” without transparency then that brings into question the validity of those files as forensic devices in the first place.
Corrections:
(5/28/2025) Typo correction in that the original posting of this article had “April 2 2024” as the data the Arapahoe county statement said they changed the CVR. That was corrected to be “April 2 2025”.
(5/28/2025) I had the wrong reference for the associated case in NV. I had originally posted that the case was the “Gilbert” case. It is actually “Thompson vs State”. Links have been updated accordingly.