Why Does Position 9 Exist?
Before standard VIN regulations were enforced by the US Department of Transportation in 1981, vehicle cloning, accidental transcription typos by insurance clerks, and odometer fraud were rampant. The check digit at position 9 provides mathematical proof that a VIN has not suffered an accidental digit transposition (like typing 45 instead of 54) or unauthorized serial modification.
The 4-Step Modulo 11 Calculation Algorithm
Step 1: Character Transliteration Table
Letters (excluding I, O, and Q, which are barred from VINs to avoid confusion with 1 and 0) are converted to fixed numeric equivalents:
| Numeric Value | Corresponding VIN Letters & Numbers |
|---|---|
| 1 | A, J, 1 |
| 2 | B, K, S, 2 |
| 3 | C, L, T, 3 |
| 4 | D, M, U, 4 |
| 5 | E, N, V, 5 |
| 6 | F, W, 6 |
| 7 | G, P, X, 7 |
| 8 | H, Y, 8 |
| 9 | R, Z, 9 |
| 0 | 0 |
Step 2: Positional Weight Factors
Each of the 17 characters is assigned a fixed positional multiplier weight based on its index from left to right:
| Position | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 (Check) | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Weight | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 10 | 0 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
Note: Position 9 has a weight factor of 0 because its value is the output of the formula itself.
Step 3: Calculate the Weighted Sum
Multiply the transliterated value of each character by its positional weight factor and sum the products:
Total Sum = ∑ (Transliterated_Value[i] × Weight[i])Step 4: Modulo 11 Division
Divide the total sum by 11 to obtain the integer remainder:
Remainder = Total Sum % 11- If the remainder is between 0 and 9, the check digit must match that number exactly.
- If the remainder is 10, the check digit is designated with the capital Roman numeral 'X'.
A Complete Worked Example: Tesla Model S
Let us calculate the check digit for the sample VIN: 5YJSA1E28LF129938
- Character 9 in this VIN is
8. - Transliterating characters 1 through 17 yields values:
5, 8, 1, 2, 1, 1, 5, 2, (0), 3, 6, 1, 2, 9, 9, 3, 8. - Multiplying by weights:
(5×8) + (8×7) + (1×6) + (2×5) + ... = 448. - Divide 448 by 11:
448 ÷ 11 = 40 remainder 8. - The computed remainder is 8, which matches character 9 (
8) in the VIN! The check digit passes.