Building off of our previous work on computing the string distance between all possible pairs of registered voter records in a single state in order to identify potential matches, we’ve updated the code to allow for cross state comparisons. The first states that we ran this on was VA and FL, using the dataset produced by the FL Department of Elections on 05-07-2024, and the dataset from the VA department of elections dated 05-01-2024. There were a total of 2,502 records that matched our constraints between the FL and VA datasets, as detailed below.
Note: All examples of data records given in this writeup have been fictionalized to protect registered voter identities from being published on this website, and only serve as illustrative examples representative of the nature of properties and characteristics discussed. Law enforcement, election or other gov officials, or individuals otherwise authorized to receive and handle voter data as per VA law and the VA Department of Elections are welcome to contact us for specific details and further information.
Each dataset had the First Name, Middle Initial, Last Name, Suffix, Gender, and Year, Month and Day of Birth concatenated into strings that were then compared against each other using the Levenshtein String Distance measure as an initial filtering method to determine potential matches.
Additionally, for each pair we computed the minimum string distance measure between all of the four possible permutations of pairings between the Primary and Mailing addresses in each record between the states. We required that this minimum distance for a set of registration entries be less than or equal to 12 characters. The choice of the value of twelve was empirically determined after review of the data, as it is loose enough to allow for common variations in address presentation while not being so loose as to be overwhelmed with false positive.
We additionally filtered these findings for only those pairings that were of ACTIVE registrations in both datasets AND where the year, month and day of birth were exact matches.
In summary the 2,502 matches were generated according to the following constraints:
- Only applied to ACTIVE voter registrations
- Required completed DOB (year, month and day) to exactly match
- Required [First Name + Middle Initial + Last Name + Suffix + Gender + DOB] strings to be similar to within <=2 characters
- Required that the minimum distance between any pairwise combination of the Primary or Mailing address between the records be less than or equal to 12 characters.
It should be noted that it is readily apparent from reviewing the potential matched records that the majority of these matches look to have originated in FL and then were subsequently moved to VA, but the FL record remained listed as active.
Category 1 Matches:
There were 698 matches in Category 1: where the Levenshtein distance measure for the name and DOB was equal to 0 (exact match) and the minimum address distance was also 0 (also an exact match). Examples in this category are exact matches for every considered field. An example is given below.
FL Active Registration Record:
SOUXIEE Q SMITH F 08/19/1968
1267 SLEEPY SONG PL SPRINGFIELD VA 22150
VA Active Registration Record:
SOUXIEE Q SMITH F 08/19/1968
1267 SLEEPY SONG PL SPRINGFIELD VA 22150
Category 2 Matches:
There were 1,533 matches in Category 2: where the Levenshtein distance measure for the name and DOB was equal to 0 (exact match) and the minimum address distance was greater than 0, but less than or equal to 12. Examples in this category commonly have differences in how the zip code, apartment numbers or state code is presented in either the Primary or Mailing address strings. An example is given below.
FL Active Registration Record:
SOUXIEE Q SMITH F 08/19/1968
1267 SLEEPY SONG PLACE SPRINGFIELD VA 22150
VA Active Registration Record:
SOUXIEE Q SMITH F 08/19/1968
1267 SLEEPY SONG PL SPRINGFIELD VA 221504259
Category 3 Matches:
There were 44 matches in Category 3: where the Levenshtein distance measure for the name and DOB was equal to 1 and the minimum address distance was equal 0 (exact match). Examples in this category are most often due to hyphenation or misspellings in the name, or a change in Gender (i.e. from “M”->”U”). An example is given below.
FL Active Registration Record:
BENNIE DAS M 05/14/1945
12345 PEPPERMINT PATTY CREST APT 1000 ASHBURN VA 201475724
VA Active Registration Record:
BENNEE DAS M 05/14/1945
12345 PEPPERMINT PATTY CREST APT 1000 ASHBURN VA 201475724
Category 4 Matches:
There were 140 matches in Category 4: where the Levenshtein distance measure for the name and DOB was equal to 1 and the minimum address distance was greater than 0, but less than or equal to 12. Examples in this category are most often due to hyphenation or misspellings in the name, or a change in Gender (i.e. from “M”->”U”), as well as small differences in how the addresses are presented. An example is given below.
FL Active Registration Record:
BENNIE DAS M 05/14/1945
1267 SLEEPY SONG PLACE SPRINGFIELD VA 22150
VA Active Registration Record:
BENNEE DAS M 05/14/1945
1267 SLEEPY SONG PL SPRINGFIELD VA 221504259
Category 5 Matches:
There were 19 matches in Category 5: where the Levenshtein sistance measure for the name and DOB was equal to 2 and the minimum address distance was equal 0 (exact match). Examples in this category are most often due to a middle name/initial being present in one record and not being present in the other. An example is given below.
FL Active Registration Record:
BENNIE DAS M 05/14/1945
12345 PEPPERMINT PATTY CREST APT 1000 ASHBURN VA 201475724
VA Active Registration Record:
BENNIE C DAS M 05/14/1945
12345 PEPPERMINT PATTY CREST APT 1000 ASHBURN VA 201475724
Category 6 Matches:
There were 68 matches in Category 3: where the Levenshtein Distance measure was equal to 1 and the minimum address distance was greater than 0, but less than or equal to 12. Examples in this category are most often due to a middle name/initial being present in one record and not being present in the other, as well as small differences in how the addresses are presented. An example is given below.
FL Active Registration Record:
BENNIE C DAS M 05/14/1945
1267 SLEEPY SONG PLACE SPRINGFIELD VA 22150
VA Active Registration Record:
BENNIE DAS M 05/14/1945
1267 SLEEPY SONG PL SPRINGFIELD VA 221504259
Table of Results by VA Locality:
Row Labels | LD=0, AD=0 | LD=0, 0<AD<=12 | LD=1, AD=0 | LD=1, 0<AD<=12 | LD=2, AD=0 | LD=2, 0<AD<=12 |
ACCOMACK COUNTY | 3 | 8 | 1 | 1 | 0 | 0 |
ALBEMARLE COUNTY | 13 | 24 | 0 | 1 | 0 | 0 |
ALEXANDRIA CITY | 15 | 52 | 1 | 6 | 1 | 1 |
ALLEGHANY COUNTY | 1 | 3 | 0 | 1 | 0 | 0 |
AMELIA COUNTY | 2 | 2 | 0 | 0 | 0 | 0 |
AMHERST COUNTY | 3 | 2 | 0 | 0 | 0 | 0 |
APPOMATTOX COUNTY | 5 | 0 | 0 | 0 | 1 | 0 |
ARLINGTON COUNTY | 27 | 53 | 2 | 8 | 2 | 6 |
AUGUSTA COUNTY | 3 | 8 | 0 | 1 | 1 | 0 |
BEDFORD COUNTY | 4 | 15 | 0 | 1 | 0 | 0 |
BOTETOURT COUNTY | 7 | 2 | 0 | 0 | 0 | 0 |
BRISTOL CITY | 3 | 2 | 0 | 0 | 0 | 0 |
BRUNSWICK COUNTY | 1 | 2 | 0 | 0 | 0 | 0 |
BUCHANAN COUNTY | 1 | 0 | 0 | 0 | 0 | 0 |
BUCKINGHAM COUNTY | 0 | 1 | 0 | 0 | 0 | 0 |
CAMPBELL COUNTY | 2 | 3 | 1 | 1 | 0 | 0 |
CAROLINE COUNTY | 0 | 2 | 0 | 0 | 0 | 0 |
CARROLL COUNTY | 1 | 6 | 0 | 1 | 0 | 0 |
CHARLOTTE COUNTY | 1 | 4 | 0 | 0 | 0 | 0 |
CHARLOTTESVILLE CITY | 4 | 6 | 0 | 0 | 0 | 1 |
CHESAPEAKE CITY | 27 | 87 | 4 | 13 | 1 | 4 |
CHESTERFIELD COUNTY | 28 | 49 | 2 | 5 | 0 | 3 |
CLARKE COUNTY | 0 | 2 | 0 | 0 | 0 | 0 |
COLONIAL HEIGHTS CITY | 0 | 1 | 1 | 0 | 0 | 0 |
CRAIG COUNTY | 2 | 1 | 0 | 0 | 0 | 0 |
CULPEPER COUNTY | 6 | 8 | 0 | 0 | 0 | 0 |
CUMBERLAND COUNTY | 2 | 0 | 0 | 0 | 0 | 0 |
DANVILLE CITY | 2 | 1 | 0 | 0 | 0 | 0 |
DICKENSON COUNTY | 1 | 3 | 0 | 0 | 0 | 0 |
DINWIDDIE COUNTY | 0 | 3 | 0 | 1 | 0 | 0 |
ESSEX COUNTY | 2 | 0 | 0 | 0 | 0 | 0 |
FAIRFAX CITY | 3 | 6 | 0 | 0 | 0 | 0 |
FAIRFAX COUNTY | 108 | 259 | 7 | 14 | 4 | 15 |
FALLS CHURCH CITY | 2 | 2 | 0 | 0 | 0 | 1 |
FAUQUIER COUNTY | 4 | 14 | 1 | 0 | 0 | 0 |
FLOYD COUNTY | 1 | 1 | 1 | 0 | 0 | 0 |
FLUVANNA COUNTY | 2 | 3 | 0 | 2 | 0 | 0 |
FRANKLIN CITY | 3 | 1 | 0 | 0 | 0 | 0 |
FRANKLIN COUNTY | 5 | 6 | 0 | 1 | 0 | 1 |
FREDERICK COUNTY | 10 | 9 | 0 | 2 | 0 | 0 |
FREDERICKSBURG CITY | 1 | 7 | 0 | 0 | 0 | 0 |
GALAX CITY | 2 | 0 | 0 | 0 | 0 | 0 |
GILES COUNTY | 0 | 0 | 0 | 1 | 0 | 0 |
GLOUCESTER COUNTY | 6 | 17 | 0 | 1 | 1 | 0 |
GOOCHLAND COUNTY | 2 | 2 | 1 | 0 | 1 | 0 |
GRAYSON COUNTY | 1 | 3 | 0 | 1 | 0 | 0 |
GREENE COUNTY | 0 | 5 | 0 | 0 | 0 | 0 |
HALIFAX COUNTY | 1 | 2 | 0 | 1 | 0 | 0 |
HAMPTON CITY | 10 | 16 | 0 | 6 | 0 | 0 |
HANOVER COUNTY | 2 | 6 | 1 | 2 | 1 | 0 |
HARRISONBURG CITY | 1 | 6 | 0 | 1 | 0 | 0 |
HENRICO COUNTY | 24 | 33 | 0 | 3 | 0 | 1 |
HENRY COUNTY | 3 | 5 | 0 | 1 | 0 | 0 |
ISLE OF WIGHT COUNTY | 4 | 13 | 0 | 1 | 0 | 2 |
JAMES CITY COUNTY | 23 | 25 | 1 | 1 | 0 | 0 |
KING GEORGE COUNTY | 2 | 4 | 1 | 0 | 0 | 1 |
KING WILLIAM COUNTY | 2 | 0 | 0 | 0 | 0 | 0 |
LANCASTER COUNTY | 2 | 1 | 1 | 0 | 0 | 1 |
LEE COUNTY | 3 | 1 | 0 | 0 | 0 | 0 |
LEXINGTON CITY | 0 | 2 | 0 | 0 | 0 | 0 |
LOUDOUN COUNTY | 29 | 73 | 1 | 1 | 2 | 2 |
LOUISA COUNTY | 5 | 2 | 0 | 0 | 0 | 0 |
LYNCHBURG CITY | 6 | 15 | 0 | 2 | 0 | 0 |
MADISON COUNTY | 2 | 0 | 0 | 0 | 0 | 0 |
MANASSAS CITY | 3 | 0 | 0 | 0 | 0 | 0 |
MANASSAS PARK CITY | 1 | 0 | 0 | 0 | 0 | 0 |
MARTINSVILLE CITY | 2 | 1 | 0 | 0 | 0 | 0 |
MATHEWS COUNTY | 0 | 3 | 0 | 0 | 0 | 0 |
MECKLENBURG COUNTY | 3 | 2 | 0 | 0 | 0 | 0 |
MIDDLESEX COUNTY | 0 | 4 | 0 | 1 | 0 | 0 |
MONTGOMERY COUNTY | 6 | 11 | 1 | 1 | 0 | 0 |
NELSON COUNTY | 1 | 2 | 0 | 1 | 0 | 0 |
NEW KENT COUNTY | 0 | 6 | 0 | 0 | 0 | 0 |
NEWPORT NEWS CITY | 8 | 17 | 0 | 1 | 0 | 2 |
NORFOLK CITY | 14 | 58 | 0 | 11 | 0 | 1 |
NORTHUMBERLAND COUNTY | 2 | 1 | 1 | 0 | 0 | 0 |
NOTTOWAY COUNTY | 0 | 1 | 0 | 0 | 0 | 0 |
ORANGE COUNTY | 5 | 6 | 1 | 0 | 0 | 0 |
PAGE COUNTY | 1 | 2 | 0 | 0 | 0 | 0 |
PATRICK COUNTY | 0 | 2 | 0 | 0 | 0 | 0 |
PETERSBURG CITY | 2 | 1 | 0 | 0 | 0 | 0 |
PITTSYLVANIA COUNTY | 3 | 7 | 0 | 1 | 0 | 0 |
POQUOSON CITY | 1 | 0 | 0 | 0 | 0 | 0 |
PORTSMOUTH CITY | 5 | 9 | 1 | 1 | 0 | 0 |
POWHATAN COUNTY | 2 | 2 | 0 | 1 | 0 | 0 |
PRINCE EDWARD COUNTY | 0 | 2 | 0 | 0 | 0 | 0 |
PRINCE GEORGE COUNTY | 1 | 1 | 1 | 1 | 0 | 1 |
PRINCE WILLIAM COUNTY | 40 | 83 | 2 | 11 | 3 | 3 |
PULASKI COUNTY | 2 | 2 | 0 | 0 | 0 | 0 |
RADFORD CITY | 0 | 2 | 0 | 0 | 0 | 0 |
RAPPAHANNOCK COUNTY | 0 | 2 | 1 | 0 | 0 | 0 |
RICHMOND CITY | 12 | 29 | 1 | 3 | 0 | 0 |
ROANOKE CITY | 14 | 12 | 1 | 2 | 0 | 0 |
ROANOKE COUNTY | 14 | 15 | 0 | 0 | 0 | 1 |
ROCKBRIDGE COUNTY | 2 | 2 | 2 | 0 | 0 | 0 |
ROCKINGHAM COUNTY | 1 | 5 | 0 | 1 | 0 | 1 |
RUSSELL COUNTY | 0 | 3 | 0 | 0 | 0 | 1 |
SALEM CITY | 2 | 1 | 0 | 0 | 0 | 0 |
SCOTT COUNTY | 2 | 0 | 0 | 0 | 0 | 0 |
SHENANDOAH COUNTY | 0 | 1 | 0 | 1 | 0 | 1 |
SMYTH COUNTY | 1 | 2 | 0 | 0 | 0 | 0 |
SOUTHAMPTON COUNTY | 0 | 2 | 0 | 1 | 0 | 0 |
SPOTSYLVANIA COUNTY | 10 | 19 | 1 | 1 | 0 | 0 |
STAFFORD COUNTY | 20 | 48 | 0 | 4 | 0 | 4 |
STAUNTON CITY | 1 | 2 | 0 | 0 | 0 | 0 |
SUFFOLK CITY | 12 | 31 | 0 | 0 | 0 | 1 |
TAZEWELL COUNTY | 0 | 5 | 0 | 1 | 0 | 0 |
VIRGINIA BEACH CITY | 46 | 177 | 1 | 11 | 1 | 12 |
WARREN COUNTY | 2 | 4 | 0 | 0 | 0 | 0 |
WASHINGTON COUNTY | 3 | 5 | 1 | 1 | 0 | 0 |
WAYNESBORO CITY | 1 | 3 | 0 | 0 | 0 | 0 |
WESTMORELAND COUNTY | 5 | 2 | 0 | 0 | 0 | 1 |
WILLIAMSBURG CITY | 1 | 1 | 0 | 0 | 0 | 0 |
WINCHESTER CITY | 0 | 6 | 0 | 0 | 0 | 0 |
WISE COUNTY | 0 | 7 | 0 | 0 | 0 | 0 |
WYTHE COUNTY | 0 | 0 | 0 | 1 | 0 | 0 |
YORK COUNTY | 12 | 35 | 2 | 2 | 0 | 0 |
Grand Total | 698 | 1533 | 44 | 140 | 19 | 68 |
Tabulated Results by FL County Code:
Row Labels | LD=0, AD=0 | LD=0, 0<AD<=12 | LD=1, AD=0 | LD=1, 0<AD<=12 | LD=2, AD=0 | LD=2, 0<AD<=12 |
MON | 2 | 20 | 0 | 1 | 0 | 0 |
ALA | 0 | 23 | 0 | 2 | 0 | 0 |
BAK | 0 | 2 | 0 | 0 | 0 | 0 |
BAY | 7 | 40 | 0 | 4 | 1 | 0 |
BRA | 2 | 2 | 0 | 0 | 0 | 0 |
BRE | 41 | 39 | 1 | 1 | 2 | 3 |
BRO | 12 | 95 | 0 | 6 | 0 | 8 |
CHA | 71 | 14 | 6 | 1 | 2 | 1 |
CIT | 1 | 6 | 0 | 1 | 0 | 0 |
CLA | 7 | 47 | 2 | 5 | 0 | 3 |
CLL | 1 | 52 | 0 | 1 | 0 | 1 |
CLM | 0 | 0 | 0 | 1 | 0 | 0 |
DAD | 50 | 59 | 2 | 6 | 2 | 1 |
DES | 1 | 1 | 0 | 0 | 0 | 0 |
DUV | 28 | 114 | 4 | 21 | 1 | 9 |
ESC | 19 | 103 | 1 | 10 | 0 | 3 |
FLA | 5 | 11 | 0 | 1 | 2 | 2 |
FRA | 1 | 1 | 0 | 0 | 0 | 0 |
GAD | 1 | 0 | 0 | 1 | 0 | 0 |
GLA | 1 | 0 | 0 | 0 | 0 | 0 |
GUL | 0 | 4 | 0 | 0 | 0 | 0 |
HAM | 3 | 0 | 0 | 0 | 0 | 0 |
HAR | 3 | 1 | 0 | 0 | 0 | 0 |
HEN | 1 | 0 | 0 | 0 | 0 | 0 |
HER | 8 | 16 | 0 | 2 | 0 | 1 |
HIG | 0 | 1 | 0 | 0 | 0 | 0 |
HIL | 29 | 65 | 2 | 10 | 1 | 4 |
HOL | 0 | 1 | 0 | 0 | 0 | 0 |
IND | 9 | 11 | 1 | 0 | 1 | 0 |
JAC | 0 | 2 | 0 | 0 | 0 | 0 |
LAK | 1 | 10 | 0 | 1 | 0 | 1 |
LEE | 0 | 46 | 0 | 3 | 0 | 1 |
LEO | 35 | 9 | 2 | 0 | 1 | 0 |
LEV | 3 | 0 | 1 | 0 | 0 | 0 |
MAD | 0 | 0 | 1 | 0 | 0 | 0 |
MAN | 31 | 21 | 1 | 1 | 0 | 1 |
MRN | 26 | 16 | 0 | 1 | 0 | 1 |
MRT | 40 | 6 | 2 | 2 | 1 | 1 |
NAS | 4 | 12 | 0 | 1 | 0 | 0 |
OKA | 50 | 31 | 3 | 0 | 1 | 2 |
OKE | 1 | 0 | 0 | 0 | 0 | 0 |
ORA | 1 | 139 | 0 | 9 | 0 | 4 |
OSC | 4 | 15 | 1 | 0 | 0 | 0 |
PAL | 35 | 89 | 3 | 10 | 0 | 2 |
PAS | 0 | 30 | 0 | 3 | 0 | 1 |
PIN | 4 | 88 | 0 | 6 | 0 | 3 |
POL | 0 | 62 | 0 | 9 | 0 | 2 |
PUT | 2 | 1 | 0 | 0 | 0 | 0 |
SAN | 13 | 42 | 0 | 3 | 0 | 2 |
SAR | 17 | 18 | 1 | 1 | 2 | 0 |
SEM | 53 | 34 | 5 | 3 | 0 | 3 |
STJ | 8 | 22 | 1 | 5 | 0 | 3 |
STL | 60 | 20 | 4 | 2 | 2 | 1 |
SUM | 2 | 29 | 0 | 3 | 0 | 1 |
SUW | 3 | 3 | 0 | 0 | 0 | 0 |
TAY | 0 | 2 | 0 | 0 | 0 | 0 |
VOL | 0 | 51 | 0 | 3 | 0 | 3 |
WAK | 1 | 1 | 0 | 0 | 0 | 0 |
WAL | 1 | 6 | 0 | 0 | 0 | 0 |
Grand Total | 698 | 1533 | 44 | 140 | 19 | 68 |
Addendum + Updates:
In response to a number of questions we have received on this topic, and continued work to dig into this data:
- The number of matches above has been corrected from the original 2,527 to 2,502 (a difference of 25) due to a “fat-finger” error in tallying the total number of category 5 matches.
- For the strict constraints given above, the number of matched records where there is a vote recorded for the same election date in both the VA and FL data is 13.
- We also computed the number of exact [First Name + Middle Initial + Last Name + Gender + Full DOB] matches without requiring our additional address filter. This criteria is more strict in the initial match, but more loose in the subsequent filtering.
- This results in a total of 17,701 matches when considering only Active voters on each of the FL and VA voter lists.
- There are 343 of these matches where both FL and VA records have a history of votes cast in the same election.
- The number jumps to 81,155 if we consider either Active or Inactive registrations.
- There are 382 of these matches where both FL and VA records have a history of votes cast in the same election.
- This results in a total of 17,701 matches when considering only Active voters on each of the FL and VA voter lists.