A Car VIN Decoder breaks down the 17-character vehicle identification number into its check digit, model year, country of origin, and manufacturer’s code for verification purposes.
Decode a Vehicle’s Model Year, Country of Origin, and Check Digit From Its 17-Character VIN
This tool parses any 17-character North American-format Vehicle Identification Number offline, verifying its position-9 check digit against the federal checksum formula and extracting the model year, country of assembly, and manufacturer from the VIN’s fixed structure. Used-car buyers, independent mechanics, insurance adjusters, and title or registration clerks use it to catch a typo or a fabricated VIN before relying on it for a purchase, a repair order, or paperwork filing.
Reading the VIN Off the Dashboard Plate or Door Jamb
Enter the 17-character VIN exactly as stamped, found on the driver’s-side dashboard (visible through the windshield) or the driver’s-side door jamb sticker. The tool returns a pass/fail check-digit result, the resolved model year, the country and manufacturer, and the 6-character production sequence. No unit conversion applies here — a VIN is a fixed 17-character alphanumeric string, not a measured quantity.
How the Position-9 Check Digit Is Calculated
The check digit occupies position 9 of the VIN and is a mandatory validation field under 49 CFR §565.15, the current U.S. federal regulation governing VIN content, and it matches the check-digit method in the international ISO 3779 VIN standard. (This requirement was originally issued in 1968 as FMVSS No. 115; NHTSA folded its text into Part 565 without substantive change in 1996, so §565.15 is the correct citation today.)
Each of the 17 characters is first transliterated to a numeric value. Digits keep their own value; letters map A=1, B=2, C=3 … H=8, J=1, K=2, L=3 … N=5, P=7, R=9, S=2, T=3 … Z=9. The letters I, O, and Q are illegal in any VIN position and are never assigned a value.
Each transliterated value is then multiplied by a fixed weight for its position:
$$w = [8,\ 7,\ 6,\ 5,\ 4,\ 3,\ 2,\ 10,\ 0,\ 9,\ 8,\ 7,\ 6,\ 5,\ 4,\ 3,\ 2]$$
Position 9 itself carries a weight of 0, since it’s the value being solved for, not an input to the sum.
$$\text{Sum} = \sum_{i=1}^{17} v_i \times w_i$$
$$\text{Check digit} = \text{Sum} \bmod 11$$
A remainder of 0–9 becomes that digit; a remainder of 10 is written as the letter X. The result is compared against whatever character actually sits in position 9. The single most common reason a real, correctly-copied VIN fails this test isn’t a typo — it’s that the vehicle predates the 1981 model year, when the 17-character standard didn’t yet exist. Pre-1981 VINs are shorter, manufacturer-specific, and were never assigned a check digit at all.
This calculation is only meaningful at exactly 17 characters; anything shorter or longer returns a length error rather than a checksum result. A string that happens to be 17 valid characters and mathematically passes — like a repeating pattern — proves only that the format is well-formed, not that a real vehicle carries it; the check digit detects transcription errors, it doesn’t confirm the VIN was ever issued.
How the Exact Model Year Is Resolved From Two Separate Positions
Position 10 alone is ambiguous: its year code runs A–Y (skipping I, O, Q, U, Z) then 1–9, and the cycle repeats every 30 years, so a code like “J” means 1988 or 2018 with no way to tell which from position 10 by itself. Per 49 CFR §565.15, position 7 resolves the ambiguity for passenger cars, multipurpose passenger vehicles, and trucks with a GVWR of 10,000 lb or less: a numeric position 7 means the vehicle is from the 1980–2009 cycle, and an alphabetic position 7 means it’s from the 2010–2039 cycle. Combining both positions turns two guesses into one answer.
Non-obvious edge case: that resolution rule only binds passenger and light-duty vehicles. Medium- and heavy-duty vehicles aren’t required to follow the 30-year, non-repeating VIN pattern rule, so the same VIN pattern can legitimately recur across several model years for those vehicles. For a heavy truck, positions 7 and 10 together still can’t guarantee a single exact year the way they can for a passenger car — a decode against the manufacturer’s own production records is the only way to pin it down.
How Country of Origin and Manufacturer Are Identified
The first three characters form the World Manufacturer Identifier (WMI), governed by ISO 3780 and, for U.S.-market vehicles, administered under 49 CFR Part 565 with SAE International as the international WMI maintenance agency. Character 1 designates the geographic region, character 2 (combined with character 1) narrows it to a country, and character 3 identifies the specific manufacturer or division.
This tool’s offline manufacturer match comes from a curated lookup table of common WMI codes — it is not the full SAE/NHTSA registry, which runs into the thousands of entries and changes as new codes are assigned. When the exact 3-character WMI isn’t in the local table, the tool falls back to a coarser first-two-character brand family guess and flags it as approximate. The “Verify with NHTSA” option queries the government’s live vPIC database directly for an authoritative, manufacturer-reported make, model, and trim rather than a table lookup.
VIN Structure by Character Position
VIN Region Codes by First Character
The first WMI character marks a broad geographic region per the ISO 3780 region-character assignments. This is a partial reference of commonly seen codes, not the complete registry.
| 1, 4, 5 | United States |
| 2 | Canada |
| 3 | Mexico |
| 6 | Australia |
| 7 | New Zealand |
| 8 | Argentina |
| 9 | Brazil |
| J | Japan |
| K | South Korea |
| L | China |
| S | United Kingdom |
| V | France / Spain |
| W | Germany |
| Y | Sweden / Belgium |
| Z | Italy |
Common VIN Entry Mistakes That Cause a Decode to Fail
Mistaking the letters O, I, or Q for the digits 0 and 1 — these three letters are illegal in every VIN position and will always trigger an invalid-character error, since no real VIN can contain them.
Transposing two digits while copying from a registration card or window sticker — a single mistyped character is usually caught by the check digit, but certain two-character swaps produce the same weighted sum and can slip through undetected.
Entering a chassis, frame, or engine number instead of the actual 17-character VIN — common on motorcycles, trailers, and pre-1981 vehicles, which used shorter, non-standardized identification numbers printed in a similar location.
VIN Decoding Questions Buyers and Shops Ask Most
What does it mean if a VIN’s check digit doesn’t match?
The 9th character failed the federal checksum test defined in 49 CFR §565.15, meaning at least one of the other 16 characters was likely mistyped or altered, or the string was never a real VIN. Recheck it against the dashboard plate or door jamb before assuming fraud.
Can this tool decode a VIN from outside North America?
Only partially. The check-digit rule and the 30-year model-year cycle are U.S./Canada-market conventions under 49 CFR Part 565; many domestic-market VINs elsewhere use different check-digit schemes or none at all, so a “failed” result abroad isn’t necessarily wrong.
Why does the tool show two possible model years for some VINs?
Position 10’s year code repeats every 30 years, so on its own it’s ambiguous. Position 7 resolves which cycle applies for passenger cars and light trucks, but that disambiguation rule doesn’t reliably apply to medium- and heavy-duty vehicles.
What’s the difference between the offline result and “Verify with NHTSA”?
The offline result is computed instantly from the VIN’s own structure, using the checksum formula and a limited local WMI lookup table. The NHTSA option queries the government’s live vPIC database for the manufacturer’s own reported make, model, and trim.
Does a passing checksum confirm a vehicle isn’t stolen or salvaged?
No. A valid check digit only proves the 17 characters are internally consistent and correctly formed. Title status, salvage history, and theft records require a separate vehicle history report checked against NMVTIS or similar databases.