How to use the vin check digit validator
- Paste the VINs, one per line. Spaces are ignored and letters can be in either case.
- Check that each one has 17 characters. The letters I, O and Q are never used, so the page rejects them.
- Read the result for each VIN: the digit given in position 9, the digit the formula expects and the weighted sum.
- Use the year code column to see the two model years that the tenth character can mean.
Formula
values: digits keep their value, A to H = 1 to 8, J to N = 1 to 5, P = 7, R = 9, S to Z = 2 to 9
sum = 8 v1 + 7 v2 + 6 v3 + 5 v4 + 4 v5 + 3 v6 + 2 v7 + 10 v8 + 0 v9 + 9 v10 + 8 v11 + 7 v12 + 6 v13 + 5 v14 + 4 v15 + 3 v16 + 2 v17
check digit = sum mod 11, written X when the remainder is 10
Position 9 has weight 0 because it holds the check digit itself. The remainder after dividing by 11 is the expected digit, and a remainder of 10 is written as the letter X.
Checking 1M8GDM9AXKP042788
Replace the letters with their values, multiply by the 17 weights and add. For 1M8GDM9AXKP042788 the weighted sum is 351. Dividing by 11 leaves 10 (351 = 31 x 11 + 10), so the expected check digit is X, which matches the ninth character.
The all ones VIN 11111111111111111 adds the weights 8 + 7 + 6 + 5 + 4 + 3 + 2 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 = 89 plus nothing for position 9, and 89 leaves a remainder of 1, so its check digit is 1. Changing the X in the first example to 1 makes it fail while the sum stays 351.
Where the check digit is required
The check digit rule is required on vehicles built for North America. VINs from other regions often do not follow it, so a failing result on a vehicle made elsewhere does not mean the VIN is wrong.
A passing VIN only shows that the 17 characters are consistent. It does not show that the vehicle exists or that the VIN belongs to the vehicle in front of you.
Reading the year code
Position 10 is a code for the model year that repeats every 30 years: A is 1980 or 2010, B is 1981 or 2011, and so on through Y for 2000 or 2030, then 1 for 2001 or 2031 up to 9 for 2009 or 2039. The letters I, O, Q, U, Z and the digit 0 are not used.
The page shows both years because the code alone cannot say which cycle it belongs to. Other positions of the VIN, or the vehicle itself, settle it.
Assumptions and limits
- A VIN has exactly 17 characters and never uses the letters I, O or Q.
- The transliteration table and weights follow the North American rule.
- Plant, manufacturer and model details are not decoded.
- Nothing you type is stored or sent anywhere.
- Up to 100 VINs are read at once.
Frequently asked questions
Why does my VIN fail the check?
Either a character was mistyped, the VIN comes from a region that does not use the North American rule, or the document itself has an error. Compare each character with the dashboard plate or the title.
Why is the check digit sometimes an X?
The remainder after dividing by 11 can be 10, which needs two characters. The standard writes it as the letter X so the check always fits in one position.
Can two different VINs have the same check digit?
Yes. There are only 11 possible check characters and a huge number of VINs, so many share one. The check catches most typing mistakes, not every possible difference.
Does the year code tell me the exact model year?
It gives two possible years 30 years apart. Cars of the older cycle would be very old, so context usually settles it, but the code by itself cannot.