How to calculate the North America (US) Drivers License Number
Algorithm
Here is an algorithm based on the Soundex code that you can use to
calculate the US drivers license number of individuals for the states of
Florida, Illinois, and Wisconsin . This project is a beta. We built an
algorithm to show that the power of Soundex is still one of the most
powerful and wildly available algorithms today. Soundex is a
phonetic algorithm for indexing names by sound, as pronounced in
English. The goal is for names with the same pronunciation to be encoded
to the same representation so that they can be matched despite minor
differences in spelling. Soundex is the most widely known of all
phonetic algorithms and is often used incorrectly as a synonym for
"phonetic algorithm". Improvements to Soundex are the basis for many
modern phonetic algorithms.
History of Soundex
Soundex was developed by Robert Russell and Margaret Odell and patented
in 1918 and 1922 . A variation called American Soundex was used in the
1930s for a retrospective analysis of the US censuses from 1890 through
1920. The Soundex code came to prominence in the 1960s when it was the
subject of several articles in the Communications and Journal of the
Association for Computing Machinery (CACM and JACM). The National
Archives and Records Administration (NARA) maintains the current rule
set for the official implementation of Soundex used by the U.S.
Government. On 2 Apr 1918, Robert C. Russell of Pittsburgh, Philadelphia
obtained a patent on a method for indexing which was based on the way a
name was pronounced rather than how it was spelled. He did this by
coding 8 phonetic sound types with a few additional rules. Together with
Margaret K. Odell he obtained a second patent in 1922 with some
variations. This they sold to various commercial and governmental
organizations. It was taken up in a modified form in the 1930's by the
Social Security Administration under a work creation scheme to extract
certain data from the US Census and to index its records. It has also
been used for immigration records and, more recently for indexing search
engines, spell checkers and in fact, a number of variants of the
original design have been used over the years.
The Algorithm as an Outline.
Soundex Algorithm
A. Remember the initial letter.
B. Convert each letter (including the first) according to the following
table. Ignore punctuation such as apostrophes, spaces and hyphens.
-1 = A, E, I ,O, U, Y (The letters A, E, I ,O, U, Y are not coded.)
-2 = H, W (The letters H, W are not coded.)
1 = B, P, F, V
2 = C, S, K, G, J, Q, S, Z
3 = D, T
4 = L
5 = M, N
6 = R
C. Change all consecutive duplicate digits to a single example. e.g. change 22 to 2
D. Replace the first digit by the letter remembered in step A.
F. Remove all zeros from the string.
G. Adjust to four characters by truncating or padding to the right with zeros.
The resulting 4 character code is the Simplified Soundex for that name.
<--how and="" calculate="" drivers="" fl="" for="" il="" license="" numbers="" of="" others.--="" perhaps="" states="" the="" to="" us="" wi="">
This algorithm is shared by Florida, Illinois, and Wisconsin.
The specific licenses look like the following.
Example of a Florida Driver's License:
SSSS-FFF-YY-DDD-N (The last letter is random and cannot be calculated -- see overflow topic below).
B652-104-79-163-0
The above is for Chris D. Branch, (male), born on May 3rd, 1979.
Example of a Illinois Driver's License:
SSSS-FFFY-YDDD
T651-5357-7044
The above is for Lam P. Turnpike, (male), born on February 13th, 1977.
Example of a Wisconsin Driver's License:
SSSS-FFFY-YDDD-NN (The last letters are random and cannot be calculated -- see overflow topic below).
R163-2838-0587-03
The above is for Georget C. Roberts, (female), born on March 7th, 1980.
Convert the name to the form “letter, digit, digit, digit” by adding
trailing zeros if there are less than three digits, or by dropping
rightmost digits if there are more than three digits. The following
examples of names have these corresponding soundex codes:
Case C200 Gauss G200
Smith S530 Smythe S530
Lloyd L300 Bednarczyk B356
Jackson J250
SSSS = Soundex code of your last name
SSSS = Soundex
FFF = Encoded first name and middle initial
FFF = First name and middle initial
Look up your first name on this table:
Name Code Name Code Name Code
Albert 20 Frank 260 Marvin 580
Alice 20 George 300 Mary 580
Ann 40 Grace 300 Melvin 600
Anna 40 Harold 340 Mildred 600
Anne 40 Harriet 340 Patricia 680
Annie 40 Harry 360 Paul 680
Arthur 40 Hazel 360 Richard 740
Bernard 80 Helen 380 Robert 760
Bette 80 Henry 380 Ruby 740
Bettie 80 James 440 Ruth 760
Betty 80 Jane 440 Thelma 820
Carl 120 Jayne 440 Thomas 820
Catherine 120 Jean 460 Walter 900
Charles 140 Joan 480 Wanda 900
Dorthy 180 John 460 William 920
Edward 220 Joseph 480 Wilma 920
Elizabeth 220 Margaret 560
Florence 260 Martin 560
Donald 180
Clara 140
Then look up your first initial on this table:
If you fail to find your name, look up your first initial on this table:
Initial Code Initial Code Initial Code Initial Code
A 0 H 320 O 640 V 860
B 60 I 400 P 660 W 880
C 100 J 420 Q 700 X 940
D 160 K 500 R 720 Y 960
E 200 L 520 S 780 Z 980
F 240 M 540 T 800
G 280 N 620 U 840
Now look up your middle initial on this table:
Initial Code Initial Code Initial Code Initial Code
A 1 H 8 O 14 V 18
B 2 I 9 P 15 W 19
C 3 J 10 Q 15 X 19
D 4 K 11 R 16 Y 19
E 5 L 12 S 17 Z 19
F 6 M 13 T 18
G 7 N 14 U 18
Add together the code for your first name or your first initial to the code for your middle initial.
YY & Y-Y = Year of birth
The two numbers together represent the year of your birth.
DDD = Month and day of birth plus gender
This portion encodes the month and day you were born on. The general equation is:
General: (birth_month - 1) * month_multiplier + birth_day + gender_mod
Florida: (birth_month - 1) * 40 + birth_day + (male:0, female: 500)
Illinois: (birth_month - 1) * 31 + birth_day + (male:0, female: 600)
Wisconsin: (birth_month - 1) * 40 + birth_day + (male:0, female: 500)
birth_month is the number of months into the year, January is 1, December is 12.
month_multiplier varies by state. Illinois uses 31. Wisconsin and Florida both use 40.
gender_mod varies by state. In Illinois men use 0, women use 600. In Wisconsin and Florida men use 0, women use 500.
If the result is less than 100, add zeroes to the left side to make it 3
digits. (So, January 1st is encoded as "001" for men in Illinois.)
Overflow
Looking at this, it may become clear that it is possible for two people
with similar names to get the exact same driver's license number. For
example, if "Joshua William Smith" and "Jack Wayne Snotty" were born on
the same day, they'll get the same Illinois Drivers's License number.
This is solved with "overflow" numbers; a simple sequential number can
be appended to each duplicate number to resolve the confusion.
Wisconsin prints the overflow number on your license. As a result, the
last two digits of your Wisconsin Drivers license number represent the
number of people who had the same license number as you (ignoring the
last two digits), when you got your license.
Illinois may do this, but if they do the information is not on your
driver's license. This means that if Joshua William Smith is wanted by
police and his driver's license number is flagged as such, Jack Wayne
Snotty may be briefly detained while the police check their records to
sort out the shared number. It has been said that Illinois state
databases actually include a two or three digit number to distinguish
between different people with the same license.
It is also know that Florida adds one extra digit to the end. We have
heard of the last digit being a 0, but it may well be another overflow
digit, meaning that one should expect to see other numbers there as
well.
NOTE: The people mentioned above anywhere in this essay are fictional.
<--us driver="" license="" number="" sequences--="">
AK - driver's license numbers sequentially issued. 7 digits.
AL - driver's license numbers sequentially issued. 7 digits.
AR - uses driver's SSN. Will assign a nine digit sequential number upon request.
AZ - uses driver's SSN. Will assign a nine digit sequential number upon request.
CA - issues an 8 character alpha-numeric driver's license number.
CO - issues a driver's license number of up to 7 characters.
CT - issues a 9 digit number.
DC - uses driver's SSN.
DE - issues a 1 to 7 digit number sequentially.
FL - issues a 13 character alpha-numeric number.
GA - uses driver's SSN. Will assign a nine digit sequential number upon request.
HI - uses driver's SSN. Will assign a nine digit sequential number upon request.
IA - uses driver's SSN. Will assign a nine digit sequential number upon request.
ID - issues a 9 digit number.
IL - issues a 12 or 13 character alpha-numeric number.
IN - issues a 10 digit number.
KS - uses driver's SSN. Will assign a nine digit sequential number upon
request. Older licenses consist of six alpha numeric characters.
KY - uses driver's SSN. Will assign a nine or 10 digit sequential number issued upon request.
LA - issues a 9 digit number.
MA - uses driver's SSN. Will assign a nine digit sequential number upon request.
MD - issues a 13 character alpha-numeric number.
ME - issues a 7 digit numeric number.
MI - issues a 13 character alpha-numeric number.
MN - issues a 13 character alpha-numeric number.
MO - uses driver's SSN. Will assign a sequentially issued number upon request.
MS - uses driver's SSN. Will assign a nine digit sequential number upon request.
MT - uses driver's SSN. Will assign a sequentially issued number upon request.
NC - issues a 7 digit numeric number.
ND - uses driver's SSN. Will assign a sequentially issued number for non-commercial drivers upon request.
NE - issues a 9 character alpha numeric number
NH - issues a 10 character alpha numeric number
NJ - issues a 15 character alpha numeric number
NM - issues a 9 digit numeric number. Older licenses use an 8 digit number
NV - issues a 12 character alpha numeric number
NY - issues a 9 character alpha numeric number
OH - issues a 8 character alpha numeric number
OK - uses driver's SSN. Will assign a nine digit sequential number upon request.
OR - issues a 7 digit numeric number.
PA - issues a 8 digit numeric number.
RI - issues a 7 digit numeric number.
SC - issues a 9 digit numeric number.
SD - uses driver's SSN.
TN - issues an 8 digit numeric number.
TX - issues an 8 digit numeric number.
UT - issues a 4 to 8 digit numeric number.
VA - uses driver's SSN. Will assign a sequentially issued number upon request.
VT - issues an 8 digit numeric number or an 8 character alpha numeric number.
WA - issues a 14 character alpha-numeric number.
WI - issues a 14 character alpha-numeric number.
WV - issues a 7 digit numeric number.
WY - issues a 9 digit numeric number.--us>--how>