Automotive Security Math

How the 9th VIN Check Digit Is Calculated (Modulo 11 Formula)

Every official 17-character Vehicle Identification Number in North America and ISO 3779 compliant jurisdictions includes a mathematical check digit at position 9. Here is the exact formula, weight table, and step-by-step arithmetic used by DMVs and law enforcement to detect counterfeit or mistyped VINs.

By Chandresh Thakur·Updated September 2026·8 min read

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 ValueCorresponding VIN Letters & Numbers
1A, J, 1
2B, K, S, 2
3C, L, T, 3
4D, M, U, 4
5E, N, V, 5
6F, W, 6
7G, P, X, 7
8H, Y, 8
9R, Z, 9
00

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:

Position123456789 (Check)1011121314151617
Weight876543210098765432

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

  1. Character 9 in this VIN is 8.
  2. Transliterating characters 1 through 17 yields values: 5, 8, 1, 2, 1, 1, 5, 2, (0), 3, 6, 1, 2, 9, 9, 3, 8.
  3. Multiplying by weights: (5×8) + (8×7) + (1×6) + (2×5) + ... = 448.
  4. Divide 448 by 11: 448 ÷ 11 = 40 remainder 8.
  5. The computed remainder is 8, which matches character 9 (8) in the VIN! The check digit passes.

Validate Any VIN Check Digit Instantly

Our client-side tool runs this Modulo 11 calculation locally in real-time as you type, with zero server delay.

Test Check Digit in FastVIN Decoder →