Skip to content

The VIN Check Digit: How the 9th Character Works

Guide · Codes & checks · Updated · 6 min read · How we research our guides

The 9th character of a VIN is a check digit: a number from 0 to 9, or the letter X, calculated from the other 16 characters. If you recalculate it and get a different answer, at least one character has been copied or typed wrongly. It is mandatory on U.S. and Canadian VINs and, since July 7, 2026, on every newly registered vehicle in the EU.

What is the VIN check digit?

The check digit is a built-in error detector. U.S. rules define it as a single number or the letter X used to verify the accuracy of a VIN transcription (49 CFR 565.12). The manufacturer calculates it after choosing the other 16 characters and places it in position 9. Anyone can repeat the calculation later: if the result doesn't match the 9th character, the VIN in front of you contains a mistake.

Where the check digit is required
Where the check digit is required
MarketRequired?Rule
United StatesYes, on every VIN the rule covers, and it must also appear on the manufacturer's transfer documents to the first owner49 CFR 565.13(c) and 565.15(c)
CanadaYes, position 9Motor Vehicle Safety Regulations, standard 115(3)(c)
European UnionNew vehicle types from July 6, 2022; all newly registered vehicles from July 7, 2026Implementing Regulation (EU) 2021/535, Annex II
EU before 2022No; the earlier rule used position 9 as part of the vehicle descriptorRegulation (EU) No 19/2011 (repealed July 6, 2022)

Motor vehicle agencies enforce it. California's DMV, for example, states that federal law requires it to refuse registration of a new vehicle, trailers included, whose VIN fails the check-digit test.

What number is each letter worth?

The formula works on numbers, so each letter is first converted to a value from 1 to 9. Digits keep their face value. The table groups the letters by value, which makes the pattern easier to remember: A to H count from 1 to 8, J to R start again at 1 (the values O and Q would have had are simply unused), and S to Z run from 2 to 9.

Letter values for the check-digit calculation (49 CFR 565.15, Table III)
Letter values for the check-digit calculation (49 CFR 565.15, Table III)
ValueLetters with this value
1A, J
2B, K, S
3C, L, T
4D, M, U
5E, N, V
6F, W
7G, P, X
8H, Y
9R, Z

No letter is worth 0, and several letters share a value. That sharing has a consequence covered below: swapping A for J, or S for 2, leaves the total unchanged.

What are the position weights?

Each position also has a weight. The value of each character is multiplied by the weight of its position. Position 9 has a weight of 0, so the check digit itself never affects the result.

Position weights (49 CFR 565.15, Table IV; identical in EU Reg. 2021/535)
Position weights (49 CFR 565.15, Table IV; identical in EU Reg. 2021/535)
Position1234567891011121314151617
Weight876543210098765432

Worked example: calculating a check digit step by step

This example uses the sample VIN printed in the U.S. regulation itself, 1G4AH59H?5G118341, where ? marks the unknown check digit. Working it through lets you confirm your method against the official answer.

Check-digit calculation for 1G4AH59H?5G118341
Check-digit calculation for 1G4AH59H?5G118341
PositionCharacterValueWeightValue × weight
11188
2G7749
344624
4A155
5H8432
655315
799218
8H81080
9?–00
1055945
11G7856
121177
131166
1488540
1533412
1644312
171122
Total411
  1. Add the products: 8 + 49 + 24 + 5 + 32 + 15 + 18 + 80 + 0 + 45 + 56 + 7 + 6 + 40 + 12 + 12 + 2 = 411.
  2. Divide by 11: 411 = 37 × 11 + 4, so the remainder is 4.
  3. The remainder is the check digit. A remainder of 10 would be written as X.
  4. The complete VIN is 1G4AH59H45G118341, which matches the answer in 49 CFR 565.15.

An example that gives X. Our decoding guide uses the example VIN 1HGCV1F37LA012345, whose weighted total is 271 (271 = 24 × 11 + 7, so the check digit is 7). Change position 16 from 4 to 5 and the total rises by 1 × 3 = 3, to 274. Since 274 = 24 × 11 + 10, the check digit becomes X: 1HGCV1F3XLA012355. One altered character changed the check digit, which is exactly what the system is designed to do.

How do you check a VIN's check digit yourself?

  1. Write the 17 characters in a row and confirm there is no I, O or Q.
  2. Convert each letter to its value using the table above; digits stay as they are.
  3. Multiply each value by its position weight, using 0 for position 9.
  4. Add the 17 products and find the remainder after dividing by 11.
  5. Compare: a remainder of 0–9 must equal the 9th character, and a remainder of 10 must appear as X.

The calculator on this page does the arithmetic for you, and our VIN decoder runs the same test on every VIN you enter. If you are writing your own code, a quick sanity test is a VIN of seventeen 1s: the weights add up to 89, and 89 divided by 11 leaves 1, so 11111111111111111 passes.

Check-digit calculator

runs in your browser

Enter a VIN to watch the calculation happen: each character becomes a value, is multiplied by its position weight, and the total is divided by 11. The arithmetic runs on this page; the VIN isn’t sent anywhere.

Spaces and dashes are ignored. Or load an example:

Waiting Enter all 17 characters

The table fills in as you type; the verdict appears once every position is filled. No VIN to hand? Load one of the examples above.

Result
Weighted sum–
Sum mod 11–
Calculated check digit–
Position 9 in the VIN–
Position-by-position calculation
Pos.Char.ValueWeightProduct
1WMI––8–
2––7–
3––6–
4VDS––5–
5––4–
6––3–
7––2–
8––10–
9Check––0–
10Year––9–
11Plant––8–
12Serial––7–
13––6–
14––5–
15––4–
16––3–
17––2–
Sum of products–

Position 9 has a weight of 0, so the check digit never counts towards its own total. Letters are converted with the letter values explained in this guide; I, O and Q have no value because they can’t appear in a VIN.

What does a check digit mismatch mean?

On a vehicle built for the U.S. or Canadian market, a failed check almost always means a transcription error: a character misread from a worn plate, mistyped into a form, or copied from a listing that got it wrong. NHTSA's decoder reports it as “Check Digit (9th position) does not calculate properly”. Re-read the VIN from the vehicle itself before drawing any conclusion.

If the VIN physically stamped or printed on a North American vehicle fails the check, treat it as a serious warning sign and have it inspected; see our guide to VIN cloning. On European-market vehicles built before the EU requirement, a mismatch means nothing, because position 9 was never meant to be a check digit. Our European VIN guide explains the difference.

Frequently asked questions

Which character in a VIN is the check digit?

The 9th character. It sits between the vehicle descriptor (positions 4–8) and the model-year code (position 10).

Why is the check digit sometimes X?

The calculation divides by 11, so the remainder can be anywhere from 0 to 10. A single character is needed for 10, and the rules use the letter X.

Do European VINs have a check digit?

Newer ones do. The EU made a check digit mandatory for new vehicle types from July 6, 2022 and for all newly registered vehicles from July 7, 2026. Many older European-market VINs have none, so they may fail the North American test without being wrong.

Does a correct check digit mean the VIN is real?

No. It shows the 17 characters are internally consistent. A cloned VIN copied from a real vehicle passes the test, so identity checks must compare the VIN locations on the vehicle with its title and records.

Can a VIN with a wrong check digit be registered?

Not as a new on-road vehicle in the U.S. California's DMV, for example, states that federal law requires it to refuse registration of a new vehicle whose VIN fails the check; the application is returned so the VIN can be re-verified against the vehicle.

Decode a VIN

NHTSA vPIC

Try it on a real vehicle: enter its 17-character VIN to see the manufacturer, model year, check-digit result and specifications on file with NHTSA, plus the recalls issued for its make, model and year.