Vehicle History
VIN Validator: The One Check That Needs No Database

The short version
- Character 9 of every VIN is a check digit — a checksum computed from the other sixteen, fixed by federal regulation at 49 CFR 565.15.
- It is the only part of a VIN verifiable with no database at all. The seventeen characters either satisfy their own arithmetic or they do not.
- Each character gets a value, each position a weight; add the products, divide by 11, and the remainder is the check digit. A remainder of 10 is written X.
- I, O and Q never appear in a VIN. They were excluded so nothing could be confused with 1 and 0, which is why a character that looks like one is a digit.
- Passing proves internal consistency and nothing else. A cloned VIN, copied off a real vehicle onto a stolen one, passes perfectly.
- What it catches is transcription — a swapped pair, a misread letter, a number somebody invented. That is most of what goes wrong, and none of what fraud does.
A VIN validator is arithmetic, not a lookup. It takes seventeen characters, runs a calculation on sixteen of them, and compares the answer with the seventeenth. Nothing is queried, which is why it returns a verdict instantly, and returns one whether or not the vehicle exists.
That makes it the odd one out. Everything else a VIN can tell you needs a record somewhere; the check digit needs only the number, and the scheme is published, so you can do it on paper.
What a validator is actually testing
Position 9 of a VIN is reserved. It holds a value calculated from all sixteen other positions, under a scheme written into 49 CFR 565.15, the federal rule governing VIN content.
So a VIN carries deliberate redundancy. Change any single character and the calculation over the remaining sixteen stops producing the character in position 9. The number no longer agrees with itself, and a validator says so — without reference to any vehicle, manufacturer or register.
Every character gets a number
Digits are worth themselves: a 4 is 4, a 0 is 0. Letters transliterate to values published in the regulation. A through H run 1, 2, 3, 4, 5, 6, 7, 8. The count resumes at J and runs J, K, L, M, N, P, R for 1, 2, 3, 4, 5, 7, 9. Then S, T, U, V, W, X, Y, Z take 2, 3, 4, 5, 6, 7, 8, 9.
The gap in the middle run is the tell. P is 7 rather than 6 because the counting passes through the slot where O would have sat and declines to use it.
I, O and Q are excluded from VINs altogether, kept out so they could not be mistaken for 1, 0 and 0 on a stamped plate or a handwritten form. The consequence for anyone reading a VIN off a car is exact: if it looks like an I it is a 1, and if it looks like an O or a Q it is a 0. Our guide to where the VIN is on a car covers the plates you will be reading it from.
Every position gets a weight
Values alone are not enough, because a plain sum would not notice two characters swapping places. So each position carries its own multiplier, running 8, 7, 6, 5, 4, 3, 2, 10, 0 and then 9, 8, 7, 6, 5, 4, 3, 2. Position 9 has a weight of 0, which is the elegant part: the check digit cannot be allowed to weigh itself, so whatever sits there contributes nothing.
Multiply each value by its weight, add the seventeen products, divide by 11 and keep the remainder. That remainder is the check digit. A remainder of 10 will not fit in one digit, so it is written X, which is why an X in position 9 is entirely normal.
Two examples you can follow on paper
Take the simplest case first: a VIN of seventeen ones. Every character is worth 1, so every product is just the weight, and the total is the sum of the weights — 89. Divide 89 by 11 and the remainder is 1, exactly the character sitting in position 9.
Now the standard worked example, 1M8GDM9AXKP042788. Against the weights above: 1 gives 8, M (4) gives 28, 8 gives 48, G (7) gives 35, D (4) gives 16, M gives 12, 9 gives 18, A (1) on a weight of 10 gives 10, and X in position 9 gives 0 whatever it is worth. Then K (2) gives 18, P (7) gives 56, 0 gives 0, 4 gives 24, 2 gives 10, 7 gives 28, 8 gives 24, and the last 8 gives 16. The products come to 351; divide by 11 and the remainder is 10, written X, which is what position 9 says.
What passing proves, and what it very much does not
This is the part that gets lost, so it is worth stating flatly. A VIN that passes its check digit has proved that seventeen characters are consistent with each other, and nothing else. Not that the vehicle exists, not that the number belongs to the car in front of you, and nothing whatever about mileage, damage or title status.
Most importantly, a cloned VIN passes perfectly. Cloning means copying a legitimate VIN off a real vehicle and applying it to a stolen one of the same description. The number is real, so of course it satisfies its own arithmetic — the arithmetic was never asked where the number came from. No validator can separate the honest car from the clone, and any tool implying otherwise is overselling.
Catching a clone takes what arithmetic cannot do: reading the VIN in several physical locations, matching each against the title, and running it against theft and title records. Our guide to checking whether a car is stolen covers the free lookups that do that work. Hold the check digit as a filter rather than a verdict: failure is final, while success only clears the first gate.
Why random VIN generators fail instantly
People want random VIN numbers for test data, a form field or a demonstration, and for less reasonable purposes too. Either way, seventeen characters picked at random will not satisfy the check digit except by luck. There are 11 possible remainders, so a random character in position 9 lands on the right one about one time in 11, before the excluded letters are even counted.
This is why a fake VIN number invented on the spot falls over at the first validator it meets. Nobody reciting a plausible string over the phone is doing modular arithmetic in their head. An honest generator instead computes the correct check digit for the sixteen characters it invented, producing a well-formed VIN that still corresponds to no vehicle at all.
The failure it was designed to catch
The check digit was not written to defeat criminals. It was written for handwritten forms, telephoned numbers and stamped plates read in bad light, and against those it works very well.
Positional weighting is what catches a transposition. Swap two adjacent characters and their values are multiplied by different weights, the total shifts, and the remainder changes with it. A plain sum would miss that entirely, because addition does not care about order. Single misreadings go the same way.
Using a validator properly
Run the check digit first, because it is free, instant and needs nothing. If it fails, go back to the source of the number before doing anything else — re-read the plate, ask the seller to photograph it, look for an I that is really a 1. A failed check digit is nearly always a transcription problem, and far cheaper to fix there than after paying for a report.
One caveat on scope: the check digit is mandatory for vehicles built for sale in the United States and is not universal elsewhere, so a genuine VIN from another market can fail a validator with nothing wrong with the car.
Once the number passes, the arithmetic is finished and the records begin. Our guide to what a VIN lookup returns sets out where that boundary sits, and you can decode a validated VIN and pull its title and recall record in the same pass.
Common questions
What is the VIN check digit?
The character in position 9, calculated from the other sixteen under 49 CFR 565.15. It is what lets a VIN be tested for internal consistency with no database at all.
How do I calculate it by hand?
Give each character its value, multiply by that position’s weight, add the products, divide by 11 and keep the remainder. A remainder of 10 is written X.
Can a fake VIN pass a validator?
Yes, if it was constructed rather than guessed — anyone can compute the correct check digit for sixteen invented characters. What fails is a number made up on the spot, since the odds of landing on the right remainder are about one in 11.
Why are there no I, O or Q in a VIN?
So they could not be confused with 1 and 0 when a VIN is stamped, printed or written by hand. If a character looks like an I it is a 1, and if it looks like an O or a Q it is a 0.
Does passing mean the VIN is genuine?
No. It means the seventeen characters are consistent with each other. A VIN cloned onto a stolen car passes exactly as the original does, because the arithmetic never asks where the number came from.
My VIN failed. What now?
Assume a transcription error, because that is usually what it is. Re-read the number off the vehicle rather than the advertisement, watch for characters mistaken for I and O, and confirm there are seventeen of them.
Sources and further reading
- NHTSA VIN decoder
- NHTSA recall lookup
- NHTSA odometer fraud
- NMVTIS (US Department of Justice)
- FTC used car buying guide
Recall, complaint and safety-rating figures on this page were retrieved from the federal databases above on August 19, 2026. Federal data changes — re-check any VIN before you rely on it.
Last updated August 28, 2026. Found something out of date or wrong? Tell us and we will correct it.