VIN Check Digit Calculation: The Federal Formula
Calculate VIN position 9 with the official transliteration values, position weights, modulo-11 formula and a complete worked example.
Read the notes and limitations before applying any single field to a title, purchase, or safety decision.
To calculate a VIN check digit, convert each letter to its federal numeric value, multiply all 17 positions by the fixed weights 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2, add the products and divide by 11. The remainder is the check digit; remainder 10 is written X.
The algorithm in five steps
- Normalize the VIN to 17 uppercase characters and reject I, O and Q.
- Replace each letter with its value from the federal transliteration table; numerals retain their face value.
- Multiply each value by the fixed weight for that VIN position. Position 9 has weight zero because it is the result being tested.
- Add all 17 products and calculate total modulo 11.
- Use remainder 0–9 as the digit. Write X when the remainder is 10.
check digit = (sum of transliterated character values × position weights) mod 11If the result is 10, the displayed check digit is X.VIN character values
| Assigned value | Characters |
|---|---|
| 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 |
Fixed weight for every VIN position
| VIN position | Weight |
|---|---|
| 1 | 8 |
| 2 | 7 |
| 3 | 6 |
| 4 | 5 |
| 5 | 4 |
| 6 | 3 |
| 7 | 2 |
| 8 | 10 |
| 9 | 0 (check digit) |
| 10 | 9 |
| 11 | 8 |
| 12 | 7 |
| 13 | 6 |
| 14 | 5 |
| 15 | 4 |
| 16 | 3 |
| 17 | 2 |
Worked example: 1G4AH59H4G118341
This is the worked example printed in 49 CFR 565.15. Position 9 is excluded from the arithmetic by its zero weight, even though the finished VIN displays 4 there.
| Position | Character | Value | Weight | Product |
|---|---|---|---|---|
| 1 | 1 | 1 | 8 | 8 |
| 2 | G | 7 | 7 | 49 |
| 3 | 4 | 4 | 6 | 24 |
| 4 | A | 1 | 5 | 5 |
| 5 | H | 8 | 4 | 32 |
| 6 | 5 | 5 | 3 | 15 |
| 7 | 9 | 9 | 2 | 18 |
| 8 | H | 8 | 10 | 80 |
| 9 | 4 | — | 0 | 0 |
| 10 | 5 | 5 | 9 | 45 |
| 11 | G | 7 | 8 | 56 |
| 12 | 1 | 1 | 7 | 7 |
| 13 | 1 | 1 | 6 | 6 |
| 14 | 8 | 8 | 5 | 40 |
| 15 | 3 | 3 | 4 | 12 |
| 16 | 4 | 4 | 3 | 12 |
| 17 | 1 | 1 | 2 | 2 |
411 mod 11 = 4The products total 411. Dividing by 11 leaves remainder 4, so position 9 is 4.What a passing checksum does—and does not—prove
A correct check digit is useful for catching many transcription errors. It does not prove that a VIN plate is original, that the VIN belongs to the physical vehicle, or that title and history records are clean.
- A mistyped VIN can occasionally produce the same remainder.
- A deliberately fabricated 17-character string can be built with valid checksum arithmetic.
- Some vehicles outside the U.S. federal scope may not use position 9 the same way.
- Always compare the dashboard VIN, certification label, title and decoded vehicle identity.
Primary sources behind this reference
Open the underlying public source and verify that its scope matches the question you are asking.
Frequently asked questions
Why is X allowed in VIN position 9?
X represents a modulo-11 remainder of 10. It is the only letter that can be the calculated check digit.
Is the VIN check digit always position 9?
Under the U.S. federal 17-character VIN requirements, yes. Vehicles outside that scope can require different treatment.
Does a valid VIN checksum prove the car is legitimate?
No. It verifies the arithmetic of the string, not the physical plate, title, ownership or history.