For some reason, last night I had an obsession with finding out what info is coded in my drivers license and how the number is determined. I ended up stumbling across this super interesting site. http://www.highprogrammer.com/alan/numbers/dl_us_shared.html

On the site they have an applet for inputing ID# and getting info, and one for inputing info and generating ID#. It works both ways, and is very cool. I generated my brother's id# last night and called him up to double check. And it was the real deal. Its kinda scary.

Basically there are 4 parts to IL drivers license numbers. It is of the form **SSSS-FFFY-YDDD**

**Offensive Run Middle Fake Right Sheet Left Seahawks Playcall** Sheet Run Fake Right Left Seahawks Playcall Offensive Middle The first chunk of numbers is the soundex coding of your last name.

The **Soundex code** for a name consists of a letter followed by three digits: the letter is the first letter of the name, and the digits encode the remaining consonants. Similar sounding consonants share the same digit so, for example, the labials B, F, P, and V are each encoded as 1. Vowels can affect the coding, but are not coded themselves except as the first letter. However if "h" or "w" separate two consonants that have the same soundex code, the consonant to the right of the vowel is not coded.

The correct value can be found as follows:

1. If "h", "w" separate two consonants with the same soundex code, change consonants to right of the vowel into "h" until they have the same soundex code

2. Replace consonants with digits as follows (but do not change the first letter):

* b, f, p, v => 1

* c, g, j, k, q, s, x, z => 2

* d, t => 3

* l => 4**Playcall Run Offensive Sheet Seahawks Middle Fake Left Right**

* m, n => 5

* r => 6

3. Collapse adjacent identical digits into a single digit of that value.

4. Remove all non-digits after the first letter.

5. Return the starting letter and the first three remaining digits. If needed, append zeroes to make it a letter and three digits.

Using this algorithm, both "Robert" and "Rupert" return the same string "R163" while "Rubin" yields "R150". "Ashcraft" yields "A261".

The next group of numbers is based on your first name and your middle initial. To determine what your FFF number will be you must refer to the charts:

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

Right Sheet Playcall Seahawks Offensive Left Fake Run Middle 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

(Its kinda hard to see because I copied and pasted it, but check out the link above to see it more clearly.

For example, if your name is robert, you look at the first table to see that robert = 760. If robert had a middle initial F, then he would add 760+6 (which is F's value on the 3rd table). So Robert F.'s FFF number will be 766.

This one is easy and the most obvious, it is simply the last to digits of the year you were born. Example: Robert F. was born in 1977, then his YY=77

This one is determine by the sex and the month and day of birth. The formula for IL is:

(MM-1)*31+DD +(600 if female, 0 if male)

For example Robert F was born April 3 1977, and is male. Then since april=04 We would compute:

(04-1)*31+03+0 = 93+3 = 96. So his DDD number is 096.

By soundex conventions "Ashcraft" yields "A261".

So we piece together A261-7667-7096

The answer for IL is yes, however in other states they utilize check digits.