North America (US) Driver's License Numbers and Mathematical Calculators.
Here is an algorithm based on the Soundex code that you can use to calculate the US driver's
license number of individuals for the states of
Florida,
Illinois,
and
Wisconsin
.
This project is a beta. We built this site to
show that the power of the Soundex algorithm 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 too 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.
US Driver's License Numbers
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.
0 = A, E, I, O, U, W, Y, H
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 to calculate the US Driver's
License Numbers for the states of FL, IL, WI and perhaps others.
This algorithm is shared by Florida, Illinois, and Wisconsin.
The specific licenses look like the following.
Calculate a Florida Driver's License:
SSSS-FFF-YY-BBB-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.
Calculate a Illinois Driver's License:
SSSS-FFFY-YBBB
T651-5357-7044
The above is for Lam P. Turnpike, (male), born on February 13th, 1977.
Calculate a Wisconsin Driver's License:
SSSS-FFFY-YBBB-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
|
Dorothy
|
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:
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.
BBB = 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 Driver'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 Driver's 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 known 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.
|