Analysis of Reported Voting Areas using Open Elections Data

The OpenElections Project

Analyzing a Single Race

Analyzing Voter Turnout and Registration

Analyzing the Turnout of a Single Race
Comparing the Turnout of Two Races
Analyzing Voter Registration
Analyzing Vote Counts

Comparing Multiple Races from a Single Election

Comparing the Margin Vote Shares of Two Races
Comparing the Margin Vote Shares of Multiple Races
Comparing the Cumulative Vote Tallies of Multiple Races

Comparing Multiple Races from Multiple Elections

Analyzing County Data

Analyzing the 2016 Presidential Race

The OpenElections Project

The following summary of the OpenElections project can be found on their GitHub page:

The goal of OpenElections is to create the first free, comprehensive, standardized, linked set of election data for the United States, including federal, statewide and state legislative offices. The current options for election data can be difficult to find and use or financially out-of-reach for most journalists and civic hackers. We want the people who work with election data to be able to get what they need, whether that's for stories and data analysis or web applications and interactive graphics.

I previously created an R Shiny app for analyzing election data that is documented at this link. One major limitation, however, is that it can only analyze election data which has been parsed and stored in files that it can access. In order to address that limitation, I have taken the code from that app and modified it to access the OpenElections data online. There is a public online version of this app at https://econdata.shinyapps.io/voting_oe/. Having been derived from the app described at this link, much of the new app's functionality will be very similar. However, the UI has had to change a fair amount. The remainder of this document will describe how to use the new app, chiefly by giving a number of example using OpenElections data.

Analyzing a Single Race

Currently, navigating to https://econdata.shinyapps.io/voting_oe/ will initially display the following page:

The message indicates that the user must select the desired STATE, YEAR, ELECTION, COUNTY, and OFFICE to define an race. The selections must be made in that order and each selection will generally populate the options for the next selection. Upon selection all of those items, click on the "ADD RACE" button to add the defined race to the RACES select box. In this example, the initial selections can be accepted and the user need only click the "ADD RACE" button. This displays the following page:

As can be seen, the columns consist of COUNTY, AREA, TOTAL, Crist_D, Desantis_R, Roos_L, Gimenez_N, DEM_CVT, and REP_CVT. COUNTY is Miami-Dade in this case and AREA refers to the precinct names (except for Wisconsin where it refers to the ward names). TOTAL is the total votes and the next four columns are the last names of the candidates followed by an underscore and a character to indicate the party (Democrat, Republican, LPF, and NPA in this case). DEM_CVT and REP_CVT are cumulative vote shares used in CVTs (cumulative vote tallys).

Clicking on the "Area Plot" tab will then display the following page:

This shows the total votes versus the vote margin in every precinct in Miami in the Governor's race. Hovering over any of the precincts causes a popup to be displayed which shows the total votes and percent margin. That is the cause of the popup visible next to the far right precinct. Looking at the bottom of the list on the Areas tab shows this to be precint 51.

Clicking on the CVT tab will display the following page:

The use of CVTs (Cumulative Vote Tallies) are described at this link. The rising red line in the CVT above indicates that the precincts in Miami with the most votes tend to lean Republican. This can be seen in the prior plot on the "Area Plot" tab which seems to show more votes, on average, in the red Republican precincts than in the blue Democrat precincts.

Clicking on the CVTs tab and changing COUNTY to (all) will display the first 9 counties alphabetically. In order to display the 9 counties with the most votes, change the "Sort Counties" select box from COUNTY to VOTES. This will cause the following 9 counties to display:

As can seen, the red line tends to slope up in each of the 9 counties except for Lee and Brevard and slopes up very slightly in Volusia County. The steepest slope seems to be in Duval County.

Analyzing Voter Turnout and Registration

Analyzing the Turnout of a Single Race

The turnout of a single race can be displayed via the following steps:

This will display the following plot:

The y-axis shows the turnout in every precinct and is calculated by dividing the total votes by the total number of registered voters in each precinct. This should be fairly accurate in Florida because a Florida statute described at this link states the following:

A person is not permitted to vote in any election precinct or district other than the one in which the person has his or her legal residence and in which the person is registered.

However, the statute goes on to list some exceptions such as if the voter has recently moved and some other conditions are satisfied. In any case, the plot seems to show a higher average turnout in solid Republican (red) precincts than in solid Democratic (blue) precincts. In fact, the turnout seems to average closer to 60 in the solid Republican precincts but closer to 40 in the solid Democratic precincts.

The plot can be changed to show the turnout by county via the following steps:

This will display the following plot:

As can be seen, the turnout still looks to be higher on average in solid Republican precincts but not by quite as much. The turnout seems to average just under 60 in the solid Republican precincts and just under 50 in the solid Democratic precincts. By the way, Liberty County appears at the very top of the plot because the number of registered voters in that county is listed as zero, producing an infinite turnout. This can be seen by clicking on the Areas2 tab.

Changing the "Y From, To, Step, Tick" text box to "40,90,10,5" makes the differences in turnout a little more visible, displaying the following plot:

Using this same scale but looking at the Presidential race in 2020 displays the following plot:

Comparing this to the previous plot shows that the turnout in the 2020 Presidential election was higher than the 2022 Governor race, on average. This is not a surprise. However, it again looks to be higher on average in solid Republican precincts. The turnout looks to average about 75 in solid Democratic precincts but a few points more than that in solid Republican precincts. However, this does seem to be a bit less of a difference than in the 2022 Governor race.

Going back to the first plot in this section which shows the turnout by all precincts in Florida, it's very easy to look at precinct turnout by county. Simply changing the "Sort Counties" select list to VOTES and clicking the "Area Plot2s" tab will display the following plots:

As can be seen, solid Republican turnout looks visibly higher than solid Democratic turnout in Miami-Dade County. However, that difference seems much more noticeable in others of the top 9 counties.

Clicking the up arrow on the "Starting index" input changes that index from 1 to 10 and displays the second 9 counties as follows:

Clicking the up arrow again changes that index to 19 and displays the third 9 counties as follows:

Comparing the Turnout of Two Races

The turnout of a for the 2018 Governor's race in Florida can be displayed via the following steps:

This will display the following plot:

As can be seen, the turnout for the majority of precincts is less than 100 percent as expected. However, there are many precincts that have higher turnouts. Those at the very top of the plot (such as Liberty, Seminole, and Washington) were found to be precincts for which the data contained zero for the number of registered voters, resulting in a turnout of infinity. Those precincts below the top but above 100 percent appear to be chiefly in Miami-Dade and Palm Beach counties. It would seem likely that these counties allowed voting and/or the counting of votes to take place in precincts other than where the voter was registered in 2018. The following steps will focus in on those precincts with turnouts less than 100 percent:

This will display the following plot of voter turnout in 2018. To the right of that is a plot with the same scales showing the voter turnout in 2022.

As can be seen, the plot for 2018 slants down very slightly from left to right. The average turnout for 2018 appears to be just above 60 for the majority Republican precincts and just below 60 for the majority Democrat precincts. However, the average turnout for 2022 appears to be about 60 for the majority Republican precincts and closer to 60 for the majority Democrat precincts. Hence, the majority Republican turnout may have gone down slightly but the majority Democrat turnout went down much more, by nearly 20 percent.

It's possible to look at the turnout by county via the following steps:

This will display the following plot of voter turnout by county in 2018. To the right of that is a plot with the same scales showing the voter turnout by county in 2022.

As can be seen, the average turnout in 2018 appears to have been just above 60 for both the majority Republican counties and the majority Democrat counties. For 2022, however, the average turnout appears to have been about 60 for counties with Republican majorities above 20 percent and about 50 for counties with Republican majorities below 20 percent and Democratic majorities.

Clicking on the Areas2 tab will display the actual numbers for the 2018 plot with MARGIN1 on the x-axis and MAR_SH on the y-axis:

FL: Voter Turnout by Margin Vote (Percent ratio)

         COUNTY   AREA   Dem   Rep MARGIN1 TOTAL1 Dem.1 Rep.1 MARGIN2     TOTAL2 DEM_SH REP_SH MAR_SH TOT_SH
1       ALACHUA COUNTY 63.04 35.80   27.24  98.84     0     0       0    180,938    Inf    Inf  63.73  63.73
2         BAKER COUNTY 16.69 82.38  -65.69  99.07     0     0       0     15,108    Inf    Inf  69.80  69.80
3           BAY COUNTY 26.43 72.10  -45.66  98.53     0     0       0    120,851    Inf    Inf  52.46  52.46
4      BRADFORD COUNTY 25.41 73.22  -47.82  98.63     0     0       0     16,312    Inf    Inf  64.45  64.45
5       BREVARD COUNTY 40.76 57.54  -16.78  98.30     0     0       0    422,606    Inf    Inf  66.71  66.71
6       BROWARD COUNTY 67.95 31.29   36.66  99.24     0     0       0  1,183,455    Inf    Inf  59.96  59.96
7       CALHOUN COUNTY 20.02 77.55  -57.54  97.57     0     0       0      8,703    Inf    Inf  52.98  52.98
8     CHARLOTTE COUNTY 35.96 62.26  -26.30  98.22     0     0       0    134,539    Inf    Inf  64.59  64.59
9        CITRUS COUNTY 29.87 67.27  -37.39  97.14     0     0       0    109,388    Inf    Inf  64.87  64.87
10         CLAY COUNTY 30.09 68.84  -38.75  98.93     0     0       0    153,119    Inf    Inf  61.10  61.10
11      COLLIER COUNTY 34.46 64.49  -30.03  98.95     0     0       0    213,664    Inf    Inf  72.80  72.80
12     COLUMBIA COUNTY 28.58 70.06  -41.48  98.64     0     0       0     40,375    Inf    Inf  61.60  61.60
13       DESOTO COUNTY 34.31 63.53  -29.22  97.83     0     0       0     16,735    Inf    Inf  53.27  53.27
14        DIXIE COUNTY 17.35 80.32  -62.97  97.67     0     0       0      9,670    Inf    Inf  60.02  60.02
15        DUVAL COUNTY 51.71 47.32    4.40  99.03     0     0       0    385,513    Inf    Inf  98.62  98.62
16     ESCAMBIA COUNTY 40.81 57.72  -16.90  98.53     0     0       0    212,987    Inf    Inf  60.78  60.78
17      FLAGLER COUNTY 40.07 58.55  -18.48  98.62     0     0       0     82,611    Inf    Inf  63.99  63.99
18     FRANKLIN COUNTY 32.97 64.62  -31.65  97.59     0     0       0      7,783    Inf    Inf  69.91  69.91
19      GADSDEN COUNTY 68.36 30.91   37.44  99.27     0     0       0     29,791    Inf    Inf  67.36  67.36
20    GILCHRIST COUNTY 17.39 81.06  -63.67  98.45     0     0       0     11,767    Inf    Inf  62.64  62.64
21       GLADES COUNTY 28.53 68.97  -40.44  97.50     0     0       0      6,784    Inf    Inf  56.57  56.57
22         GULF COUNTY 25.61 72.29  -46.68  97.90     0     0       0     10,216    Inf    Inf  57.75  57.75
23     HAMILTON COUNTY 34.92 63.83  -28.91  98.75     0     0       0      7,727    Inf    Inf  58.96  58.96
24       HARDEE COUNTY 28.14 70.03  -41.90  98.17     0     0       0     12,258    Inf    Inf  52.24  52.24
25       HENDRY COUNTY 39.59 58.29  -18.70  97.87     0     0       0     17,774    Inf    Inf  49.97  49.97
26     HERNANDO COUNTY 36.45 61.53  -25.07  97.98     0     0       0    133,862    Inf    Inf  60.31  60.31
27    HIGHLANDS COUNTY 32.11 66.03  -33.92  98.14     0     0       0     59,272    Inf    Inf  67.16  67.16
28 HILLSBOROUGH COUNTY 53.79 44.86    8.93  98.66     0     0       0    857,266    Inf    Inf  61.06  61.06
29       HOLMES COUNTY 10.87 87.60  -76.73  98.47     0     0       0      9,454    Inf    Inf  71.73  71.73
30 INDIAN RIVER COUNTY 38.30 60.46  -22.16  98.77     0     0       0    113,426    Inf    Inf  65.51  65.51
31      JACKSON COUNTY 31.39 67.37  -35.98  98.76     0     0       0     27,996    Inf    Inf  57.11  57.11
32    JEFFERSON COUNTY 45.82 52.62   -6.80  98.44     0     0       0     39,156    Inf    Inf  18.82  18.82
33    LAFAYETTE COUNTY 14.83 83.62  -68.79  98.44     0     0       0      4,356    Inf    Inf  64.88  64.88
34         LAKE COUNTY 38.86 59.71  -20.85  98.57     0     0       0    236,080    Inf    Inf  65.71  65.71
35          LEE COUNTY 38.37 60.07  -21.70  98.44     0     0       0    446,254    Inf    Inf  64.94  64.94
36         LEON COUNTY 63.26 35.59   27.67  98.85     0     0       0    213,195    Inf    Inf  65.82  65.82
37         LEVY COUNTY 27.59 70.65  -43.07  98.24     0     0       0     27,859    Inf    Inf  61.39  61.39
38      LIBERTY COUNTY 19.61 76.77  -57.16  96.38     0     0       0          0    Inf    Inf    Inf    Inf
39      MADISON COUNTY 42.41 56.96  -14.54  99.37     0     0       0     11,841    Inf    Inf  64.45  64.45
40      MANATEE COUNTY 41.36 57.03  -15.67  98.39     0     0       0    245,088    Inf    Inf  66.70  66.70
41       MARION COUNTY 37.02 61.22  -24.20  98.25     0     0       0    243,088    Inf    Inf  63.76  63.76
42       MARTIN COUNTY 37.46 61.49  -24.03  98.94     0     0       0    114,094    Inf    Inf  68.21  68.21
43   MIAMI-DADE COUNTY 59.90 38.98   20.93  98.88     0     0       0  1,147,121    Inf    Inf  69.74  69.74
44       MONROE COUNTY 47.51 51.19   -3.68  98.71     0     0       0     53,869    Inf    Inf  67.11  67.11
45       NASSAU COUNTY 26.32 72.73  -46.41  99.05     0     0       0     66,798    Inf    Inf  65.25  65.25
46     OKALOOSA COUNTY 26.69 71.39  -44.70  98.08     0     0       0    135,563    Inf    Inf  61.93  61.93
47   OKEECHOBEE COUNTY 29.38 68.69  -39.31  98.06     0     0       0     20,552    Inf    Inf  54.76  54.76
48       ORANGE COUNTY 62.22 36.59   25.63  98.82     0     0       0    798,374    Inf    Inf  59.64  59.64
49      OSCEOLA COUNTY 59.69 38.77   20.92  98.46     0     0       0    218,754    Inf    Inf  52.63  52.63
50   PALM BEACH COUNTY 58.16 41.06   17.10  99.22     0     0       0    632,740    Inf    Inf  92.77  92.77
51        PASCO COUNTY 40.90 57.17  -16.27  98.07     0     0       0    351,949    Inf    Inf  60.01  60.01
52     PINELLAS COUNTY 50.67 47.65    3.02  98.32     0     0       0    666,876    Inf    Inf  65.35  65.35
53         POLK COUNTY 42.49 55.83  -13.34  98.32     0     0       0    417,217    Inf    Inf  58.69  58.69
54       PUTNAM COUNTY 32.01 66.51  -34.50  98.53     0     0       0     47,219    Inf    Inf  59.61  59.61
55   SANTA ROSA COUNTY 24.07 74.23  -50.16  98.30     0     0       0    132,357    Inf    Inf  57.15  57.15
56     SARASOTA COUNTY 44.99 53.63   -8.64  98.61     0     0       0    318,384    Inf    Inf  66.34  66.34
57     SEMINOLE COUNTY 50.25 48.46    1.79  98.70     0     0       0    303,669    Inf    Inf  65.67  65.67
58    ST. JOHNS COUNTY 35.25 63.82  -28.57  99.07     0     0       0    187,125    Inf    Inf  70.05  70.05
59    ST. LUCIE COUNTY 51.24 47.52    3.72  98.76     0     0       0    203,131    Inf    Inf  61.11  61.11
60       SUMTER COUNTY 29.34 69.58  -40.24  98.92     0     0       0     96,497    Inf    Inf  77.15  77.15
61     SUWANNEE COUNTY 21.68 76.87  -55.19  98.55     0     0       0     25,847    Inf    Inf  61.57  61.57
62       TAYLOR COUNTY 23.61 74.74  -51.13  98.35     0     0       0     12,142    Inf    Inf  65.48  65.48
63        UNION COUNTY 19.96 78.83  -58.86  98.79     0     0       0      7,396    Inf    Inf  65.90  65.90
64      VOLUSIA COUNTY 43.88 54.50  -10.62  98.38     0     0       0    382,408    Inf    Inf  59.88  59.88
65      WAKULLA COUNTY 29.45 68.83  -39.38  98.28     0     0       0          0    Inf    Inf    Inf    Inf
66       WALTON COUNTY 23.12 75.53  -52.40  98.65     0     0       0     50,263    Inf    Inf  60.39  60.39
67   WASHINGTON COUNTY 20.58 77.45  -56.87  98.04     0     0       0      8,375    Inf    Inf 108.18 108.18
68        TOTAL  TOTAL 49.15 49.54   -0.39  98.69     0     0       0 24,955,174    Inf    Inf  65.94  65.94
Following are the corresponding numbers for the 2022 turnout:
FL: Voter Turnout by Margin Vote (Percent ratio)

         COUNTY   AREA   Dem   Rep MARGIN1 TOTAL1 Dem.1 Rep.1 MARGIN2     TOTAL2 DEM_SH REP_SH MAR_SH TOT_SH
1       ALACHUA COUNTY 57.14 42.04   15.09  99.18     0     0       0    178,046    Inf    Inf  53.86  53.86
2         BAKER COUNTY 10.18 89.45  -79.27  99.64     0     0       0     17,512    Inf    Inf  61.24  61.24
3           BAY COUNTY 21.00 78.38  -57.38  99.39     0     0       0    124,338    Inf    Inf  53.96  53.96
4      BRADFORD COUNTY 18.04 81.29  -63.25  99.33     0     0       0     17,986    Inf    Inf  57.08  57.08
5       BREVARD COUNTY 35.57 63.77  -28.20  99.34     0     0       0    460,372    Inf    Inf  58.09  58.09
6       BROWARD COUNTY 57.35 41.97   15.38  99.32     0     0       0  1,252,776    Inf    Inf  47.78  47.78
7       CALHOUN COUNTY 13.52 86.04  -72.52  99.57     0     0       0      8,255    Inf    Inf  58.85  58.85
8     CHARLOTTE COUNTY 29.13 70.50  -41.37  99.63     0     0       0    153,332    Inf    Inf  60.46  60.46
9        CITRUS COUNTY 25.19 74.23  -49.04  99.42     0     0       0    122,182    Inf    Inf  62.06  62.06
10         CLAY COUNTY 24.62 74.67  -50.05  99.29     0     0       0    163,573    Inf    Inf  55.09  55.09
11      COLLIER COUNTY 27.98 71.74  -43.76  99.71     0     0       0    253,830    Inf    Inf  64.52  64.52
12     COLUMBIA COUNTY 20.18 79.19  -59.01  99.38     0     0       0     42,683    Inf    Inf  55.59  55.59
13       DESOTO COUNTY 23.25 76.28  -53.03  99.53     0     0       0     18,285    Inf    Inf  47.59  47.59
14        DIXIE COUNTY 11.90 87.30  -75.40  99.19     0     0       0     10,617    Inf    Inf  58.20  58.20
15        DUVAL COUNTY 43.68 55.44  -11.76  99.12     0     0       0    655,820    Inf    Inf  50.21  50.21
16     ESCAMBIA COUNTY 34.63 64.46  -29.84  99.09     0     0       0    224,099    Inf    Inf  51.65  51.65
17      FLAGLER COUNTY 32.67 66.76  -34.08  99.43     0     0       0     95,306    Inf    Inf  61.59  61.59
18     FRANKLIN COUNTY 25.84 73.56  -47.72  99.39     0     0       0      7,977    Inf    Inf  68.22  68.22
19      GADSDEN COUNTY 62.01 37.36   24.64  99.37     0     0       0     29,752    Inf    Inf  58.57  58.57
20    GILCHRIST COUNTY 12.93 86.50  -73.58  99.43     0     0       0     12,050    Inf    Inf  65.29  65.29
21       GLADES COUNTY 18.83 80.73  -61.90  99.56     0     0       0      6,959    Inf    Inf  55.02  55.02
22         GULF COUNTY 19.41 80.16  -60.75  99.56     0     0       0     10,439    Inf    Inf  61.55  61.55
23     HAMILTON COUNTY 26.09 73.26  -47.17  99.35     0     0       0      7,846    Inf    Inf  54.72  54.72
24       HARDEE COUNTY 17.14 82.33  -65.19  99.48     0     0       0     12,710    Inf    Inf  43.56  43.56
25       HENDRY COUNTY 24.84 74.25  -49.41  99.09     0     0       0     19,607    Inf    Inf  42.13  42.13
26     HERNANDO COUNTY 29.47 69.95  -40.47  99.42     0     0       0    148,486    Inf    Inf  54.16  54.16
27    HIGHLANDS COUNTY 25.09 74.12  -49.02  99.21     0     0       0     69,023    Inf    Inf  57.70  57.70
28 HILLSBOROUGH COUNTY 44.95 54.17   -9.22  99.13     0     0       0    924,891    Inf    Inf  52.28  52.28
29       HOLMES COUNTY  7.86 91.62  -83.77  99.48     0     0       0     11,468    Inf    Inf  59.14  59.14
30 INDIAN RIVER COUNTY 31.97 67.53  -35.56  99.50     0     0       0    119,433    Inf    Inf  64.81  64.81
31      JACKSON COUNTY 23.49 76.03  -52.54  99.52     0     0       0     28,745    Inf    Inf  56.80  56.80
32    JEFFERSON COUNTY 38.95 60.47  -21.52  99.42     0     0       0      9,622    Inf    Inf  74.07  74.07
33    LAFAYETTE COUNTY 10.08 89.68  -79.61  99.76     0     0       0      4,544    Inf    Inf  64.22  64.22
34         LAKE COUNTY 32.83 66.54  -33.72  99.37     0     0       0    276,151    Inf    Inf  58.00  58.00
35          LEE COUNTY 30.79 68.79  -38.00  99.58     0     0       0    518,035    Inf    Inf  53.13  53.13
36         LEON COUNTY 57.35 41.82   15.53  99.17     0     0       0    204,259    Inf    Inf  57.65  57.65
37         LEVY COUNTY 20.98 78.42  -57.45  99.40     0     0       0     30,920    Inf    Inf  57.94  57.94
38      LIBERTY COUNTY 14.18 85.36  -71.19  99.54     0     0       0          0    Inf    Inf    Inf    Inf
39      MADISON COUNTY 32.85 66.77  -33.92  99.61     0     0       0     12,213    Inf    Inf  57.16  57.16
40      MANATEE COUNTY 34.82 64.70  -29.88  99.52     0     0       0    280,604    Inf    Inf  61.20  61.20
41       MARION COUNTY 30.20 69.23  -39.02  99.43     0     0       0    271,032    Inf    Inf  57.58  57.58
42       MARTIN COUNTY 30.58 69.01  -38.43  99.58     0     0       0    119,066    Inf    Inf  65.23  65.23
43   MIAMI-DADE COUNTY 43.97 55.28  -11.32  99.25     0     0       0  1,529,439    Inf    Inf  46.54  46.54
44       MONROE COUNTY 39.15 60.23  -21.07  99.38     0     0       0     55,183    Inf    Inf  61.62  61.62
45       NASSAU COUNTY 22.97 76.52  -53.55  99.50     0     0       0     75,750    Inf    Inf  63.05  63.05
46     OKALOOSA COUNTY 22.92 76.18  -53.26  99.11     0     0       0    144,013    Inf    Inf  56.25  56.25
47   OKEECHOBEE COUNTY 19.10 80.34  -61.24  99.44     0     0       0     22,757    Inf    Inf  47.84  47.84
48       ORANGE COUNTY 53.10 46.08    7.02  99.18     0     0       0    870,296    Inf    Inf  46.79  46.79
49      OSCEOLA COUNTY 46.09 52.84   -6.75  98.92     0     0       0    254,867    Inf    Inf  40.34  40.34
50   PALM BEACH COUNTY 48.30 51.21   -2.91  99.51     0     0       0  1,003,675    Inf    Inf  54.18  54.18
51        PASCO COUNTY 33.49 65.82  -32.33  99.31     0     0       0    411,946    Inf    Inf  54.61  54.61
52     PINELLAS COUNTY 44.76 54.61   -9.85  99.37     0     0       0    695,798    Inf    Inf  60.86  60.86
53         POLK COUNTY 34.85 64.45  -29.60  99.31     0     0       0    463,894    Inf    Inf  49.58  49.58
54       PUTNAM COUNTY 23.30 76.02  -52.72  99.32     0     0       0     50,658    Inf    Inf  52.50  52.50
55   SANTA ROSA COUNTY 19.94 79.38  -59.44  99.32     0     0       0    145,720    Inf    Inf  51.95  51.95
56     SARASOTA COUNTY 38.65 60.92  -22.27  99.58     0     0       0    353,493    Inf    Inf  61.92  61.92
57     SEMINOLE COUNTY 43.48 55.78  -12.30  99.27     0     0       0    341,548    Inf    Inf  53.64  53.64
58    ST. JOHNS COUNTY 29.64 69.87  -40.23  99.51     0     0       0    223,775    Inf    Inf  64.64  64.64
59    ST. LUCIE COUNTY 40.17 59.31  -19.14  99.48     0     0       0    238,645    Inf    Inf  51.12  51.12
60       SUMTER COUNTY 26.51 73.21  -46.70  99.72     0     0       0    118,110    Inf    Inf  75.75  75.75
61     SUWANNEE COUNTY 16.19 83.39  -67.20  99.58     0     0       0     28,779    Inf    Inf  56.87  56.87
62       TAYLOR COUNTY 16.74 82.76  -66.02  99.50     0     0       0     12,916    Inf    Inf  59.01  59.01
63        UNION COUNTY 11.94 87.65  -75.71  99.58     0     0       0      7,654    Inf    Inf  59.55  59.55
64      VOLUSIA COUNTY 35.34 63.99  -28.64  99.33     0     0       0    412,402    Inf    Inf  54.86  54.86
65      WAKULLA COUNTY 26.02 73.25  -47.22  99.27     0     0       0     23,620    Inf    Inf  63.77  63.77
66       WALTON COUNTY 17.51 82.08  -64.57  99.59     0     0       0     60,674    Inf    Inf  57.52  57.52
67   WASHINGTON COUNTY 14.08 85.32  -71.24  99.40     0     0       0     14,486    Inf    Inf  63.00  63.00
68        TOTAL  TOTAL 39.97 59.37  -19.40  99.35     0     0       0 28,989,884    Inf    Inf  53.61  53.61
The plot and tables above show that Miami-Dade had an especially large change in its turnout, from 69.74 percent in 2018 to 46.54 percent in 2022.

Analyzing Voter Registration

The following plot shows the change in the number of registered Democrats and Republicans in Florida since 2017.

As can be seen, the number of both registered Republicans and Democrats dropped from the 2020 election through September of 2021. After that, however, the number of Republican registered voters began to rise while the number of Democrat registered voters continued to drop. From September of 2021 through May of 2023, the number of registered Republicans has risen by 203,987 while the number of registered Democrats has fallen by 304,862. That's a combined difference of over half of a million registered voters. In May of 2023, there were 84,969 fewer registered Democrats in Florida than there were in January of 2017.

The following plot shows the same information for just Miami-Dade County, FL.

As can be seen, the number of both registered Republicans and Democrats dropped from the 2020 election through August of 2021 in Miami-Dade County. After that, the number of Republican registered voters began to rise while the number of Democrat registered voters continued to drop. From August of 2021 through May of 2023, the number of registered Republicans in Miami-Dade has risen by 14,340 while the number of registered Democrats has fallen by 57,932. That's a combined difference of over 72 thousand registered voters. In May of 2023, there were 52,676 fewer registered Democrats in Miami-Dade County than there were in January of 2017.

Sources: Voter Registration Reports

Analyzing Vote Counts

The change in voter registration leads one to investigate whether there was a similar change in vote counts. The change in the vote margins from the 2018 to the 2022 Governor's races can be displayed via the following steps:

This will display the following plot:

The above plot shows the shift in the margin vote share from the 2018 to the 2022 Governor's race, by county. The fact that all of the points are below the x-axis indicates that the vote margin share (percent) in all of the counties became more Republican. The shift appeared to average about 15 percent for majority Republican (red) counties and upwards of 20 percent for majority Democrat (blue) counties. Miami-Dade County shows to have shifted by over 30 percent.

Changing "Units" from Percent to Count and changing "Party" to Total will display the following plot:

The above plot shows that the total vote counts in most of the red majority Republican counties went up while the vote counts in all of the blue majority Democrat counties went down. One can focus in on just the Democrat votes by changing "Party" to Democrat. This will display the following plot:

As can be seen, Democrat votes appear to have decreased from the 2018 to the 2022 Governor's race in every county except for Sumter. The votes in Miami-Dade County decreased by over 150 thousand votes. One can then focus in on just the Republican votes by changing "Party" to Republican. This will display the following plot:

As can be seen, Republican votes appear to have increased from the 2018 to the 2022 Governor's race in every county except for Alachua, Leon, and perhaps Escambia. All of this seems consistent with the fact that the number of registered Republican went up from 2018 to 2022 but the number of registered Democrats went down (or stayed about even). In the latter case, the vote count would also seem to have been affected by the fact that the voter turnout generally went down in majority Democrat counties, as shown earlier.

Comparing Multiple Races from a Single Election

Comparing the Margin Vote Shares of Two Races

Changing COUNTY back to Miami_Dade and clicking on the Areas2 tab now will display the message "Error: 'names' attribute [5] must be the same length as the vector [1]". This is because the tab compares two races and requires at least two races in the RACES select box. Selecting "U.S. Senate" in the OFFICE select list and clicking the "ADD RACE" button will add the U.S. Senate race and display the following page:

As can be seen, the columns consist of COUNTY, AREA, Crist_D, Desantis_R, MARGIN1, TOTAL1, Demings_D, Rubio_R, MARGIN2, TOTAL2, DEM_SH, REP_SH, MAR_SH, TOT_SH, TOT1_N, and TOT2_N. As before, COUNTY identifies the county as Miami_Dade and AREA identifies the precinct (or ward in Wisconsin). Crist_D and Desantis_R are the percent vote shares of the Democrat and Republican candidates in the first race (Governor). MARGIN1 is the percent margin (Democrat vote share minus Republican vote share) and TOTAL1 is the total percent vote share of the Democrat and Republican candidates the first race. This total will be 100 if there are no other candidates. The next four columns (Demings_D, Rubio_R, MARGIN2, and TOTAL2) are the same information for the second race (U.S. Senate). DEM_SH, REP_SH, MAR_SH, and TOT_SH is the shift or change in the Democrat, Republican, Margin, and Total vote shares from the first race to the second race. Finally, TOT1_N and TOT2_N are the vote totals for the first and second races, respectively.

Clicking on the "Area Plot2" tab will display the following page:

This is plotting the Margin Vote Share of the first race (Governor) against the shift in the Margin Vote Share between that and the second race (U.S. Senate). These correspond to MARGIN1 and MAR_SH in the prior table on the Areas2 tab. The plot shows that the Republican candidate for Governor (DeSantis) received greater support than the Republican candidate for the Senate (Rubio) in all but the strongest Republican precincts. Of course, you could also say that the Democrat candidate for Governor (Crist) received less support than the Republican candidate for the Senate (Demings) in all but the strongest Republican precincts.

Clicking on the "Area Plot2s" tab and changing COUNTY to (all) will display the first 9 counties alphabetically. In order to display the 9 counties with the most votes, change the "Sort Counties" select box from COUNTY to VOTES. This will cause the following 9 counties to display:

As can be seen, the greater support for DeSantis than Rubio (or less support for Crist than Denings) can be seen in the other 8 top counties by votes. To display all 9 counties on the same scale, it's possible to go back to the "Area Plot2" tab and set the x and y scales there. This is because, at present, the "Area Plot2s" tab is using the same scales for its plots.

Comparing the Margin Vote Shares of Multiple Races

Clicking on the CompareN tab and PlotN subtab will display the Margin Vote Share of both races on the x-axis and list the precincts on the y-axis, sorted by the margin of the race specified in the "Sort AreasN" box. If the Desc checkbox below that is checked, the margins will be sorted in descending order from top to bottom. Otherwise, they will be sorted in ascending order.

Unfortunately, this plot format is not very readable in counties with many precincts, like Miami-Dade. Changing COUNTY to Nassau will display a more readable plot. The main purpose of this plot format is to allow more than two races to be compared. Select "U.S. House" in the OFFICE select list and click the "ADD RACE" button to add the "U.S. House" race. Now repeat this for "Attorney General", "State Senate", and State House". This will display the following page:

As can be seen, all of the races had similar margins in each precinct except for the State House race. To see that candidates in this race, move the State House race to the top of the races in the RACES select list by clicking on "FL_221108_State_House" in the RACES box, hit the delete key, move the cursor in the RACES box to the top, before the remaining 5 races, with the left-arrow key and then click again on "FL_221108_State_House" from the RACES select list. Now, clicking on the Areas tab should display the following page:

As can be seen, there was no Democrat in that race. This is likely the chief cause for the discrepancy. Also of interest is that this race lists the Write-in, Overvotes, and Undervotes.

Comparing the Cumulative Vote Tallies of Multiple Races

The following steps were previously used to create the CVT (Cumulative Vote Tally) plot for Miami-Dade County above:

It's possible to compare this CVT plot with those of other offices via the following steps: This will display the following plot:

As can be seen, the Republican candidate for Governor received very slightly more support than the Republican candidate for Chief Financial Officer. This was generally followed by the Republican candidate for Attorney General, U.S. House, Commissioner of Agriculture, and U.S. Senate. However, the support for all of these offices were within a range of just 2 to 3 percent and their position in relation to each other remained fairly steady well before the mid-plot vertical line.

This same information can be shown for the top 9 counties by votes via the following steps:

This will display the following plot (this may take a few minutes as the program is generating the CVT plot for 6 races for each of 9 counties):

Setting "Starting index" (on the second sidebar from the left) to 10 will display the CVT plots for the second 9 counties by votes:

Next, setting "Starting index" to 19 will display the CVT plots for the third 9 counties by votes:

As can be seen, the support for these 6 offices in the other top 26 counties paralleled each other as in Miami-Dade though the range surpassed 5 percent in several of them, notably Pinellas County. Also notable is that the Republican candidate of Attorney General often garnered the most support and the Republican candidate for U.S. Senate (Rubio) garnered the least. Of course, this could also be due to the relative popularity of their Democratic opponents.

Comparing Multiple Races from Multiple Elections

It's also possible to compare races from different elections. Click the CLEAR button above the RACES box to clear all of the races. Now select 2020 in the YEAR box. This will cause the ELECTION select list to change to display all elections available for that state and year in OpenElections. Ensure that it is set to "20201103__fl__general" for the general election on 11/03/2020. Then select Miami_Dade for COUNTY, select President for OFFICE, and click the "ADD RACE" button to add that race to the RACES box.

For the second race, set YEAR to 2022, ensure ELECTION is set to "20221108__fl__general", set OFFICE to Governor, and click the "ADD RACE" button. Clicking on the "Area Plot2" tab will now display the following page:

As can be seen, relatively few precincts are visible on the plot. Note that precinct 33 is much larger than the others. Changing "Label type" from Index to Area will change its label to Other. Clicking on the Areas2 tab will now display a page with 33 precincts with this Other precinct at the bottom showing 701,177 total votes in the Governor's race. Now, unchecking the "Show Other" checkbox on the leftmost sidepanel will display the following page:

When the "Show Other" checkbox is checked, all AREA names that do not match between the two races will be placed in an AREA labeled "Other". When it is unchecked, all unmatched AREA names will be displayed with NA appearing in the 5 columns for that race (including TOT1_N or TOT2_N) and the 4 shift columns (DEM_SH through TOT_SH). As can be seen, the first race (with values for Biden_D through TOTAL1) has AREA names ending with 1 decimal place whereas those for the second race (with values for Crist_D through TOTAL2) have AREA names with no decimals. The user can cause all decimals, including the point, to be removed by placing a '>' character at the start of the "AREA modify" textbox, just before the '#'. This triggers a built-in operation for all Florida counties to removed decimals and leading zeroes. This will cause the AREAs to be merged according to the values of their whole numbers, resulting in 743 AREAs and no "Other" AREA. Clicking on the "Area Plot2" tab will now display the following page:

As can be seen, the margin vote share for DeSantis in 2022 was nearly 20 percent more than the margin vote share for Trump in 2020 in majority Republican and Toss-Up precincts. This difference in margin vote share decreased from nearly 20 percent for Democrat-leaning precincts to just over 5 percent for very solid Democrat precincts. Of course, these numbers are on average and there are visible outliers.

Changing COUNTY to (all) displays the following page:

This shows the shift in the margin vote share for all Florida counties for which the OpenElections data has precinct data and for which the precinct names matched following the data cleaning done via adding the '>' character to "AREAS modify". The County tab shows 66 of the 67 counties in Florida but this appears to be based on the first race, the 2020 President race. Temporarily making the 2022 Governor race the first race in the RACES box causes this to drop to 43 counties.

Speaking of counties, it's possible to look at the shift by county by changing the '>' character at the beginning of the "AREA modify" textbox to '='. This will combine all of the precincts in every county and display a page with 43 indices. Changing the "Label type" select box to County will display the following page:

As can be seen, Miami-Dade, Lee, and Collier shifted Republican by about 19 percent, Broward by about 21 percent, and Hendry by about 26 percent. The more precise percents can be seen under the "Areas2" tab to have been -18.65, -18.88, -19.12, -20.85, and -26.24 percent, respectively.

Analyzing County Data

Setting COUNTY to "(all)" and clicking the Counties tab displays the following page:

As previously mentioned, this will only include 43 counties if the first race in the RACES box is for 2022. The table gives the number of AREAS or precincts and the vote count for each county. The last four columns are measurements related to the CVT (Cumulative Vote Tally) for the 2022 Governor race. These measurement are described at this link.

Clicking on the Map tab now displays the following page:

This displays a choropleth map of Florida with the counties colored according to the Map Variable selected. The Map Variable can be set to any of the columns displayed in the Counties tab. The gray counties are those counties for which there is currently no data in OpenElections. For 2022, only 43 of the 67 Florida counties currently have data.

To look at the same data for 2020, click the CLEAR button, set YEAR to 2020, ensure that ELECTION is set to 20201103__fl__general and COUNTY is set to (all), set OFFICE to President, and click the ADD RACE button. This will display the following page:

Hovering the mouse over the upper part of the gray area shows that Duval County is not currently in the 2020 data in OpenElections. However, moving the mouse to the lower part of the gray area suggests that St. Johns County is also not present. But looking at the data on the County tab does show a "St. John's" county. Hence, this appears to be due to a mismatch between the name "St. Johns" in the map package and the name "St. John's" in the OpenElections data. This will be fixed in the code but will remain mentioned here since this mismatch may occur in other counties in other states.


2020 U.S. Election

Polling Election Data
Comparing Polling and Election Results via R Shiny
Red Shifts for 2020 Election Cycle, November 18, 2020

Precinct Election Data
Analysis of Reported Voting Areas via R Shiny
Analysis of Reported Voting Areas in Florida via R Shiny
Analysis of the Distribution of Precinct Margins by County via R Shiny
Precinct Results in Florida through 2020
Precinct Results in Iowa through 2020
Precinct Results in Maine through 2020
Precinct Results in North Carolina through 2020
Precinct Results in South Carolina through 2020
Precinct Results in Texas through 2020

County Election Data
Exploring Federal Election Results by County via R Shiny
County Results in Arizona in 2020
County Results in California in 2020
County Results in Florida in 2020
County Results in Iowa in 2020
County Results in Kentucky in 2020
County Results in Maine in 2020
County Results in Montana in 2020
County Results in Pennsylvania in 2020
County Results in South Carolina in 2020
County Results in Texas in 2020

free
web stats