Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

NH 2020 Election Fingerprint

Background:

The US National Academy of Sciences (NAS) published a paper in 2012 titled “Statistical detection of systematic election irregularities.” [1]  The paper asked the question, “How can it be distinguished whether an election outcome represents the will of the people or the will of the counters?” The study reviewed the results from elections in Russia and other countries, where widespread fraud was suspected. The study was published in the proceedings of the National Academy of Sciences as well as referenced in multiple election guides by USAID [2][3], among other citations.

The study authors’ thesis was that with a large sample of the voting data, they would be able to see whether or not voting patterns deviated from the voting patterns of elections where there was no fraud. The results of their study proved that there were indeed significant deviations from the expected, normal voting patterns in the elections where fraud was suspected.

Statistical results are often graphed, to provide a visual representation of how normal data should look. A particularly useful visual representation of election data is the election fingerprint. When used to analyze election data, the election fingerprint typically analyzes the votes for the winner versus voter turnout by voting district. The expected shape of the fingerprint is of that of a 2D Gaussian (a.k.a. “Normal”) distribution [4].  (See this MIT News article for a great additional description and primer on the Gaussian or Normal distribution: https://news.mit.edu/2012/explained-sigma-0209)

 Here is an example reprinted from the referenced National Academy of Sciences paper:

The actual election results in Russia, Uganda and Switzerland appear in the left column, the right column is the expected appearance in a fair election with little fraud, and the middle column is the researchers’ model with fraud included.

As you can see, the election in Switzerland shows a range of voter turnout, from approximately 30 – 70% across voting districts, and a similar range of votes for the winner.  

What do the clusters mean in the Russia 2011 and 2012 elections? Of particular concern are the top right corners, showing nearly 100% turnout of voters, and nearly 100% of them voted for the winner.

Both of those events (more than 90% of registered voters turning out to vote and more than 90% of the voters voting for the winner) are statistically improbable, even for very contested elections. Election results that show a strong linear streak away from the main fingerprint lobe indicates ‘ballot stuffing,’ where ballots are added at a specific rate. Voter turnout over 100% indicates ‘extreme fraud’. [1][5]

Election results with ‘outliers’ – results that fall outside of normal voting patterns – are not in and of themselves definitive proof of outright fraud. But additional reviews of voting patterns and election results should be conducted whenever deviations from normal patterns occur in an election.  Additionally it should be noted that “the absence of evidence is not the evidence of absence”:  Election Fingerprints that look otherwise normal might still have underlying issues that are just simply not readily apparent with this view of the data.

Using this studies methodology, in late 2020 and 2021, multiple researchers in the US have applied the same analysis to the US 2020 election results, as well as the results of previous elections.

The US 2020 Election – New Hampshire:

Source Data:

  1. Registered Voter Data: https://sos.nh.gov/media/00lg4swb/names-on-checklist-general-2020.xlsx
  2. Total Regular and Absentee Ballots Cast: https://sos.nh.gov/media/yi4fonny/ballots-cast-2020-general.xls
  3. Vote Totals: https://sos.nh.gov/media/yjmp5qmd/president-2020.xls
  4. Write-In Totals: https://sos.nh.gov/media/wv3m4jne/presidential-write-ins-2020.pdf
  5. Records of Voter Rolls Pre-Election Day, On Election Day, and marked as Absentee.  (Note that due to personal privacy considerations, this raw dataset is not openly published and the raw data must be obtained via request. The summaries of this dataset is included in the “2020-NH-Combined-Data.csv” file included below)

Election Fingerprint:

The upper right image in the following graphic is the computed election fingerprint, computed according to the NAS paper and using official state reported voter turnout and votes for the statewide winner. The color scale moves from precincts with low counts as deep blue, to precincts with high numbers represented as bright yellow. Note that a small blurring filter was applied to the computed image for ease of viewing small isolated histogram hits.

The bottom left image of the graphic shows what an “idealized” model of the data could look like. The upper right image was computed per the NAS paper; the bottom left image shows what an idealized mixture-of-Gaussian model of the data should look like, based on the reported voter turnout and vote share for the winner.

The top-left and bottom-right plots show the sum of the rows and columns of the fingerprint image. The top-left graph corresponds to the sum of the rows in the upper right image and is the histogram of the vote share for Biden across precincts. The bottom right plot corresponds sum of the columns of the upper right image, and is the histogram of the % turnout across the precincts.

Observations/Conclusions:

  • There does not appear to be any majorly distinct linear correlations, over 100% turnout precincts, or otherwise major red flags even though there is some patterned noise.  The distribution is very large and diffuse, and has a definite skew, which is curious, but not necessarily indicative.  
  • There are a small number of outlier precincts outside of the main distribution lobe, most notably the cluster along the 40% turnout line (Lempster, Newport & Claremont Ward 3), and two precincts above 90% turnout (Randolph & Ellsworth).
  • There are at least two major peaks in the main lobe, which is consistent with the theory of a split electorate.
  • The % Vote Share for Biden plot (Upper-Left) is “lop-sided” and shows a distinct skew in the data above the 40% Vote Share mark.  
  • Looking at the difference between the Total Reported Votes from Source B and Total Votes count from official Source C shows 10,666 unaccounted for votes.  The total number of Write-In votes from Source D was only 1158 and not nearly enough to account for this difference.
  • Looking at the difference between the registered voters from Source E and the Registered voters from Source A, there is a difference of 122,248 registrations.

References:

[1] “Statistical detection of election irregularities” Peter Klimek, Yuri Yegorov, Rudolf Hanel, Stefan Thurner Proceedings of the National Academy of Sciences Oct 2012, 109 (41) 16469-16473; DOI: 10.1073/pnas.1210722109 (https://www.pnas.org/content/109/41/16469)

[2] USAID: Assessing and Verifying Election Results: A Decision Makers Guide to Parallel Vote Tabulation and Other Tools (http://web.archive.org/web/20201118021847/https://pdf.usaid.gov/pdf_docs/PA00KGWR.pdf)

[3] USAID: A guide to Election Forensics (http://web.archive.org/web/20210501091306/https://pdf.usaid.gov/pdf_docs/PA00MXR7.pdf)

[4] Multivariate Normal Distribution – Wikipedia (https://en.wikipedia.org/wiki/Multivariate_normal_distribution)

[5] Mebane, Walter R. and Kalinin, Kirill, Comparative Election Fraud Detection (2009). APSA 2009 Toronto Meeting Paper, Available at SSRN: https://ssrn.com/abstract=1450078

Data Files:

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Dallas, TX Election Fingerprint

Election Fingerprint for Dallas, TX polling places – All Vote Types:

Conclusions:

  • The results have a rotated and elongated orientation, and looks like a number of distinct “hot-spots” within the larger cluster.
  • Vote share near or over 100% is highly irregular and indicates a strong potential for fraud in any election. In the image above, there is what looks like a cluster centered around 50% turnout and spreading across multiple turnout bins of near 100% vote share for Biden.  Even in contentious elections, voter turnout over 90% is statistically unlikely, but not impossible.
  • Of the 868 precincts in this dataset, 87 are in the > 90% vote share for Biden band, 46 had > 93%, 15 had > 95%, and 2 had > 97%.
  • This fingerprint shows modest items of interest, but is inconclusive.
Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Atlanta, Georgia Election Fingerprints

Hat tip to Ed Solomon for collating the data on this one. There’s a bunch more coming as Ed’s done the heavy lifting on a bunch of localities, and I’m working through them.

Election Fingerprint for Atlanta, GA polling places – All Vote Types:

Conclusions:

  • The results do not form a normal Gaussian distribution, and are therefore, by definition, an “irregular” distribution. The main lobe of the ‘fingerprint’ also has a diffuse linear streak up and to the left.  According to the authors of the NAS paper, election results that show a strong streaking away from the main lobe may indicate ‘ballot stuffing,’ where ballots are added (or subtracted) at a specific rate. The election fingerprint is in the form of a main lobe and streak, although the streak is not as pronounced as the NAS paper’s Russia results.  
  • Vote share near or over 100% is highly irregular and indicates a strong potential for fraud in any election. In the image above, there is a distinct and shape line across multiple turnout bins of near 100% vote share for Biden.  Even in contentious elections, voter turnout over 90% is statistically unlikely, but not impossible.
  • Of the 1022 polling places in Atlanta, 252 are in the > 90% vote share for Biden band, 201 had > 93%, 84 had > 95%, and 8 had > 97%.
  • These findings indicate significant election irregularities that warrant additional scrutiny and investigation. It should be reiterated that the observed irregularities discussed above can serve as useful indicators and warnings of issues with an election, but do not constitute absolute proof of fraud on their own.
Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Well, isn’t that interesting …

USAID pulled two of their recent publications sometime after Nov 8 2020 on election integrity from their website. Specifically two publications that discuss election integrity forensics, including referencing the same National Academy of sciences paper that describes the Election Fingerprinting process that I’ve been using as a basis for my work. Luckily … there’s the wayback machine … and I made copies.

“ASSESSING AND VERIFYING ELECTION RESULTS: A DECISION-MAKER’S GUIDE TO PARALLEL VOTE TABULATION AND OTHER TOOLS” (original URL: https://pdf.usaid.gov/pdf_docs/PA00KGWR.pdf)

https://digitalpollwatchers.org/wp-content/uploads/2021/08/PA00KGWR-Wayback-Snapshot-2020-Nov-8.pdf

“A GUIDE TO ELECTION FORENSICS” (original URL: https://pdf.usaid.gov/pdf_docs/PA00MXR7.pdf)

https://digitalpollwatchers.org/wp-content/uploads/2021/08/A-Guide-to-Elections-Forensics-USAID.pdf
Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical Uncategorized

Revisiting the VA 2020 Election Fingerprints: “Unmixing” the Virtual Absentee Precinct Data

After getting a pointer to the higher fidelity per-ward WI data and redoing that analysis (here), which was not only able to produce the election fingerprints but also a statistical model for each county that could identify statistically outlying wards for further scrutiny, I wanted to go back to the VA data and see if I could update that analysis to do the same thing. There is a problem with the VA data, however, as VA uses “virtual” absentee and provisional ballot counting precincts and collects all absentee and provisional ballots at the county congressional district level. That means that there is no direct mapping for the absentee or provisional ballots back to the precincts that they came from in the data published by the Virginia Department of Elections. What I really need to have is all of the votes (in person, absentee, provisional) accounted for at the per precinct level.

In theory, if the reported totals from VA DoE are accurate and truly represent the sum of what occurred at the precinct level, such a mapping should be trivial to produce with standard optimization methods. That doesn’t mean that such a produced mapping would be necessarily accurate to specific real precinct vote tallies, just that mathematically there should be at least one, if not many, possible such mappings of vote shares at the precinct level that sum to the results presented by VA DoE and obey all of the constraints due to voter turnout, reported absentee registrations and returned ballots, etc. One of those possible mappings should also correctly represent what the real votes shares were for the election.

Side Note: I’d argue that the fact that VA has tallied and published their data in such a way that makes it near impossible to transparently review precinct level results is reason enough to audit the entire VA vote, and needs to be addressed by our legislature. Even if there was absolutely no flaws, errors, or fraud in the VA election … the vote should still be thoroughly and completely audited across the state, and reporting standards should be updated to make inspection of the per precinct results transparent without needing to perform advanced algorithms as described below.

Previously I tried adjusting the “registered voter” counts for each virtual district by subtracting off the number of actual votes counted in person in their constituent real precincts. That method is accurate and produces self-consistent data for the “virtual precincts” which are summed at the county congressional district level, but it does nothing for being able to plot accurate fingerprints at the real per-precinct level.

But then I had an idea (ding!) after my discussions with Ed Solomon as to how to “unwrap” and distribute the Absentee and Provisional ballots from the virtual precinct sums back to the component real precincts. We can use the fact that we have the actual county level sums, and the real precinct level turnout numbers as constraints to perform a non-linear model fit that estimates the numbers of votes for Biden and Trump for each precinct that should be summed into the virtual district results.

Fair Warning: If you’ve been following my other blog posts, this one is going to get way more technical. I’ll still try to make sure that I include ample descriptions and educational cross-links … but buckle up!

Input Data:

The input data to this is the same as the input data to all of the VA Election Fingerprint analysis. Direct from the VA Dept of Elections, we need the per precinct vote tallies and the voter registrations numbers. We’d like the registered voter results as close to the nov election as possible. Links to the most recently updated versions of these files from VA DoE are below. I’ve made one addition to the standard dataset, which is that I’ve used the Daily Absentee List (DAL) from the 2020 November General provided by VA DoE to estimate the number of accepted and returned absentee ballots per precinct.

https://apps.elections.virginia.gov/SBE_CSV/ELECTIONS/ELECTIONRESULTS/2020/2020%20November%20General.csv

https://www.elections.virginia.gov/media/registration-statistics/2020/10/Daily_Registrant_Count_By_Locality_2020_11_01_054008.csv

https://www.elections.virginia.gov/media/registration-statistics/2020/nov/Daily_Registrant_Count_By_Congressional_2020_12_01_053203.csv

https://www.elections.virginia.gov/candidatepac-info/client-services/index.html

Description and Method:

We know the per county per congressional district vote tallies and registration numbers [note that I routinely just refer to this as the “per county” data, but its really per county per congressional district], including all In-Person and Absentee ballots. We can compute the per County fingerprint in the standard manner according to the methods in the NAS paper that describes the Election Fingerprint method, as I did previously here and here. We take the data provided from the links above and sum them into per county results, and creating a 2D histogram of the (% Vote Share for Biden) vs (% Voter Turnout).

Per County Election Fingerprint based on the raw data provided by the VA DoE

I’ll mention quickly about how the Fingerprint above from the reported data appears to have significant irregularities and correlations that deviate from a 2D Gaussian. We see a central lobe with some very distinct intersecting curves overlaid. This distribution does not comport with the theory of a free and fair election. That is not the focus of this post however.

I (and others) would like the ability to accurately examine the data at the perprecinct level. We know the per precinct In-Person vote total from the VA DoE data, but not the per precinct Absentee votes for each candidate. Which means that the VA per precinct maps I produced before, while useful for looking at the In-Person, Absentee or Provisional votes independently, are not really suited for performing hypothesis testing for outlier precincts in relation to the election results as a whole. This is because the In-Person and Absentee votes share the same universe of possible voters (e.g. registered voters) with an unknown “mixing” coefficient (also known as a set of latent or hidden variables), and the Central Absentee Precinct (CAP) data from VA DoE encompass a number of summed component real precinct data. We also know that a large portion of the 2020 election was due to non-In-Person ballots, so this is a pretty gaping hole in our ability to understand what happened in VA.

We therefore need to estimate the number of additional (absentee or provisional) votes for Trump and Biden that should be attributed to each real precinct. Since we are missing important data from the VA DoE published data, we going to have to try and model this data using a non-linear optimization subject to a number of constraints. The desired end result of this is a self-consistent (but modeled) per precinct data set that accounts for all In-Person and Absentee ballots AND sums within each county congressional district to equal the per county fingerprints that we produced previously AND does not violate any of the expectations of a free and fair election (i.e. no over 100% turnout, no linear correlations in the histogram, etc). I will caveat again that this modeled result is only one possible solution to the “unmixing” optimization problem, albeit the most likely, given the constraints. If we can find such a mapping, then we have an existence proof. If the election was truly free and fair, and the data has not been manipulated, then there should exist at least one such mapping that can be discovered by the optimization process.

We’re going to perform this modeling under the following assumptions and constraints:

  • The total number of votes (In-Person, Absentee) allocated to a precinct should not exceed the number of registered voters for the precinct. Our optimization function will include a penalty when this is violated.
  • The total number of Absentee votes allocated to a precinct should not exceed the number of returned absentee ballots for the precinct (computed from the DAL). Our optimization function will include a penalty when this is violated.
  • The sum of the vote totals in all of the component precincts of a county congressional district should equal the data as provided by VA DoE (Votes Trump, Votes Biden, Total Absentee Votes, etc). Our optimization function will include a penalty when this is violated.

We’ll use the MATLAB optimization toolbox lsqnonlin function, which uses a Trust-Region-Reflective or Levenberg-Marquradt algorithm, and try and create this new model by finding the additive factors (x Abs Vote for Biden, y Abs Votes for Trump) for each precinct’s Biden and Trump votes that warp the In-Person dataset such that each precincts data incorporates the contributions from Absentee votes. We are also going to clamp each of the (x, y) factors to be greater than 0 and less than the total number of estimated absentee ballots per precinct. Note that if the only limit was this clamping we could still have 2x the number of allocated absentee votes since there are two variables, so this limit serves only as an extreme upper bound for numerical stability reasons and computation speed.

The objective function for the MATLAB lsqnonlin(...) algorithm is given below. I’ve also parameterized which penalties are to be included so that I can try different permutations.

function [y, a, b, c, v] = ofunc2(abVotes,pivotMatrix,ipVotes,countyVotes,doA,doB,doC)
% abVotes is the current estimate of absentee votes for trump and biden
% attributed per precinct
%
% pivotMatrix is a boolean sparse matrix that sums the component precinct
% level data into their respective county gongressional district units.
%
% ipVotes is the in person [Biden, Trump, ..., TotalIP, RegisteredVoters,
% AcceptedAndReturnedAbsentee] tallies per precinct
%
% countyVotes is the total [Biden, Trump, ..., Total, RegisteredVoters, ...,
% TotalAbsenteeVotes] tallies per county congressional district

dim = size(abVotes,2);
xvotes = ipVotes;
xvotes(:,1:dim) = xvotes(:,1:dim)+abVotes;
mvotes = pivotMatrix*xvotes;        % Modeled votes per county
avotes = pivotMatrix*abVotes;       % Absentee votes per county

% extra penalty for breaking the rules...
exPen  = 1;
if nargin < 5 || isempty(doA)
    doA = true;
end
if nargin < 6 || isempty(doB)
    doB = true;
end
if nargin < 7 || isempty(doC)
    doC = true;
end

v = {};
a = [];
b = [];
c = [];
 
y = [];

% Difference at the county vote tally level
a = (mvotes(:,1:dim)-countyVotes(:,1:dim));
if nargout > 1 && sum(abs(a(:))) > 0
    v{end+1} = ['Violation of County Vote Tally: ',num2str(sum(abs(a(:))))];
end

if doA
    % Penalize for going over number of registered voters per county
    a(:,dim+1) = exPen * (sum(mvotes(:,1:dim),2) - countyVotes(:,dim+2));
    a(a(:,dim+1)<0,dim+1) = 0; % No penalty if we dont go over limit
    
    if nargout > 1 && sum(abs(a(:,dim+1))) > 0
        v{end+1} = ['Violation of County Registered Voters: ',num2str(sum(abs(a(:,3))))];
    end
    
    % Penalize for difference from number of absentee voters per county
    a(:,dim+2) = exPen * (countyVotes(:,end-1) - sum(avotes(:,1:dim),2));
    if nargout > 1 && sum(abs(a(:,dim+2))) > 0
        v{end+1} = ['Violation of County Absentee Votes: ',num2str(sum(abs(a(:,dim+2))))];
    end
end
y = [y;a(:)];

if doB
    % Penalize difference from number of computed absentee votes per precinct
    b = exPen * (sum(abVotes,2)-ipVotes(:,end));
    %b(b<0) = 0;  % No penalty if we dont go over limit
    y = [y;b(:)];
    
    if nargout > 1 && sum(abs(b(:))) > 0
        v{end+1} = ['Violation of Precinct Approved and Returned Absentee Ballots: ',num2str(sum(abs(b(:))))];
    end
end

if doC
    % Penalize going over the total number of registered voters per precinct
    c = exPen * (sum(xvotes(:,1:dim),2)-ipVotes(:,dim+2));
    c(c<0) = 0;  % No penalty if we dont go over limit
    y = [y;c(:)];
    
    if nargout > 1 && sum(abs(c(:))) > 0
        v{end+1} = ['Violation of Precinct Registered Voters: ',num2str(sum(abs(c(:))))];
    end
end

Rsults:

I was unable to find a solution using ANY of the constraint permutations that satisfied mathematical consistency. While I was able to produce estimates of absentee vote share per precinct, none of the solutions generated fell completely within the reported turnout, reported absentee ballot splits, or other constraints as defined by the published and certified VA DoE results.

Based on the deviations otherwise observed and reported by VA DoE, an error threshold of 0.1% on reconstructed totals using the modeled absentee ballot distributions should be readily achievable, with exact matches the ideal and desired result . The closest solution I have achieved so far is off by a min of 0.35% (for reconstructed Trump vote total) and a max of 0.62% (for the reconstructed total number of votes cast).

I have issued on FB, Twitter and Telegram an open challenge and reward of $1000 to the first person that can provide such a solution. I do not believe that such a solution exists.

Original Per Precinct (In Person Only) Election Fingerprint
Original Per County Election Fingerprint
Modeled Per County Election Fingerprint using all constraints above
Modeled Per Precinct (In Person + Absentee) Election Fingerprint using all constraints above

A bugfix, but still no solution found … (update @ 2021-08-17 3:19pm)

There was a bug in the objective function posted above. The penalty score for going over the number of registered voters per county and the penalty score for going over the number of registered voters in the precinct should have had a negative sign in front of them. This has been fixed in the program listing above. While the LM optimization gets much closer with this bugfix, I have still yet to find a solution that satisfies all constraints and matches the results reported by VA DoE.

The “best bad” solution I could find … (update @ 2021-08-26 0:09 am)

After weeks of running different variations the “best bad” numerical solution I can find still busts the constraints derived from the reported VA data. The error function code and the resultant images have been updated. The following deviations are the mathematical minimum amount of deviations that I could achieve using the Levenberg-Marquardt optimization. There does not appear to be a mathematical solution to the absentee unwrapping problem in VA that does not violate the published tallies from VA DoE. There *should* be an entire universe of possibilities. The fact that there isn’t one is near irrefutable proof that the election vote tallies certified by VA are egregiously flawed.

Violation of County Vote Tally: 1401
Violation of County Absentee Votes: 1267
Violation of Precinct Approved and Returned Absentee Ballots: 15255
Violation of Precinct Registered Voters: 1808

The “worst bad” solution, which only tried to constrain the problem based on reported vote tallies, performed significantly worse.

Violation of County Vote Tally: 2382
Violation of County Absentee Votes: 970
Violation of Precinct Approved and Returned Absentee Ballots: 559492
Violation of Precinct Registered Voters: 75041

Compiled source data for the challenge:

Update (2021-08-18) Adding expanded source data including Jorgensen and Write-In Votes:

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

Mike Lindell’s Cyber Symposium – Day 1

Yes. I’ve been watching the Mike Lindell cyber symposium.

I was invited to attend (thank you again to Amanda Freeman Chase), but due to timing, my day job, and my understanding of the event format … I thought I could be more effective watching from home with the ability multi-task and to research things I heard real-time and continue my ongoing work in the background.

There’s a lot of fluff that was presented, which is fine. But Dr. Frank’s presentation was very very good, which was the first presentation I caught, and while I haven’t cross checked his methods (yet), they mostly corroborate the artifacts that I have seen as well using very different and rigorous techniques … at least at first blush going off of his presentation. (It’s now on my todo list to replicate his results.)

I am less convinced of the PCAP’s, and the theory that there was an organized (China backed) conspiracy to commit fraud as I’m still not sure as to some of the details as to data origin, methods, etc. I do find it very plausible. I just need more details. (I’m very familiar with PCAP’s, etc. but there are a lot more details that are required.)

However, until I get a better in depth look at the PCAP data and the code used to reconstruct Mike’s “corrected” maps, I think there is a simpler explanation: It is not required that fraud, manipulation or incompetence needs to have been organized to be effective. There does not need to be a nefarious man-behind-the-curtain. I think it more likely that we are looking at many mechanisms affecting our elections (plural), not a major singular effort. Thats my operating theory anyway.

Categories
Election Data Analysis Election Forensics Election Integrity Ginsu Science Interesting programming technical

Vote Discrepancy in VA 2020 Voting data

Note: As of Update 2021-08-13 (see below) the discrepancy is now 382176 Votes.

This needs to be explained. I hope this is just a mistake on my part or it can be attributed to a documented clerical or reporting error. I’ve gone over this a number of times now and triple checked my data sources and methods (all described or linked here). I’m only using the publicly available data from the VA Dept of Elections website and a doing a fairly basic consistency check between the machine readable data (csv) and what is presented on their site.

The VA Dept of Election summarizes the voting results for the 2020 Presidential election as follows. We note that even just taking screen shots from the VA DoE website we can notice that the vote totals for the same elections have some error in them. The first screen shot shows the total number of votes in the 2020 Presidential Election as 4,486,821 while the second shows the number of votes cast as 4,460,524. Now that is not a major difference in relation to the margin of victory or the number of votes cast, so it’s not something that bothers me. The two reported numbers are close enough that it is plausible that one includes overvotes/undervotes and the other doesn’t, or something similar. But it IS a noted difference, none the less. (issue # 1)

Screen Shot (as of 2021-08-10) of https://www.elections.virginia.gov/resultsreports/registrationturnout-statistics/ as of 2021-08-10
Screen Shot (as of 2021-08-10) https://historical.elections.virginia.gov/elections/search/year_from:2020/year_to:2020/office_id:1/stage:General

The VA DoE also publishes the 2020 General Election results (here) as a csv file. (I pulled a fresh copy as of 2021-08-10 to run this analysis, but its too large to upload to the site). One would expect the data in the csv and the data presented on the VA DoE website to match, or at least be close enough to chalk up any errors to something simple like over-votes/undervotes, etc.. They don’t. Not only do they not match, but they don’t match in a very peculiar way. Let’s walk through the process of grabbing the data from the csv and tabulating metrics above in a very simple MATLAB script, shall we?


% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Import the November General vote totals and collate ...
NovemberGeneral = importVAVotefile("SourceData/2020 November General.csv", [2, Inf]);
NovemberGeneral = NovemberGeneral(NovemberGeneral.OfficeTitle == 'President and Vice President',:);
LocalityName = NovemberGeneral.LocalityName;
DistrictName = NovemberGeneral.DistrictName;
PrecinctName = NovemberGeneral.PrecinctName;

uid = join(cat(2,string(LocalityName),string(DistrictName),string(PrecinctName)),' : ');

[uuids, ui,ua] = unique(uid);
[ulns, uci,uca] = unique(NovemberGeneral.LastName);
votes = accumarray([ua,uca],NovemberGeneral.TOTAL_VOTES);
votes(isnan(votes)) = 0;
votes(:,end+1) = sum(votes,2);

isAbsentee = contains(string(uuids),"Central Absentee Precinct");
isProvisional = contains(string(uuids),"Provisional");

% Compute the sum of all ballots
TotalVotes = sum(votes(:,end))

% Compute the sum of the in person ballots
InPersonVotes = sum(votes(~isAbsentee & ~isProvisional,end))

% Compute the sum of the provisional or absentee ballots
Absentee = sum(votes(isAbsentee | isProvisional,end))
>> TotalVotes = 4462600
>> InPersonVotes = 1630833
>> Absentee = 2831767

Wait a minute?? … the data from the first link show the Absentee vote being 2,687,304. Yet the “2020 November General.csv” file shows 2,831,767 absentee votes. Thats a difference of somewhere around 144,463 votes! Even more interesting is the fact that the total number of votes is still consistent with the published summary screenshots above. Thats a significant enough discrepancy that I get my worry beads out. Now, granted, this could … in some convoluted Rube Goldberg esque manner … be just be a clerical error, or maybe I’m just missing something totally obvious about the data. But no matter the reason, this NEEDS to be explained.

Update 2021-08-10 6:57pm

I’ve received a update that further corroborates the discontinuity in these numbers. In response to a FOIA request, the VA Dept of Elections supplied a summary file of the counts of all requested and returned absentee ballots per county.

This data file comes from ashley.coles@elections.virginia.gov. It contains only two data columns, the Total Requested and the Total Returned. Summing the Total Returned column produces a result of 2,829,037. which is only off from my result by 2730 (<< 1%). So we have yet another official source of VA election data that shows a discrepancy from the official results that were certified by VA. No fancy MATLAB scripts required to process, just simple sum of the table columns.

Update 2021-08-13 3:00 PM

Looking closer at the official certified results from the VA DoE (first graphic and link above), they report that in 2020 the Total Registered = 5,975,696, the Total Voting = 4,486,821, and the % Turnout = 81.48%. They define the “Turnout” metric in the header as “% Voting of Total Registered”. So according to VA DoE … Total Voting / Total Registered * 100 = 4486821 / 5975696 * 100 = 81.48. Simple, right?

Except its wrong. Way wrong. Go ahead … grab a calculator. Try it for yourself.

4486821 / 5975696 * 100 = 75.0845 is what you’ll come up with. That’s a Difference of 6.40% from the reported turnout. .064 * Total Registered = .064 * 5,975,696 = 382,176 (rounded) Unaccounted for votes.

But Jon … you say … surely you are just misinterpreting their metric! They wouldn’t have published the certified results with that glaring of an error. There has to be some other variable that’s counted in the turnout numbers that they just forgot to describe in the header line of the report.

If that were the case, we would expect the other election totals in the subsequent rows to show similar errors then, right? Yeah … not so much. Every other year in this same report has a difference of less than 0.1%.

Remember these are the numbers that VA certified to congress. Even if this is just a clerical error, we need to know how and why it happened and make sure it doesn’t happen again. We need a full audit of the VA 2020 Election.

YearTotal RegisteredPercentage Change from Previous YearTotal VotingTurnout (% Voting of Total Registered)Voting Absentee (Included in Total Voting)Total Voting / Total RegisteredDifference From Reported Turnout
20205,975,6966.18%4,486,82181.48%2,687,30475.08%6.40%
20195,628,035-1.00%2,383,64642.40%144,36042.35%0.05%
20185,666,9623.31%3,374,38259.50%337,31559.54%-0.04%
20175,489,530-0.73%2,612,30947.60%192,39747.59%0.01%
20165,529,7426.41%3,984,63172.05%566,94872.06%-0.01%
20155,196,436-1.60%1,509,86429.10%62,60529.06%0.04%
20145,281,0110.78%2,194,34641.60%123,22141.55%0.05%
20135,240,286-3.50%2,253,41843.00%121,35943.00%0.00%
20125,428,8336.10%3,858,04371.06%447,90771.07%-0.01%
20115,116,9291.68%1,463,76128.61%59,51928.61%0.00%
20105,032,1441.54%2,214,50344.01%106,88844.01%0.00%
20094,955,750-1.57%2,000,81240.40%88,18240.37%0.03%
20085,034,66010.70%3,723,26074.00%506,67273.95%0.05%
20074,549,864-0.10%1,374,52630.20%30,61930.21%-0.01%
20064,554,6832.30%2,398,58952.70%116,62952.66%0.04%
20054,452,225-1.50%2,000,05244.92%75,98244.92%0.00%
20044,517,9807.10%3,198,36770.79%222,05970.79%0.00%
20034,217,227-0.10%1,296,95530.80%35,71630.75%0.05%
20024,219,9572.70%1,331,91531.56%44,49331.56%0.00%
20014,109,1270.90%1,905,51146.40%52,34446.37%0.03%
20004,073,6447.00%2,739,44767.20%150,41467.25%-0.05%
19993,808,7542.30%1,373,52736.10%10,68636.06%0.04%
19983,724,6834.50%1,229,13933.00%31,49433.00%0.00%
19973,565,6977.30%1,764,47649.50%47,57149.48%0.02%
19963,322,7409.40%2,416,64272.70%116,60672.73%-0.03%
19953,038,3941.30%1,585,78352.20%45,78552.19%0.01%
19943,000,5600.90%2,078,10669.30%81,63669.26%0.04%
19932,975,121-2.60%1,817,77761.10%53,90461.10%0.00%
19923,055,4869.40%2,558,66583.70%141,12383.74%-0.04%
      

Summary:

In summary, I can rectify the “2020 November General” and the “Daily_Registrant_Count_By_Locality” data files to give the following results compared to the HTML web report. The additional cross check of the response from FOIA request, matches my number to within a few thousand. All of this data is provided by VA DoE. All of it is supposed to be authoritative and definitive. And none of it makes any sense.

VA DoE Certified ResultsBiden VoteTrump VoteTotal VotingTotal Registered% Change from previous year(Reported) Turnout (Total Voting / Total Registered)(Computed) TurnoutVoting Absentee
#1VA DoE Report: Registration / Turnout4,486,8215,975,6766.18%81.48%75.08% (~382,443 Votes)2,687,304
#2VA DoE Elections Database2,413,5681,962,4304,460,524
#3CSV: 2020-November-General2,413,5681,962,4304,462,6002,831,767
#4CSV: Registrations 11-01-20205,975,7176.18%
#5FOIA’d CSV2,829,037
#6Daily Absentee List (by Request)2,826,484
Computed from #3 & #474.68%74.68%
Max Abs Difference0024,2214106.8% 0.4%144,463
Inconsistencies in VA Dept of Elections Provided Data
Registration / Turnout Report: https://www.elections.virginia.gov/resultsreports/registrationturnout-statistics/
Elections Database: https://historical.elections.virginia.gov/elections/search/year_from:2020/year_to:2020/office_id:1/stage:General
CSV-2020-November-General: https://apps.elections.virginia.gov/SBE_CSV/ELECTIONS/ELECTIONRESULTS/2020/
CSV-Registrations-2020-11-01: https://www.elections.virginia.gov/media/registration-statistics/2020/nov/Daily_Registrant_Count_By_Locality_2020_12_01_054401.csv
FOIA’s CSV: https://www.elections.virginia.gov/media/registration-statistics/2020/nov/Daily_Registrant_Count_By_Locality_2020_12_01_054401.csv
DAL (as of 2020-11-30): https://www.elections.virginia.gov/candidatepac-info/client-services/index.html

Other Code Used in this analysis:

I will note for completeness here that the importVAVotefile(...) function referenced above is auto-generated by the MATLAB Import Data tool. I’ve listed it below for the record.

function NovemberGeneral = importVAVotefile(filename, dataLines)
%IMPORTFILE Import data from a text file
%  NOVEMBERGENERAL = IMPORTFILE(FILENAME) reads data from text file
%  FILENAME for the default selection.  Returns the data as a table.
%
%  NOVEMBERGENERAL = IMPORTFILE(FILE, DATALINES) reads data for the
%  specified row interval(s) of text file FILENAME. Specify DATALINES as
%  a positive scalar integer or a N-by-2 array of positive scalar
%  integers for dis-contiguous row intervals.
%
%  Example:
%  NovemberGeneral = importVAVotefile("2020 November General.csv", [2, Inf]);
%
%  See also READTABLE.
%
% Auto-generated by MATLAB on 07-Aug-2021 14:36:17

%% Input handling

% If dataLines is not specified, define defaults
if nargin < 2
    dataLines = [2, Inf];
end

%% Set up the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 22);

% Specify range and delimiter
opts.DataLines = dataLines;
opts.Delimiter = ",";

% Specify column names and types
opts.VariableNames = ["CandidateUid", "FirstName", "MiddleName", "LastName", "Suffix", "TOTAL_VOTES", "Party", "WriteInVote", "LocalityUid", "LocalityCode", "LocalityName", "PrecinctUid", "PrecinctName", "DistrictUid", "DistrictType", "DistrictName", "OfficeUid", "OfficeTitle", "ElectionUid", "ElectionType", "ElectionDate", "ElectionName"];
opts.VariableTypes = ["categorical", "categorical", "categorical", "categorical", "categorical", "double", "categorical", "categorical", "categorical", "double", "categorical", "categorical", "categorical", "categorical", "categorical", "categorical", "categorical", "categorical", "categorical", "categorical", "string", "categorical"];

% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";

% Specify variable properties
opts = setvaropts(opts, "ElectionDate", "WhitespaceRule", "preserve");
opts = setvaropts(opts, ["CandidateUid", "FirstName", "MiddleName", "LastName", "Suffix", "Party", "WriteInVote", "LocalityUid", "LocalityName", "PrecinctUid", "PrecinctName", "DistrictUid", "DistrictType", "DistrictName", "OfficeUid", "OfficeTitle", "ElectionUid", "ElectionType", "ElectionDate", "ElectionName"], "EmptyFieldRule", "auto");

% Import the data
NovemberGeneral = readtable(filename, opts);

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

New WI 2020 Election Fingerprints, rev 2.0

Shortly after posting some updated WI data analysis (here) I got pointed to an even better set of data to use for generating the fingerprints. This updated dataset uses the registration numbers as of Nov 3 and the per ward vote tallies provided on the https://elections.wi.gov/ site.

I also made some code modifications in order to compute an idealized model of what the Fingerprint “should” look like, similar to what was done in the original National Academy of Sciences paper. The ideal model is based on a 2D Gaussian Mixture Model fit to the locations of top histogram bins that are >= 70% of the max histogram value. The model uses a shared covariance matrix for all of the components based off of the sample covariance of the data. In the statewide plot below the Election Fingerprint is in the top right, with the ideal model in the bottom left. On the bottom right and top left are the sums of the Election Fingerprint image across the different dimensions.

Statewide Election Fingerprint, per Ward group

We see what looks like two (or even three) superimposed lobes around the 90% turnout and 40% per Biden bin, which is consistent with my earlier low-res version, and we have a lot more detail as to the upward kurtotic smear off the main distribution. There also are a few Ward Groupings that have exceptionally high % for Biden (rarely, if ever, does a candidate receive near 100% vote share), and there are Ward Groupings that are near/over the 100% turnout marker, with the addition that some of those are ALSO either 100% Biden or 0% Biden (all big red flags)!

As discussed in the National Academy of Sciences paper that all of this work is based on, an idealized Election Fingerprint should look like a 2D Gaussian (or a multi-variate normal distribution). Or maybe, in an extremely divided populace, 2 overlapping Gaussian distributions. Deviations from this are, by definition, irregular and an indication that there might be an issue with the election. Distinct linear or non-linear features sloping away from the central lobes(s) could indicate voter manipulation or “ballot stuffing”; isolated regions at high turnout +/or very high vote percentage for one candidate could be an indication of extreme manipulation or vote substitution. Now, its true that no real Election Fingerprint will look perfectly Gaussian due to the realities of how elections operate, data errors, etc … but they should at least be close!

Testing specific Wards to check for outliers

Just like before, I went through each individual counties data to make individual county specific Fingerprints. I also used the model to find a set of “interesting” wards by testing how well the ward fit against the probability density function (pdf) of the model. Wards are deemed outliers from the model if the ward group entry had (over 25 votes total) AND (it had over 97% turnout OR it had over 97% votes for Biden OR it had an evaluated pdf of < 1E-9 against the GMM Model). The complete list of outliers according to this model is below, along with the sums for the outlier wards.

BidenVotesTrumpVotesTotalVotesRegisteredVotes
Sum 213312139381359130446866
LocalityBidenVotesTrumpVotesTotalVotesRegisteredVotersTurnoutBidenPctTrumpPctModel Probability
ASHLAND COUNTY TOWN OF LA POINTE WARD 12365229432490.740740740740780.272108843537417.6870748299321.92477676888761E-12
ASHLAND COUNTY TOWN OF SANBORN WARDS 1-24428553070575.17730496453983.396226415094316.03773584905666.11329669551507E-18
BARRON COUNTY CITY OF BARRON WARDS 1-76838371532196378.043810494141644.582245430809454.63446475195825.63608603904006E-10
BAYFIELD COUNTY CITY OF BAYFIELD WARDS 1-43145737345482.1585903083784.182305630026815.28150134048261.02971568650162E-21
BAYFIELD COUNTY CITY OF WASHBURN WARDS 1-49443201283149385.93436034829273.577552611067824.94154325798914.1581192007984E-12
BAYFIELD COUNTY TOWN OF BAYFIELD WARD 139915856464088.12570.744680851063828.01418439716316.44035024538831E-10
BAYFIELD COUNTY TOWN OF RUSSELL WARDS 1-26019169991276.644736842105385.979971387696713.01859799713887.1789626891056E-28
BROWN COUNTY TOWN OF MORRISON WARDS 1-2196768979111288.039568345323720.020429009193178.44739530132795.20055002328544E-11
COLUMBIA COUNTY TOWN OF RANDOLPH WARD 19237147052689.353612167300419.574468085106478.9361702127661.49308448006707E-12
DANE COUNTY CITY OF MADISON WARD 1277713929398.924731182795783.69565217391314.13043478260876.39561194230751E-06
DANE COUNTY CITY OF MADISON WARD 140378464797.872340425531980.434782608695717.39130434782612.44340709557608E-05
DANE COUNTY CITY OF MADISON WARD 48659148819142657.433380084151580.463980463980518.07081807081813.52762840567405E-10
DANE COUNTY CITY OF MADISON WARD 4919684232427422757.41660752306681.087762669962917.42892459826953.68273621333911E-10
DANE COUNTY CITY OF MADISON WARD 5014622381741307456.636304489264883.974727168294113.67030442274551.25242937905889E-10
DANE COUNTY CITY OF MADISON WARD 542336830463747.72370486656276.644736842105322.36842105263165.70258703816946E-18
DANE COUNTY CITY OF MADISON WARD 5513462701649293956.107519564477781.625227410551816.37355973317165.509685735556E-11
DANE COUNTY CITY OF MADISON WARD 56655195866179948.137854363535375.63510392609722.51732101616639.6228505281742E-18
DANE COUNTY CITY OF MADISON WARD 57750156923179151.53545505304381.256771397616516.90140845070422.47205132607457E-14
DANE COUNTY CITY OF MADISON WARD 583415840676053.421052631578983.990147783251214.28571428571437.30999920891661E-13
DANE COUNTY CITY OF MADISON WARD 593657745293048.602150537634480.752212389380517.03539823008858.17744524385459E-17
DANE COUNTY CITY OF SUN PRAIRIE WARDS 20-22,24-25,281757725625899.224806201550468.35937530.0781250.000158078462324593
DOUGLAS COUNTY CITY OF SUPERIOR WARDS 17-19,30-3211736201856252873.417721518987363.200431034482833.40517241379313.37051056052282E-11
DOUGLAS COUNTY TOWN OF DAIRYLAND WARD 12510112915384.313725490196119.379844961240378.29457364341082.75440521379353E-13
DUNN COUNTY CITY OF MENOMONIE WARD 635325762083174.608904933814756.935483870967741.45161290322584.75782477468469E-10
DUNN COUNTY CITY OF MENOMONIE WARDS 3-4523369919156858.60969387755156.909684439608340.15233949945591.08064146240878E-21
DUNN COUNTY CITY OF MENOMONIE WARDS 5,7361279673127652.742946708463953.640416047548341.45616641901938.60680131606536E-27
DUNN COUNTY CITY OF MENOMONIE WARDS 8-97515281308179073.07262569832457.415902140672840.36697247706425.1671988172534E-11
EAU CLAIRE COUNTY CITY OF ALTOONA WARDS 12-1616112726103.84615384615459.259259259259340.74074074074077.25926716445429E-07
EAU CLAIRE COUNTY CITY OF EAU CLAIRE WARD 20360215596124647.833065810593960.402684563758436.07382550335576.79322707506469E-21
EAU CLAIRE COUNTY CITY OF EAU CLAIRE WARD 5451209679125554.103585657370566.421207658321130.7805596465393.54653273188261E-16
EAU CLAIRE COUNTY CITY OF EAU CLAIRE WARD 6535186743116963.558597091531272.005383580080725.03364737550475.48820883152761E-11
EAU CLAIRE COUNTY TOWN OF FAIRCHILD WARD 13513517419589.230769230769220.114942528735677.58620689655179.210877887475E-13
EAU CLAIRE COUNTY TOWN OF WILSON WARD 14917222325786.770428015564221.973094170403677.13004484304931.18540801589859E-11
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 136042478898879.757085020242945.685279187817353.80710659898486.79364522819134E-11
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 1131029861881076.296296296296350.161812297734648.22006472491912.55555808340175E-16
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 1330932264980980.222496909765147.611710323574749.61479198767331.11701213986908E-11
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 1633835169883084.096385542168748.424068767908350.28653295128942.97370363102557E-10
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 1711410422226284.732824427480951.351351351351346.84684684684685.93415306364651E-12
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 1933637172187982.025028441410746.601941747572851.45631067961164.52742910745579E-10
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 232931665983079.397590361445849.924127465857447.95144157814871.15316292964617E-13
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 56836611378162684.747847478474849.564586357039247.96806966618299.37767055176873E-11
FOND DU LAC COUNTY CITY OF FOND DU LAC WARD 934132667988576.723163841807950.22091310751148.01178203240065.66905415025079E-16
FOND DU LAC COUNTY CITY OF RIPON WARDS 4-6415403829108576.405529953917150.060313630880648.61278648974673.75104914617071E-16
FOND DU LAC COUNTY CITY OF RIPON WARDS 9-115405921152139682.521489971346746.87551.38888888888895.52488291943727E-10
FOREST COUNTY TOWN OF NASHVILLE WARD 21315418625074.470.430107526881729.03225806451615.58741907395928E-23
GRANT COUNTY CITY OF PLATTEVILLE WARDS 5-6335294662114957.61531766753750.604229607250844.41087613293053.46889241295325E-26
GRANT COUNTY CITY OF PLATTEVILLE WARDS 7-98556251547212972.663222170032955.268261150614140.40077569489331.43548705444654E-10
GRANT COUNTY VILLAGE OF WOODMAN WARD 11235476968.115942028985525.53191489361774.4680851063831.82801386794522E-13
JACKSON COUNTY TOWN OF BEAR BLUFF WARD 1118910010892.592592592592611891.36352878176187E-10
JACKSON COUNTY TOWN OF KOMENSKY WARD 11463017622279.279279279279382.954545454545517.04545454545451.32889222362522E-25
JEFFERSON COUNTY CITY OF WHITEWATER WARD 121158720550140.918163672654756.097560975609842.43902439024392.12872002012183E-42
JEFFERSON COUNTY CITY OF WHITEWATER WARDS 10-1135122359075877.836411609498759.491525423728837.79661016949152.13791245784257E-10
JEFFERSON COUNTY VILLAGE OF CAMBRIDGE WARD 14420657487.837837837837867.692307692307730.76923076923088.22755433390597E-15
KENOSHA COUNTY CITY OF KENOSHA WARD 1029111341361966.720516962843370.460048426150127.36077481840192.06776570315375E-10
KENOSHA COUNTY CITY OF KENOSHA WARD 31626023053043.396226415094370.434782608695726.08695652173913.43956135655265E-34
KENOSHA COUNTY CITY OF KENOSHA WARD 33233263378.787878787878888.461538461538511.53846153846155.42133845876956E-13
KENOSHA COUNTY CITY OF KENOSHA WARD 72739437455767.145421903052172.994652406417125.13368983957226.87529928579931E-11
KEWAUNEE COUNTY CITY OF ALGOMA WARDS 1-68258191685198085.101010101010148.961424332344248.60534124629089.13667635453448E-11
LA CROSSE COUNTY CITY OF LA CROSSE WARD 1120014434961456.840390879478857.306590257879741.26074498567344.45768797779824E-11
LA CROSSE COUNTY CITY OF LA CROSSE WARD 8518398936203545.99508599508655.341880341880342.52136752136753.353166809769E-20
LANGLADE COUNTY CITY OF ANTIGO WARD 420120340649781.690140845070449.5073891625616506.0338889427495E-11
LANGLADE COUNTY CITY OF ANTIGO WARD 512817130741174.695863746958641.693811074918655.7003257328994.05169423409582E-10
MANITOWOC COUNTY CITY OF MANITOWOC WARDS 5-68076781520184282.519001085776353.092105263157944.60526315789473.74295368009036E-12
MANITOWOC COUNTY CITY OF MANITOWOC WARDS 7-84985401061137177.388767323121846.936852026390250.89538171536292.85889433338131E-12
MARATHON COUNTY CITY OF WAUSAU WARD 631519653169176.845151953690359.322033898305136.91148775894542.35008171069057E-11
MARATHON COUNTY CITY OF WAUSAU WARD 827920850071270.224719101123655.841.61.41787361998521E-14
MILWAUKEE COUNTY CITY OF CUDAHY WARDS 1-312257291984243381.545417180435761.743951612903236.74395161290327.55840876244649E-16
MILWAUKEE COUNTY CITY OF CUDAHY WARDS 10-129639361924237481.04465037910750.05197505197548.64864864864871.74595382047536E-23
MILWAUKEE COUNTY CITY OF CUDAHY WARDS 13-15111810502189263383.137105962780151.073549566011947.96710826861581.04744228724223E-23
MILWAUKEE COUNTY CITY OF CUDAHY WARDS 4-69837971819229579.259259259259354.04068169323843.81528312259489.06241072063201E-20
MILWAUKEE COUNTY CITY OF CUDAHY WARDS 7-98577151595210275.880114176974353.73040752351144.82758620689668.54298236281862E-19
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 1024219744648192.723492723492754.260089686098744.17040358744391.46465970777214E-27
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 115406531203135488.847858197932144.887780548628454.28096425602664.20290665007461E-32
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 1233750284998186.544342507645339.693757361601959.12838633686692.24476659505987E-35
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 135526351200134489.28571428571434652.91666666666671.90914119352679E-31
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 144945281033114989.904264577893847.821878025169451.11326234269122.33294864294759E-30
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 15A20933054365083.538461538461538.489871086556260.77348066298347.5447895506994E-35
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 15B17720739045086.666666666666745.384615384615453.07692307692312.80359406780404E-30
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 165286921239138789.329488103821242.615012106537555.85149313962871.90956073819003E-34
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 1739635075783990.226460071513752.311756935270846.23513870541614.20442722572625E-27
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 1821225647251791.295938104448744.915254237288154.23728813559328.35213158350655E-34
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 195577121279144188.757807078417843.549648162627155.66849100860053.21836172741495E-33
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 26318781531166891.786570743405341.214892227302457.34813847158721.68975552016341E-37
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 2032933967777287.694300518134748.596750369276250.07385524372232.97205717497328E-28
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 2117412731140277.36318407960255.948553054662440.83601286173639.56678900628984E-18
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 22A31739671880389.414694894146944.15041782729855.15320334261843.93357547643516E-33
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 22B28038667773991.610284167794341.358936484490457.01624815361893.12040163864428E-37
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 234937631275141090.425531914893638.666666666666759.8431372549026.22957831868089E-39
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 37518231598177490.078917700112746.996245306633351.50187734668343.68125386891159E-31
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 432147079895183.911671924290240.225563909774458.89724310776942.2686537468804E-33
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 528636965972091.527777777777843.399089529590355.99393019726862.60219138859018E-35
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 64955821093122289.44353518821645.28819762122653.24794144556273.67278895928314E-32
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 76507771437157391.354100445009545.233124565066154.07098121085591.42346954750186E-33
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 85534281002117285.494880546075155.18962075848342.71457085828345.12738299716137E-22
MILWAUKEE COUNTY CITY OF FRANKLIN WARD 95224691003115486.915077989601452.043868394815646.75972083748754.17082445761439E-25
MILWAUKEE COUNTY CITY OF GLENDALE WARD 835617252959289.358108108108167.29678638941432.51417769376181.89068769493298E-17
MILWAUKEE COUNTY CITY OF GLENDALE WARDS 1,79843471363155587.652733118971172.193690388848125.45854732208363.16744713268672E-14
MILWAUKEE COUNTY CITY OF GLENDALE WARDS 2,8S712212935107686.895910780669276.149732620320822.67379679144392.28904788740795E-12
MILWAUKEE COUNTY CITY OF GLENDALE WARDS 3,910534591546176487.641723356009168.11125485122929.68952134540756.14813246126453E-16
MILWAUKEE COUNTY CITY OF GLENDALE WARDS 4,1011724681657185489.374325782092870.730235365117728.24381412190716.02930527494358E-16
MILWAUKEE COUNTY CITY OF GLENDALE WARDS 5,119343571312148088.648648648648771.189024390243927.21036585365852.86273338591949E-15
MILWAUKEE COUNTY CITY OF GLENDALE WARDS 6,128662701153134985.47071905114975.108412836079823.4171725932357.42416867151683E-12
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 15764381035126182.077716098334655.652173913043542.31884057971016.75719273960832E-20
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 105655181102129784.965304548959151.270417422867547.0054446460981.54815447380789E-24
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 116196891323145790.803019903912246.787603930461152.07860922146647.49110216197986E-32
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 126097671392157688.324873096446743.7555.10057471264379.38170717809966E-33
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 1335231767578086.538461538461552.148148148148146.9629629629638.46101282137081E-25
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 14469428910112480.960854092526751.538461538461547.0329670329672.5923776457702E-22
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 15431467912108683.977900552486247.258771929824651.20614035087723.64452002818065E-27
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 1618220038547581.052631578947447.272727272727351.94805194805191.03185649345929E-25
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 1746134681599282.157258064516156.564417177914142.45398773006132.52239916433965E-19
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 18426448888101487.573964497041447.97297297297350.45045045045041.11207447361166E-28
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 197645251298150886.074270557029258.859784283513140.44684129429895.85375850169128E-20
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 2445447903106884.550561797752849.280177187153949.50166112956817.65010167785277E-26
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 206856651364159085.786163522012650.219941348973648.75366568914968.26628576102177E-26
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 21450372838102781.596884128529753.699284009546544.39140811455855.02825498303287E-21
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 3495343852107179.551820728291358.098591549295840.25821596244133.60103037564101E-17
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 4516306832110075.636363636363662.019230769230836.77884615384621.96038822277719E-13
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 5520439972121180.264244426094153.497942386831345.16460905349791.42770280944536E-20
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 6448530996114387.139107611548644.979919678714953.21285140562256.42641640780174E-31
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 76296431296151885.375494071146248.533950617283949.61419753086426.70730734893469E-27
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 86125041127136182.806759735488654.303460514640644.72049689440993.49143853336436E-21
MILWAUKEE COUNTY CITY OF GREENFIELD WARD 95504991065124485.610932475884351.643192488262946.85446009389671.26351449266701E-24
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 1075881060490966.446644664466497.35099337748341.655629139072850.00607290997487753
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 1163951040766361.387631975867397.0515970515972.457002457002460.00442900875815082
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 1302677835292837.931034482758675.852272727272722.15909090909095.06449448879178E-16
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 13212553591633196982.93550025393676.85241886099221.98407838334356.22621280143243E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 144334634455961.538461538461597.09302325581391.744186046511630.0045609717682438
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 1553521876892183.387622149837169.661458333333328.38541666666678.50493764715297E-13
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 18617956962541327177.682665851421670.641479732388827.39079102715476.8232933072707E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 191399141550120445.681063122923672.545454545454525.63636363636363.99914771473777E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 20557219779296582.072538860103672.222222222222224.87373737373744.24373565136365E-11
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 20647916365475786.393659180977673.241590214067324.92354740061164.72113232055249E-13
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 20744627073092878.663793103448361.095890410958936.9863013698635.36175276901475E-15
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 208512302834102781.20740019474261.390887290167936.211031175066.79004252066778E-16
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 20945329576290784.01323042998959.448818897637838.71391076115491.95546986299735E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 21035531568992174.809989142236751.523947750362845.71843251088534.27579491035909E-20
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 21146128577099877.154308617234559.870129870129937.0129870129873.56231589937219E-15
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 212514310842112374.977738201246761.045130641330236.81710213776728.4094687651029E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 213569294883115576.450216450216464.439411098527733.29558323895812.2623703277218E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2438522151083123887.479806138933878.670360110803319.85226223453375.41723117940624E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 24555613570282884.782608695652279.202279202279219.23076923076923.00331841376544E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 26133717452363282.75316455696264.435946462715133.26959847036335.82555622850465E-15
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2626653881064130581.532567049808462.536.46616541353382.04151668899336E-15
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 26337419957975776.486129458388464.59412780656334.36960276338512.65171157727609E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2646764851185144482.063711911357357.046413502109740.92827004219415.79902239092725E-19
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 26535126762877680.927835051546455.891719745222942.5159235668793.34925682107936E-19
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 26634036072190080.111111111111147.156726768377349.93065187239942.13915754083083E-25
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 26736228565779282.954545454545555.098934550989343.378995433791.04876863667821E-20
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2687986341452178881.208053691275254.958677685950443.663911845735.79255390176922E-20
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 269451388857107679.646840148698952.625437572928845.27421236872816.07513589006184E-21
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 27041137679999280.544354838709751.439299123904947.05882352941183.33979654311459E-22
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2718176341472183480.261723009814655.502717391304343.0706521739133.58022181504136E-19
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2725125671096126686.571879936808946.715328467153351.73357664233584.28503366875072E-29
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 27331329061071984.840055632823451.311475409836147.54098360655741.95369959606737E-24
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 27429629761076379.947575360419448.524590163934448.68852459016393.26718700327756E-24
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2757726331423185476.752966558791854.251581166549544.48348559381591.05215494863984E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2766726001295152784.806810740013151.891891891891946.33204633204635.54486888719382E-24
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2776886021320164080.487804878048852.121212121212145.60606060606061.1395279941763E-21
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 27837035974091680.78602620087345048.51351351351352.07680960722687E-23
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2795734451040126582.213438735177955.096153846153942.78846153846152.42738130289664E-20
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 28011244811630206578.934624697336668.957055214723929.50920245398774.4239076774363E-11
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 28147426574795778.056426332288463.453815261044235.4752342704151.89778550535121E-13
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 28347325273698374.872838250254364.266304347826134.23913043478265.45437704403475E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 28627713642058072.413793103448365.952380952380932.38095238095241.56448201263501E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 28733114148359780.904522613065368.530020703933729.19254658385094.2570324619449E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 2886733861077135079.777777777777862.488393686165335.84029712163421.19076439246385E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 29242819863279779.29736511919767.721518987341831.32911392405068.75090412574107E-12
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 29349527778995382.79118572927662.737642585551335.10773130544996.82907019712108E-16
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 29441819162173384.720327421555367.310789049919530.75684380032211.43489007810167E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 29554119175093180.558539205155772.133333333333325.46666666666671.9406997206457E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 296671288982115485.095320623916868.329938900203729.32790224032592.61839983551383E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 297637197849102183.153770812928575.029446407538323.20376914016491.26537229672712E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 29854216272385684.462616822429974.965421853388722.40663900414942.44713694663658E-11
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 299653249921108185.198889916743870.901194353963127.03583061889252.92696461989792E-13
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 3009672241215141086.170212765957479.588477366255118.43621399176956.00326630881646E-11
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 3017693611153135984.841795437821966.695576756287931.30962705984396.25191697293189E-15
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 30247630979295183.280757097791860.101010101010139.01515151515151.17316695988034E-17
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 3037224291172136585.860805860805961.604095563139936.60409556313993.38458923045215E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 304531379928116579.65665236051557.219827586206940.84051724137938.90270006142794E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 305567344932115980.414150129421960.836909871244636.90987124463527.29125476826321E-16
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 30647621570093175.1879699248126830.71428571428573.05481514364101E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 30748630280298681.338742393509160.598503740648437.65586034912722.04179924025003E-16
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 3096454531114137880.841799709724257.899461400359140.66427289048477.56341300405146E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 31136827765684777.449822904368456.097560975609842.22560975609761.12321636456187E-17
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 312553389950107788.207985143918358.210526315789540.94736842105261.07820265316607E-21
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 3139507621743218279.880843263061454.503729202524443.71772805507751.06521933847579E-19
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 31434732068081283.74384236453251.029411764705947.05882352941184.70010708286927E-24
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 315466436916160457.107231920199550.873362445414847.59825327510924.13471102377506E-20
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 31637337075092581.081081081081149.733333333333349.33333333333339.49352292125111E-24
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 317533352901108782.888684452621959.156492785793639.06770255271924.96013279980341E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 3313246842039251081.235059760956264.933791074055933.54585581167245.60180949248076E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 8138423063277981.129653401797260.759493670886136.39240506329113.1634316099815E-16
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 8252830184397586.461538461538562.633451957295435.705812574145.64360612254358E-18
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 836623231009122282.56955810147365.60951437066432.011892963332.86383247830138E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 8446522471086781.891580161476465.492957746478931.54929577464795.33119079644663E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 85623302945114682.460732984293265.925925925925931.9576719576724.65866813999447E-14
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 86629274926111083.423423423423467.9265658747329.58963282937371.37729902611045E-13
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 8743415059372981.344307270233273.187183811129925.29510961214172.15106739253755E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 8860518380496483.40248962655675.248756218905522.76119402985071.11543465562254E-10
MILWAUKEE COUNTY CITY OF MILWAUKEE WARD 9349517067679085.569620253164673.224852071005925.14792899408281.42556748420486E-12
MILWAUKEE COUNTY CITY OF OAK CREEK WARDS 1-3170117443522400987.85233225243248.296422487223249.51731970471321.34995380021904E-28
MILWAUKEE COUNTY CITY OF OAK CREEK WARDS 10-12159620903758426888.050609184629842.469398616285355.61468866418311.00089661325203E-33
MILWAUKEE COUNTY CITY OF OAK CREEK WARDS 13-15155920563664407589.914110429447942.549126637554656.11353711790396.55292766071753E-35
MILWAUKEE COUNTY CITY OF OAK CREEK WARDS 16-19156513072929352183.186594717409853.431205189484544.62273813588265.40429558312339E-22
MILWAUKEE COUNTY CITY OF OAK CREEK WARDS 4-6177716073453408784.487399070222751.462496379959546.53924123950193.97596480799759E-24
MILWAUKEE COUNTY CITY OF OAK CREEK WARDS 7-9165217583461395487.531613555892847.73186940190750.79456804391797.52545559662631E-29
MILWAUKEE COUNTY CITY OF SOUTH MILWAUKEE WARDS 1-4150212522824334884.348864994026353.186968838526944.33427762039668.79048436758186E-23
MILWAUKEE COUNTY CITY OF SOUTH MILWAUKEE WARDS 13-16135413452753330383.348471086890749.182709771158748.85579367962222.79916556081515E-25
MILWAUKEE COUNTY CITY OF SOUTH MILWAUKEE WARDS 5-8124011792464301381.778957849319650.324675324675347.8490259740261.3006965302369E-23
MILWAUKEE COUNTY CITY OF SOUTH MILWAUKEE WARDS 9-12154315703154367985.729817885294948.922003804692549.77805960684848.55077535471153E-27
MILWAUKEE COUNTY CITY OF ST. FRANCIS WARDS 1-49666881688202283.481701285855657.227488151658840.75829383886261.48833787683868E-19
MILWAUKEE COUNTY CITY OF ST. FRANCIS WARDS 5-810457421818211186.12032212221757.480748074807540.81408140814087.37392790023734E-21
MILWAUKEE COUNTY CITY OF ST. FRANCIS WARDS 9-1213708072206254186.816214088941462.103354487760736.58204895738891.73670652459223E-18
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 19353521313146189.869952087611271.210967250571226.80883472962684.29199717483575E-16
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 1010093791425168284.720570749108270.807017543859726.59649122807024.96976046265056E-13
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 119423701335154186.632057105775570.56179775280927.71535580524343.04969908063255E-14
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 1210095401578174390.533562822719463.941698352344734.22053231939165.90182535799617E-20
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 1353817573485286.15023474178473.297002724795623.8419618528616.91680405682294E-13
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 1410193331386159986.679174484052573.520923520923524.0259740259744.00745124345971E-13
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 1511283251487170187.41916519694375.85743106926721.85608607935448.72613807561488E-13
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 1610564891590175390.701654306902566.415094339622630.75471698113218.10244077319936E-19
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 177965271349148590.841750841750959.00667160859939.06597479614535.17912850085271E-23
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 187563691137134584.535315985130166.49076517150432.45382585751987.35436406286319E-15
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 198364551315152786.116568434839663.57414448669234.60076045627382.95934324139749E-17
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 210062981321150587.774086378737576.154428463285422.5586676760036.45221760442866E-13
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 209986861716199086.231155778894558.158508158508239.976689976691.71666108579506E-20
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 216834591167135086.444444444444458.526135389888639.33161953727512.17866869555251E-20
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 228594841377155288.724226804123762.381989832970235.14887436456061.49463701960189E-19
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 236685191215138487.789017341040554.979423868312842.71604938271611.47783902838351E-23
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 247023381058127682.915360501567466.35160680529331.94706994328924.48324575884219E-14
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 39814011404162586.469.871794871794928.56125356125362.16209341470747E-14
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 412645891896211689.603024574669266.666666666666731.06540084388196.41887343588786E-18
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 57473331095133182.268970698722868.219178082191830.41095890410967.11539536094584E-13
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 67332671019121384.006595218466671.933267909715426.20215897939163.42786865328096E-12
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 710205091564177788.013505908835165.217391304347832.54475703324811.42365789266778E-17
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 841427669885381.828839390386959.312320916905439.5415472779372.03410688133861E-17
MILWAUKEE COUNTY CITY OF WAUWATOSA WARD 97836311447169885.217903415783354.111955770559843.60746371803731.31727251710136E-22
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 1552302875116575.10729613733963.085714285714334.51428571428571.09341656007839E-12
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 106714141107145376.1871988988360.614272809394837.39837398373982.05397477403839E-14
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 117026791402172681.228273464658250.071326676176948.43081312410841.49191405531741E-23
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 125826631265155481.402831402831446.007905138339952.41106719367596.25448622497098E-27
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 138438291715201285.238568588469249.154518950437348.33819241982512.50898219645981E-26
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 14531355906120475.249169435215958.609271523178839.18322295805742.38701616746422E-15
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 15527434987126478.085443037974753.394123606889643.97163120567388.88322217068542E-20
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 16496473996124979.743795036028849.799196787148647.48995983935744.05804724716096E-23
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 176806411348166880.815347721822550.445103857566847.55192878338284.45060932552017E-23
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 187547711550188282.359192348565448.645161290322649.7419354838713.27839997095381E-25
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 197366491413170782.776801405975452.087756546355345.9306440198169.1547815357996E-23
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 28383651223161975.540457072266868.520032706459529.84464431725274.15549638821068E-10
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 205594531025124282.528180354267354.536585365853744.19512195121956.98704542708123E-21
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 216835721279160979.490366687383553.401094605160344.72243940578582.56434663338589E-20
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 22566410990128876.863354037267157.171717171717241.41414141414149.11106723907263E-17
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 236867301440173982.806210465784947.638888888888950.69444444444443.01938597867455E-26
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 24552357922119976.897414512093459.869848156182238.72017353579184.34927337209287E-15
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 256546861365157986.447118429385747.912087912087950.25641025641034.94212313828082E-28
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 3523280828110375.067996373526763.164251207729533.81642512077291.2380705237555E-12
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 47144881225156578.274760383386658.285714285714339.83673469387761.49370039073485E-16
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 55854011000127678.369905956112858.540.11.87650274487038E-16
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 6490399916123074.471544715447253.493449781659443.55895196506551.46418702181846E-18
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 76754701175153476.597131681877457.4468085106383401.68103981731446E-16
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 8565337925123175.142160844841661.081081081081136.43243243243247.92817234717319E-14
MILWAUKEE COUNTY CITY OF WEST ALLIS WARD 97355231280165377.434966727162757.42187540.8593758.44200178825207E-17
MILWAUKEE COUNTY VILLAGE OF BAYSIDE WARD 550819270677990.629011553273471.954674220963227.19546742209632.44456563873148E-16
MILWAUKEE COUNTY VILLAGE OF BAYSIDE WARDS 1,37193231049124284.460547504025868.541468064823630.7912297426127.3531014466122E-14
MILWAUKEE COUNTY VILLAGE OF BAYSIDE WARDS 1S,3S4724717594.666666666666766.197183098591633.80281690140845.20072614807201E-22
MILWAUKEE COUNTY VILLAGE OF BAYSIDE WARDS 2,49113271254141688.559322033898372.647527910685826.07655502392341.21537753246468E-14
MILWAUKEE COUNTY VILLAGE OF BROWN DEER WARDS 1-218915532488294984.367582231264876.004823151125422.22668810289396.03006145464191E-11
MILWAUKEE COUNTY VILLAGE OF BROWN DEER WARDS 3-416847722490289286.099585062240767.630522088353431.0040160642573.2746666274357E-15
MILWAUKEE COUNTY VILLAGE OF BROWN DEER WARDS 5-617496862477292584.683760683760770.609608397254727.69479208720234.32055702907867E-13
MILWAUKEE COUNTY VILLAGE OF FOX POINT WARDS 1-415336412201246889.181523500810469.650159018627929.12312585188552.8694532937401E-16
MILWAUKEE COUNTY VILLAGE OF FOX POINT WARDS 5-919597882786309889.928986442866470.315865039483128.28427853553481.67529969347659E-16
MILWAUKEE COUNTY VILLAGE OF GREENDALE WARDS 1-28249161765195490.327533265097246.68555240793251.89801699716711.35248528592402E-31
MILWAUKEE COUNTY VILLAGE OF GREENDALE WARDS 3-410619042007232486.359724612736752.864972595914345.04235176880923.63389937076315E-24
MILWAUKEE COUNTY VILLAGE OF GREENDALE WARDS 5-69128451782203087.783251231527151.178451178451247.41863075196412.67310357712138E-26
MILWAUKEE COUNTY VILLAGE OF GREENDALE WARDS 7-89008241756199088.241206030150751.2528473804146.92482915717541.53793346484194E-26
MILWAUKEE COUNTY VILLAGE OF GREENDALE WARDS 9-10108710242127240988.29389788293951.104842501175448.1429243065351.0979100727427E-26
MILWAUKEE COUNTY VILLAGE OF HALES CORNERS WARDS 1-37268781637187787.213638785295744.349419670128353.63469761759321.63033371187735E-31
MILWAUKEE COUNTY VILLAGE OF HALES CORNERS WARDS 4-67518291603186086.182795698924746.84965689332551.7155333749229.50129837887944E-29
MILWAUKEE COUNTY VILLAGE OF HALES CORNERS WARDS 7-97637721552176388.031764038570649.162371134020649.74226804123715.09051745202475E-28
MILWAUKEE COUNTY VILLAGE OF RIVER HILLS WARDS 1-37155351259141389.10120311394256.79110405083442.49404289118353.34151147982707E-23
MILWAUKEE COUNTY VILLAGE OF SHOREWOOD WARDS 1-428516063509407986.025986761461181.248218865773717.26987745796521.82789251970963E-10
MILWAUKEE COUNTY VILLAGE OF SHOREWOOD WARDS 5-824604352939336587.340267459138283.70193943518214.80095270500179.12181429933463E-11
MILWAUKEE COUNTY VILLAGE OF SHOREWOOD WARDS 9-1223894192845323687.917181705809683.971880492091414.72759226713534.38025974823043E-11
MILWAUKEE COUNTY VILLAGE OF WEST MILWAUKEE WARDS 1-2,5519249781107572.651162790697766.453265044814331.88220230473752.45436618393263E-10
MILWAUKEE COUNTY VILLAGE OF WEST MILWAUKEE WARDS 3-4,6611290920116878.767123287671266.413043478260931.52173913043483.38065145202773E-12
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARD 12667310997108491.974169741697466.90070210631931.09327983951861.58783909593186E-19
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARD 761420883394288.428874734607273.709483793517424.96998799519813.64155504598521E-14
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARDS 1-210445501614178790.318970341354264.684014869888534.07682775712522.05819451025194E-19
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARDS 3-410524371508167490.083632019115969.761273209549128.97877984084887.59867496717096E-17
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARDS 5-611485011668187588.9668.824940047961630.03597122302161.76565509275726E-16
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARDS 8,1013444831844206489.341085271317872.88503253796126.19305856832974.439862753817E-15
MILWAUKEE COUNTY VILLAGE OF WHITEFISH BAY WARDS 9,1112113781615187186.317477284874474.98452012383923.4055727554182.1467920231762E-12
MONROE COUNTY VILLAGE OF WILTON WARD 112312224731179.421221864951849.797570850202449.39271255060731.20704010552853E-10
OUTAGAMIE COUNTY CITY OF APPLETON WARD 8663144820141557.950530035335780.853658536585417.56097560975611.45780801269311E-21
OZAUKEE COUNTY TOWN OF FREDONIA WARDS 1-428410731380154289.494163424124520.579710144927577.75362318840581.38655200184393E-14
OZAUKEE COUNTY VILLAGE OF BAYSIDE WARD 65933939498.93617021276663.440860215053835.48387096774192.00129596830969E-11
OZAUKEE COUNTY VILLAGE OF NEWBURG WARD 3946556091.666666666666716.363636363636483.63636363636365.63503296502046E-19
PIERCE COUNTY CITY OF RIVER FALLS WARDS 12-149327241712222377.013045434098154.439252336448642.28971962616825.61509915169131E-11
PIERCE COUNTY CITY OF RIVER FALLS WARDS 6-812607702092261380.061232300038360.229445506692236.80688336520085.8496683463879E-13
PIERCE COUNTY CITY OF RIVER FALLS WARDS 9-116655371264192365.73062922516952.610759493670942.48417721518991.09797839673096E-20
POLK COUNTY CITY OF ST. CROIX FALLS WARDS 1-46356211278156081.923076923076949.687010954616648.59154929577464.87553890759147E-10
PORTAGE COUNTY CITY OF STEVENS POINT WARDS 1-37183061065143574.216027874564567.417840375586928.73239436619725.75731642041891E-16
PORTAGE COUNTY CITY OF STEVENS POINT WARDS 10-127073751113140479.273504273504363.522012578616333.69272237196773.13559487680873E-11
PORTAGE COUNTY CITY OF STEVENS POINT WARDS 13-158203931252154980.826339573918765.495207667731631.38977635782751.05043079569372E-11
PORTAGE COUNTY CITY OF STEVENS POINT WARDS 31-33474244747111267.176258992805863.453815261044232.66398929049533.85556315207787E-19
PORTAGE COUNTY CITY OF STEVENS POINT WARDS 4-6569245841124867.387820512820567.657550535077329.13198573127232.78068480164296E-21
PORTAGE COUNTY CITY OF STEVENS POINT WARDS 7-9512207743114964.664926022628468.909825033647427.86002691790041.19090420839269E-24
RACINE COUNTY CITY OF RACINE WARD 183253536359660.906040268456489.53168044077149.641873278236911.61620200534854E-18
RACINE COUNTY CITY OF RACINE WARD 192694732152261.494252873563283.800623052959514.64174454828661.45532182383773E-15
RACINE COUNTY CITY OF RACINE WARD 253698644100763.952333664349583.229813664596315.21739130434781.42908976350886E-13
RACINE COUNTY CITY OF RACINE WARD 45164956985966.239813736903490.68541300527248.61159929701232.22596252082422E-15
RACINE COUNTY CITY OF RACINE WARD 54144346366469.728915662650689.41684665226789.287257019438456.42199163428323E-13
RACINE COUNTY CITY OF RACINE WARD 73857447068468.713450292397781.914893617021315.74468085106382.65763243490565E-10
RACINE COUNTY CITY OF RACINE WARD 849210660488768.094701240135381.456953642384117.54966887417221.8659463263179E-10
ROCK COUNTY CITY OF BELOIT WARD 133507643866066.363636363636479.908675799086817.3515981735163.86795309941425E-11
ROCK COUNTY CITY OF BELOIT WARD 1442212155284465.402843601895776.449275362318821.92028985507255.01839456532688E-10
ROCK COUNTY CITY OF BELOIT WARD 16454117579118848.737373737373778.411053540587220.20725388601045.60799598953891E-24
ROCK COUNTY CITY OF BELOIT WARD 8348437259.722222222222279.069767441860518.60465116279071.58318773614765E-14
SHAWANO COUNTY TOWN OF BARTELME WARD 12608835445477.973568281938373.446327683615824.85875706214698.27419151174227E-30
SHAWANO COUNTY TOWN OF RED SPRINGS WARDS 1-232821054062885.987261146496860.740740740740738.88888888888899.12515507152146E-16
ST. CROIX COUNTY CITY OF HUDSON WARDS 1-25535381117140279.671897289586349.507609668755648.164726947183.01168489100185E-10
ST. CROIX COUNTY CITY OF HUDSON WARDS 9-108235121371162184.577421344848960.029175784099237.3450036469734.66935435278649E-13
TAYLOR COUNTY TOWN OF MAPLEHURST WARD 136179218199109.54773869346716.513761467889982.11009174311931.08923188875317E-14
TAYLOR COUNTY TOWN OF PERSHING WARD 13452881008838.636363636363659.09090909090914.20619321566663E-10
VILAS COUNTY TOWN OF LAC DU FLAMBEAU WARDS 1-79776341624219174.121405750798760.160098522167539.03940886699512.71781088739366E-22
WALWORTH COUNTY CITY OF WHITEWATER WARD 714711126759744.723618090452355.056179775280941.57303370786524.20346919413067E-28
WALWORTH COUNTY CITY OF WHITEWATER WARD 91949629657651.388888888888965.540540540540532.43243243243241.08258816705731E-25
WALWORTH COUNTY CITY OF WHITEWATER WARDS 3-4547305875124270.45088566827762.514285714285734.85714285714291.21363190304917E-11
WALWORTH COUNTY CITY OF WHITEWATER WARDS 8,13923512925650.39062571.317829457364327.13178294573646.78349828881846E-30
WAUKESHA COUNTY CITY OF WAUKESHA WARD 2533029064186873.847926267281151.482059282371345.24180967238695.93869651342477E-10
WAUKESHA COUNTY CITY OF WAUKESHA WARD 2753328911974.789915966386659.550561797752835.95505617977535.34798400477303E-12
WAUKESHA COUNTY VILLAGE OF MERTON WARDS 5-62071929497.872340425531921.739130434782677.17391304347834.6967624756401E-11
WAUPACA COUNTY CITY OF WAUPACA WARDS 1-13140915573030367682.426550598476646.501650165016551.38613861386141.098732231727E-10
WINNEBAGO COUNTY CITY OF OSHKOSH WARD 319313733990337.541528239202756.932153392330440.41297935103241.12053944116867E-30
WINNEBAGO COUNTY CITY OF OSHKOSH WARD 4312203525102851.070038910505859.428571428571438.66666666666676.31136222801884E-17
WOOD COUNTY CITY OF MARSHFIELD WARDS 4,145715531138134284.798807749627450.175746924428848.59402460456946.46363645172154E-10

Per County Election Fingerprints

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

New WI 2020 Election Fingerprints

Previously (see here, and here) I built a set of Election Fingerprints including WI that was based on the County data that I extracted from the NYT/Edison research election tracker, which was the best data that I had available at the time. While the results did have some interesting features, there wasn’t really enough data points to make any sort of inference one way or the other. Well … this last weekend (07/30/21) I received a dataset that had all of the vote counts and registered voters by Ward Grouping in the state, which is a much higher fidelity dataset than I had been working with.

Update 8/4/21: Not 24 hours after posting, my data source for the WI data has discovered some more accurate voter registration numbers for me to use which more accurately account for same day registrations. (The one I used was dated as of 12/1/20) I will be updating my analysis ASAP. The updated plots and analysis is posted here, but I’ll keep this post up for historic purposes.

The original image I created is replicated below for reference. As you can see, its a very blocky histogram created from the County level data points. There is a main lobe at about 90% turnout and 40% for Biden with some kurtotic streaking up and to the left with another grouping of Counties. While those features are indeed irregular and interesting, due to the coarse nature of the original per County data, it was plausible that the shape is just due to sampling issues so I didn’t flag WI as one of my issue states.

The data set I received this weekend however, is a drastic improvement in fidelity. It’s not without its data quality issues, as there was a good bit of data normalization needing to be done to get the vote tally data per ward group and the voter registration data per ward to marry up. Besides some different spellings, abbreviations and shorthand that needed to be rectified between the dataset, the registration data had any municipality that would straddle county lines labeled similar to the following format: “MULTIPLE COUNTIES, CITY OF NOWHERESVILLE, WARD 5A” along with a registered voter count. The vote count tally data had grouped multiple wards into different groupings such as “SOMEWHERE COUNTY, CITY OF NOWHERESVILLE, WARDS 1-3,4,5A,6C,13-15” along with a set of vote totals for Biden, Trump and TotalVotesCast. So I had to go through the files by hand and group each files corresponding data with the smallest size groupings as possible. There also seems to be a few (not many, though) Wards that are not accounted for by the Vote count result as well and others that are missing from the registration data. That being said, we can see much more detail in the generated statewide fingerprint (below), which also matches the “low-res” version that I had done previously. (Hooray … my results are consistent!)

We see what looks like two (or even three) superimposed lobes around the 90% turnout and 40% per Biden bin, which is consistent with my earlier low-res version, and we have a lot more detail as to the upward kurtotic smear off the main distribution. There also are a few Ward Groupings that have exceptionally high % for Biden (rarely, if ever, does a candidate receive near 100% vote share), and there are Ward Groupings that are near/over the 100% turnout marker, with the addition that some of those are ALSO either 100% Biden or 0% Biden (all big red flags)!

As discussed in the National Academy of Sciences paper that all of this work is based on, an idealized Election Fingerprint should look like a 2D Gaussian (or a multi-variate normal distribution). Or maybe, in an extremely divided populace, 2 overlapping Gaussian distributions. Deviations from this are, by definition, irregular and an indication that there might be an issue with the election. Distinct linear or non-linear features sloping away from the central lobes(s) could indicate voter manipulation or “ballot stuffing”; isolated regions at high turnout +/or very high vote percentage for one candidate could be an indication of extreme manipulation or vote substitution. Now, its true that no real Election Fingerprint will look perfectly Gaussian due to the realities of how elections operate, data errors, etc … but they should at least be close!

So that moves the needle for me as to considering WI as a problematic state based off Election Fingerprint generation. I would definitely say now that I think there are concrete signs of election irregularity in WI that deserve to be rigorously investigated. I can’t tell you if the shape of the above plot is due to incompetence, or outright fraud … but there is definitely something wrong!

Per County Data

Since I now have all of this rich data to play with … It’d be a shame to only do things statewide! I also produced fingerprints for every single county. One note here is that there is one plot that is the group of “MULTIPLE COUNTIES” that I had mentioned above due to the way the source registration data was organized and labelled. Some of the counties, look actually pretty good with nice, localized, near-gaussian distributions. Some are just an absolute mess!

My list of “interesting” counties:

ASHLAND, BAYFIELD, BROWN, CALUMET, CHIPPEWA, CLARK, DANE, DOGE, DOOR, DOUGLAS, DUNN, EAU CLAIRE, FOREST, GRANT, IOWA, JACKSON, JUNEAU, KENOSHA, KEWAUNEE, LACROSSE, LAFAYETTE, MARATHON, MILWAULKEE, MONROE, ONEIDA, OUTGAMIE, OZAUKEE, PIERCE, PORTAGE, RACINE, RICHLAND, ROCK, RUSK, SAULK, SHAWANO, SHEBOYGEN, St. CROIX, TAYLOR, VILAS, WASHINGTON, WAUKESHA, WAUPACA, WINNEBAGO (43/72 WI Counties)

Of that list, I’d label the following as “VERY interesting”:

BAYFIELD, BROWN, CALUMET, DANE, DOOR, EAU CLAIRE, KENOSHA, LACROSSE, LAFAYETTE, MARATHON, MILWAULKEE, OUTGAMIE, OZAUKEE, PORTAGE, RACINE, ROCK, SAULK, SHAWANO, SHEBOYGEN, St. CROIX, VILAS, WAUKESHA, WINNEBAGO (23/72 WI Counties)

The Election Fingerprints of all of the counties (plus the “MULTIPLE COUNTIES” super-group) are listed below:

Here is the link to the consolidated dataset used to generate all of the graphics on this page.

Categories
Election Data Analysis Election Forensics Election Integrity Interesting programming technical

(Another) Interesting View of VA 2020 Election Data

In answering some questions and messages I’ve been getting on my election analysis work, I took a minute and simply plotted the log-log plot of all of the absolute vote counts for Biden Vs. Trump for all precincts in the state. Real physical precincts are colored blue. Central absentee counting precincts are colored red. The real precincts seem to look about like I would expect, however the central absentee precincts fall fairly neatly on the logarithmic line, which is curious to me.

What do I think it means? Not quite sure yet as I’m still noodling things over … but it is very interesting, to say the least.