Categories
Uncategorized

VA Precinct Tally Totals that exceed the Reported Turnout Numbers

I’ve been going through the reported numbers from the VA Department of Elections (“ELECT”) as to the vote totals and turnout stats w.r.t. the Nov 3rd 2026 VA midterm elections and I’ve found something that looks rather interesting: There are a number of precincts throughout the state where the reported number of votes tallies for a given race assigned to that precinct are greater than the reported total turnout numbers being reported for that precinct by ELECT.

There are approximately 163,399 total excess votes as of this writing that can be found using the method described below.

Method

There are two datasets used for this analysis:

  • The first is the Election Night Reporting JSON file available at the VA ELECT website (available here). This is a JSON file that contains 3 different data streams of vote tallies for the election. One summary data stream for each race. One summary for each race, reported by locality. And one data stream for each race, reported by precinct. It is the precinct level data stream we are primarily using for this analysis.
    • Note that as the election is not yet certified, the data in this file is still getting votes added to it and adjustments as the final post-election vote counts come dribbling in.
    • Also note that the precinct level data stream information significantly lags the locality and race level summaries. I and the EPEC team have noted this in previous elections, and it is an artifact of how localities do their canvas and reporting operations to ELECT. Therefore the 3 data streams in the JSON file are not self-consistent within the file and do not match each other. As we get closer and closer to certification the data streams do tend to converge.
    • The date stamp on the ENR JSON file I used for this analysis is 11-Nov-2026 12:00:01 pm. I have been periodically downloading the ENR JSON files since election night, and will continue to do so until certification.
  • ELECT also publishes a turnout report CSV file (available here) that provides the turnout numbers associated with each precinct. It gives the total ballots cast, stratified by ballot type, as well as the total number of registered voters associated to each precinct. It does not give any vote totals.
    • The date stamp on the turnout report file used for this analysis is 11/11/2026 10:41:00 pm

The first step is to parse the precinct level data in the JSON file into a tabular format suitable for doing this analysis. (Note this does take a little bit of technical coding work in order to parse and assemble the data into a usable file.) We then create a table that enumerates the summed vote tallies made in each race, stratified by precinct, as such:

Race 1 – Sum of Vote TalliesRace 2 – Sum of Vote Tallies…
Precinct 110000…
Precinct 27502350…
………

Next we associate each precinct in our table with its corresponding entry in the turnout data csv file.

Turnout Ballots CastRace 1 –Sum of Vote TalliesRace 2 –Sum of Vote Tallies…
Precinct 1156010000…
Precinct 222007502350…
………

We logically shouldn’t be able to get more votes cast for a race in a given precinct than ballots cast. We can subtract the turnout from all of the race vote totals across the columns, and if any result is positive, that represents the amount of “excess” votes for that race, from that precinct.

In the example table above our “Race 2, Precinct 2” would have an excess vote count of 150 = 2350 – 2200. All other values would be within bounds.

Caveats and special cases:
  • Even though most of the data has been populated by now, there are still some localities that have not yet fully reported to ELECT, so we explicitly ignore any of the precincts where the turnout has not yet been reported (these are 0’s or empty cells in the turnout csv file). If a precinct has not yet reported in the data, its associated numerical values will be set to 0 and it will get ignored after the subtraction and filter.
  • We also are explicitly ignoring those races where an individual was able to vote for more than one candidate, such as some elections for board members, etc.

Results

There were 15 races that were affected, across 186 different precincts. Summing the total number of excess votes across each affected race we get the following table:

RACE NAMEEXCESS VOTES
MEMBER HOUSE OF DELEGATES 20TH DISTRICT4
MEMBER HOUSE OF REPRESENTATIVES 10TH DISTRICT346
MEMBER HOUSE OF REPRESENTATIVES 1ST DISTRICT23052
MEMBER HOUSE OF REPRESENTATIVES 2ND DISTRICT54
MEMBER HOUSE OF REPRESENTATIVES 3RD DISTRICT81
MEMBER HOUSE OF REPRESENTATIVES 4TH DISTRICT3
MEMBER HOUSE OF REPRESENTATIVES 5TH DISTRICT3724
MEMBER HOUSE OF REPRESENTATIVES 6TH DISTRICT780
MEMBER HOUSE OF REPRESENTATIVES 7TH DISTRICT440
MEMBER HOUSE OF REPRESENTATIVES 9TH DISTRICT14
MEMBER UNITED STATES SENATE28549
PROPOSED CONSTITUTIONAL AMENDMENT QUESTION 127230
PROPOSED CONSTITUTIONAL AMENDMENT QUESTION 227320
PROPOSED CONSTITUTIONAL AMENDMENT QUESTION 327285
SHERIFF HANOVER COUNTY24517
163399

While it is understood that the certification process is currently still ongoing, and that these excess vote numbers would not affect overall outcomes, the observed excess ballot count still deserves explanation and corrections.

How is it that precincts are reporting more votes being cast in a particular race than ballots associated with that precinct? At no point in the counting process, even when the process is not yet completed, should that be the case.

Files:

The table of turnout numbers and vote tallies for those precincts or races that showed this issue is also linked here.

Raw source data from the department of elections can be found here:

https://enr.elections.virginia.gov/cdn/results/virginia/export-2026-November-General.json

https://enr.elections.virginia.gov/results/public/virginia/elections/2026-November-General/reports