Go to Bitmap.us Home


  
Soundex
   

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.

         Valid XHTML  |   Valid CSS  |   A  |   How to 3D  |   D

         Secure  Connection Secured © 2019