Archive for November, 2020

Expert witness and poll observer Gregg Stenstrom testifies at a GOP PA Senate Policy Committee Hearing on voting irregularities. (The Independent)

I’ve read with interest some of the “internet analyses” of irregularities in vote reporting for the 2020 Presidential Election. Many of the analyses are based on data scraped from the New York Times website, which used a data feed from Edison Research in cooperation with the National Election Pool (NEP). The problem with this data, which comes in the form of a JSON file, is that at each reported time, the only values available for a given state are the total votes, fractional vote for Biden, and fractional vote for Trump. As the fractional votes are only provided with a resolution of 0.1%, the uncertainty of each fractional vote is +/-0.05% of the total vote. When two chronological reports are differenced to calculate the candidate votes for a new “batch”, the uncertainty in the candidate vote counts is around +/-0.1%. (More precisely, +/-0.05% of the first total votes plus +/-0.05% of the second total votes.) Many have not recognized this, and erroneously attributed shifting of votes between candidates to foul play.

This data feed also show signs of glitches, where vote totals are shifted down at times, and then shifted back up at later times. Due to the low resolution of the fractional votes, the glitches, and the lack of data at a county level, I didn’t have much hope that the data could be independently analyzed in a meaningful way, despite many using the data and making false claims.

That changed when I read a post from @ne02012 on Twitter. In that post, he provides text files for four states (PA, MI, GA, and NC). Within those text files are URLs, again from the NYT website, that link to the JSON files that contain the chronological vote data at the county and precinct level. At each time, totals are available for three candidates (Biden, Trump, Jorgensen) for three vote types (election day, absentee, and provisional).

Focusing first on PA, I wrote a python script to read the text file and automatically download the JSON files from the NYT website. I then wrote another script to import the data from the JSON files, and output the county-level data to a CSV file (4.45 MB). In this file, the data values are the “raw” values from the JSON files, except for the timestamp, which I calculated by parsing the filename of the corresponding JSON file and converting from UTC to EST. To make the timestamp universal, the units are days in November so that, for example, a value of 4.5 corresponds to 12 noon (EST) on Nov 4. Users of Excel can convert this to the native timedate format by adding 44135 (corresponding to Oct 31, 2020) and formatting the fields for time and date.

General Observations and Questions

With the county-wide data now available for PA, I began to analyze the data. I discovered a number of anomalies which may or may not be indicative of foul play. At the very least, the anomalies do demand that a number of questions are answered to better understand the data.

There are some counties that have updates with totals all zero. It’s as though the counties were polled, there was no response, and an aggregator set the totals to zero instead of carrying forward the previous counts. This occurred for Delaware, Montgomery, and Lehigh counties, and caused statewide vote counts to go down at some times, but recovered to the previous trend when the counts from those counties re-appeared.

Q1: Why do some counties at times report vote totals of zero? Is this an indication of malfunctioning software, hardware, network connectivity, or manual intervention?

In Lawrence County, on Monday, Nov 9 at 4:31 pm, the absentee counts for Biden and Trump more than doubled from Biden: 7,717, Trump: 4,042 to Biden: 15,864, Trump: 8,522. At the same time, the election day counts exactly doubled from Biden: 7,840, Trump: 25,029 to Biden: 15,680, Trump: 50,058 . Then, on Tuesday, Nov 10 at 11:18 am, both the absentee and election day votes were exactly halved.

Q2: What explains the doubling and halving of absentee and election day votes in Lawrence County in the week following the election? Were votes double-counted and then corrected?

For some counties, during initial counting, all the votes were classified as either “election day” or “absentee”. At later times there were corrections, which caused either the “election day” or “absentee” totals to decrease by the same amount the other category increased as the votes were re-classified. This occurred for Columbia, Blair, Venango, Lancaster, and Delaware Counties.

Q3: Why were early votes re-classified in some counties? Were votes misclassified and then corrected?

At 8:51 pm on election day (Nov 3), Tioga County’s first report was Biden: 5,900, Trump: 37,800 and Jorgensen: 900, which all seem high and exact multiples of 100. These votes were largely cancelled at 9:02 pm.

Q4: What caused the large early vote counts for Tioga County? Were these incorrect counts that were corrected 11 minutes later?

For Philadelphia, on Nov 4 at 10:00 am, absentee votes were added in the amount Biden: 61,040 and Trump: 3,869. These votes were then exactly cancelled at 10:11 am.

Q5: For Philadelphia, what caused a large number of absentee votes to be added at 10:00 am on Nov 4 and then cancelled 11 minutes later?

On Wednesday, Nov 4 at 6:16 PM, in Philadelphia, absentee votes for Biden and Trump were reduced by 40,984 and 3,329, respectively. Then at 6:46 pm, absentee votes for Biden and Trump were increased by 84,258 and 6,534, respectively. Then on Nov 5 at 9:01 am, absentee votes for Biden and Trump were reduced by 43,274 and 3,205, respectively. There was no net change in absentee counts after these three updates which occurred over a period of around 15 hours.

Q6: For Philadelphia, what caused the large influx and outflux of absentee votes over a period of 15 hours from Nov 4 at 6:16 pm and Nov 5 at 9:01 am? What caused the sequence of addition, removal, addition, with no net votes added?

Philadelphia Absentee Vote Updates

Considering the absentee vote anomalies observed for Philadelphia, the large number of absentee votes (352,326), and the extended period of absentee vote reporting (last update on Nov 11 at 3:31 pm), I looked more closely at voting patterns in these batches.

The table below shows the share of candidate votes for each upload of absentee votes. The only data shown are the instances when the absentee vote counts changed, and the share of votes in a batch attributed to each candidate at a particular time is simply the difference between the totals at that time and the previous totals. The shaded rows correspond to updates which netted to zero, as described in the previous section.

Absentee Vote Updates for Philadelphia

The vote share for each batch favored Biden greatly, with the greatest share of 94.0% occurring at Nov 4 at 1:29 am, which was also the first batch. The lowest share was 82.3% on Nov 6 at 8:56 pm. The last batch of 2,384 votes, with a Biden share of 91.8%, was reported on Nov 11 at 3:31 pm, about 8 days after the election. Overall, Biden won 91.7% of the absentee votes cast in Philadelphia. In light of the very high vote fraction for Biden, and the reports of unsupervised ballot counting, these batches demand more attention.

Q7: Can the large batches of absentee votes in Philadelphia that were overwhelmingly for Biden (91.7%) be verified?

Questions in Delaware County

On Nov 25, the GOP PA Senate Policy Committee held a hearing in Gettysburg to discuss voting irregularities in the presidential election. The full transcript is available online.

There were a number of witnesses that recounted irregular behavior at voting centers. I was particularly interested in the testimony of Gregory Stenstrom, a poll watcher who described himself as follows:

I’m from Delaware County. I’m a father, a family man. I was a former commanding officer, an executive officer in the Navy. I’m a veteran of foreign wars. I’m a CEO of my own private company. I’m a data scientist. I’m a forensic computer scientist. I’m an expert in security and fraud. Leah [Hoops] had recruited me for this election, and I was glad. I thank you for that.

Mr Stenstrom then went on to describe curious behavior he observed at the counting center in Delaware County. On Election Day, after observing activities at precincts, which seemed fairly normal, he arrived at 6:00 pm to the counting center. He was denied entry until 11:00 pm. After he was allowed to enter, he observed procedures which were contrary to established protocols, which destroyed the chain of custody of the physical votes obtained from absentee ballots and USB memory sticks. The following day (Wednesday, Nov 4), he discovered that 47 USB memory sticks were missing. On Thursday, Nov 5, he obtained a court order that allowed him to enter the back offices, which he was previously denied. The order allowed him entry for 5 minutes every 2 hours. The first entry time was at 1:30 pm, but he was not allowed to touch anything. The second time was at 3:30 pm, and this time he was allowed to touch the boxes. He claims he observed boxes of unopened absentee ballots with 500 per box, totaling 70,000 unopened ballots.

To see how the unopened ballots might affect the total counts, I assembled the table below showing the vote reporting updates (election day and absentee) for Delaware County. The previously described reclassification of votes from absentee to election day occurred on Nov 4 at 2:37 am. The last votes were recorded on Nov 6 at 10:01 pm. A total of 320,049 were cast, including 127,751 absentee votes.

Vote Updates for Delaware County, PA

Mr Stenstrom claims that when he observed the unopened ballots on Thursday at 3:30 pm, he was told that 120,000 absentee votes were cast and 6,000 remained uncounted. That would put the total at around 126,000 absentee votes. This is close to the actual total of 127,751 that was reached on Friday, Nov 6. However, the previous vote update on Wednesday, Nov 4 at 9:37 pm, places the total absentee votes at 102,450. Since the unopened ballots were allegedly found in the back office the following day on Thursday, we know they could not have been included in Wednesday night’s total of 102,450. Assuming Mr Stenstrom’s observation is correct, that means the final absentee vote count should be at least (102,450 + 70,000) = 172,450, leaving at least (172,450 – 127,751) = 44,699 absentee ballots unaccounted. In fact it’s possible that NONE of the 70,000 unopened ballots that Mr Stenstrom claims to have observed were counted.

The absentee votes in Delaware County overwhelmingly favored Biden: He won 83.5% of the absentee ballots, but only 49.0% of the election day votes. In light of Mr Stenstrom’s claims about the missing absentee ballots, this need further attention.

Q8: Were the boxes of unopened absentee ballots in Delaware County that Mr Stenstrom claims to have observed ever counted? Were absentee ballots replaced with other ballots more favorable to Biden?


Using the county-wide data available from the NYT website, a number of voting anomalies in PA are identified. These iregularities in PA need to be explained to provide confidence in the accuracy of the voting systems and processes, and to be sure there was no tampering.

Update on Dec 1, 2020: The files for the URLs linking to the JSON files were first generated by @unfiltered on the discussion site He “discovered” the URLs by “brute forcing” the timestamp, which is a very slow process. In addition to PA, MI, GA, and NC, he recently cracked the URLs for FL.

Update on Dec 2, 2020: The caption on the first image and the text in the Delaware County section now identify the hearing in Gettysburg as a GOP PA Senate Policy Committee hearing.


I am grateful to discussions with Bobby Ulich and the previous work by @ne02012 .

Posted in Voting | 47 Comments »