Free VIN Check Digit Calculator — ISO 3779 Validator with Math.
Instantly verify any 17-character VIN's check digit using the ISO 3779 algorithm. See the exact math for position 9 — every character, every weight, every product, and the final mod-11 result. Free, runs in your browser, no data sent to any server.
Verify a VIN's Check Digit
Paste a 17-character VIN and hit Verify. The calculator shows a Valid or Invalid verdict plus the full character-by-character math.
Runs in your browser · Nothing is uploaded or logged
Quick Answer
- What is a VIN check digit?
- The 9th character of a 17-character VIN is a check digit computed from the other 16 characters using the ISO 3779 weighted-sum algorithm. It exists so a single typo — mistyping
Das0, for example — can be detected mathematically before the VIN reaches any downstream system. - How do I calculate a VIN check digit?
- Transliterate each character to a number (digits are themselves; letters use the ISO 3779 map), multiply by the position weight (8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2), sum the products, and take the sum mod 11. If the result is 10, the check digit is
X; otherwise it is the digit itself. - Does every VIN have a valid check digit?
- Since 1981 in North America, yes — NHTSA requires it, and every US, Canadian, and Mexican VIN must satisfy the check-digit equation. VINs from other regions (Europe, Japan, Korea) are not legally required to carry a valid check digit and often use position 9 for other purposes.
How the Check Digit Works
The ISO 3779 check-digit algorithm is a weighted-sum mod-11 scheme, chosen so that most common transcription errors — single-character typos, adjacent transpositions — change the sum by a value that is not congruent to 0 mod 11 and therefore break the check.
- 1Transliterate. Convert each of the 17 characters to a number. Digits
0-9stay as themselves. Letters use a fixed map (see the table below). The lettersI,O, andQare not permitted anywhere in the VIN. - 2Weight. Multiply each transliterated value by the position weight. Position 1 has weight 8, position 2 has weight 7, and so on down to position 8 with weight 10. Position 9 (the check-digit slot itself) has weight 0. Positions 10 through 17 use weights 9, 8, 7, 6, 5, 4, 3, 2.
- 3Sum. Add all 17 products. Because position 9 has weight 0, the check-digit character does not contribute to its own sum — this makes the math well-defined even if position 9 is unknown or wrong.
- 4Mod 11. Divide the sum by 11 and keep the remainder (0 through 10). That remainder is the expected check digit: for 0-9 the digit itself; for 10 the letter
X. Compare it to the character actually at position 9 — if they match, the VIN passes.
The Weight Table & Character Values
Two lookup tables drive the entire algorithm. The first fixes the weight for each of the 17 positions; the second maps every VIN letter to its transliterated value.
| Position | Weight |
|---|---|
| 1 | 8 |
| 2 | 7 |
| 3 | 6 |
| 4 | 5 |
| 5 | 4 |
| 6 | 3 |
| 7 | 2 |
| 8 | 10 |
| 9 (check digit) | 0 |
| 10 | 9 |
| 11 | 8 |
| 12 | 7 |
| 13 | 6 |
| 14 | 5 |
| 15 | 4 |
| 16 | 3 |
| 17 | 2 |
| Letter | Value |
|---|---|
| A | 1 |
| B | 2 |
| C | 3 |
| D | 4 |
| E | 5 |
| F | 6 |
| G | 7 |
| H | 8 |
| J | 1 |
| K | 2 |
| L | 3 |
| M | 4 |
| N | 5 |
| P | 7 |
| R | 9 |
| S | 2 |
| T | 3 |
| U | 4 |
| V | 5 |
| W | 6 |
| X | 7 |
| Y | 8 |
| Z | 9 |
| I, O, Q | not allowed |
Need Valid Test VINs?
The companion Random VIN Generator produces batches of 17-character VINs with pre-computed check digits — perfect for building the test cases you want to feed into this validator.
Why VIN Check Digits Matter
Three real-world contexts where the check digit is the first line of defense.
Fraud detection
Title-washers and VIN cloners frequently transpose characters or invent VINs from scratch. A quick check-digit calculation catches the majority of manufactured VINs before they reach a DMV clerk or an insurance underwriter — for free, without querying any database.
DMV & NHTSA validation
State DMV title systems and the NHTSA VIN decoder API both compute the check digit as the first validation step. If it fails, the request is rejected before any lookup happens. Understanding the algorithm helps you diagnose exactly why a VIN is being rejected.
Insurance & dealer intake
Insurance quote engines, dealer CRM systems, and inventory feeds all validate the check digit at the input boundary. When a customer's VIN 'won't take,' a check-digit failure is the most common root cause — and this calculator tells you which character is wrong.
Common Check Digit Failures
Three scenarios that produce an "invalid check digit" verdict on an otherwise real VIN. Each one is fixable by carefully re-reading the source of the VIN.
Single-character typo
Mistyping a single character — 'D' as '0' or 'B' as '8' — almost always breaks the check digit. The weighted sum changes by a value that is very unlikely to still be congruent mod 11, so a single-char typo produces a bad check digit in over 90% of cases.
Transposition of two characters
Swapping adjacent characters — e.g. typing '1HG…AXR' as '1HG…ARX' — is the second most common failure. Because different positions have different weights, swapping usually shifts the sum by a value that fails the mod-11 test.
Confusing X (letter) with 0 or 1
The letter X is a legal VIN character and also the only non-digit that ever appears in position 9 (when the check digit computes to 10). Users sometimes swap X for the digit 0 or the letter O — which is illegal in VINs — creating both a format error and a check-digit failure.
Getting a "bad check digit" error? Compare each character of the VIN you typed against the source (windshield plate, door jamb sticker, or title document) — the mismatch is almost always a single character. The calculator's math trail highlights the exact position that fails.
Related VIN Tools
Pair the check-digit calculator with these free CarCheckerVIN utilities.
Always check the VIN before you buy
Our free report reveals accidents, title brands, odometer rollback, theft records, and open recalls in seconds.
VIN Check Digit Calculator — Frequently Asked Questions
The questions developers, dealers, and DMV clerks ask most about the ISO 3779 check digit.
What is the ISO 3779 check-digit algorithm?+
ISO 3779 is the international standard that defines the 17-character VIN. It specifies that the 9th character is a check digit computed from the other 16 characters using a weighted sum. Each character is transliterated to a numeric value (digits are themselves; letters use a defined map), multiplied by the position weight (8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2 for positions 1 through 17), and the products are summed. The sum mod 11 gives the check digit — 0 through 9 for values 0-9, and the letter 'X' for the value 10. The 9th position's own weight is 0, so it does not affect the sum.
Why is the letter I, O, or Q not allowed?+
The VIN alphabet excludes I, O, and Q because they are visually easy to confuse with the digits 1 and 0. Every VIN validator, decoder library, and OCR system assumes those three letters never appear — so allowing them would produce ambiguous reads on stamped VIN plates and paper title documents. If your VIN input contains any of these letters, the calculator flags it before running the check-digit math.
What are the position weights?+
The position weights for a 17-character VIN are 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2 — one per character position 1 through 17. Notice that position 9 has weight 0: this is the check-digit slot itself, and giving it weight 0 means its value does not feed back into its own computation. Positions 1-8 use descending weights 8 through 2 plus one 10; positions 10-17 use descending weights 9 through 2. The specific weights are chosen so that most common typos (single-character errors and adjacent transpositions) change the sum by a value that is not congruent to 0 mod 11.
What does an 'X' check digit mean?+
When the weighted sum's mod-11 result is 10, no single digit can represent it — so the ISO 3779 standard uses the letter 'X' as a special check-digit value. Roughly 1 in 11 valid VINs will have 'X' at position 9. It is completely normal and does not indicate anything unusual about the vehicle. It only appears in position 9 as a check-digit value; elsewhere in the VIN, 'X' is a regular character with transliterated value 7.
Are European or Japanese VINs validated the same way?+
No. The ISO 3779 check-digit requirement is enforced by the NHTSA in the United States (and implicitly in Canada and Mexico) but not by regulators in Europe, Japan, Korea, or China. VINs issued by European, Japanese, or Korean OEMs for their home markets may put any character in position 9. That means this calculator can and will flag those VINs as 'invalid check digit' — the VIN is still real and legal in its home market; it just does not follow the North American check-digit rule.
Can two different VINs share a check digit?+
Yes, and by design. There are 11 possible check-digit values (0-9 and X) but effectively infinite valid VIN prefixes, so many VINs share a check digit. What matters is that within a single VIN the character at position 9 satisfies the equation derived from the other 16 characters. The check digit is a consistency check on one specific VIN — not a unique identifier.
Is a valid check digit proof the VIN is real?+
No. A valid check digit only proves that no single-character typo has been introduced — it does not prove that the VIN was ever issued by an OEM. Someone can invent a 17-character string and compute a legal check digit for it (that is exactly what our sister random VIN generator does). To confirm a VIN corresponds to a real vehicle, run it through a decoder that queries the NHTSA vPIC database and an NMVTIS-sourced title lookup. A check-digit calculator is a fast client-side filter, not a fraud check on its own.
Verify Another VIN
Scroll back to the calculator to check another VIN — or generate a batch of valid test VINs with the companion tool.
Related VIN Checks
More tools to verify any vehicle's history