Validate a VIN by recomputing the 9th character (ISO 3779)
A Vehicle Identification Number (VIN) is a standardized 17-character identifier used across many countries for registration, insurance, recalls, service records, and vehicle history reports. Because VINs are frequently copied from paperwork, photos, or dashboards, they are prone to transcription errors. ISO 3779 addresses this by defining a checksum rule: the 9th character is a check digit computed from the other characters.
This page helps you validate a VIN by recomputing the check digit and comparing it to the VIN’s 9th character. If the digits match, the VIN is internally consistent under the ISO 3779 algorithm. If they do not match, the VIN likely contains a typo, a misread character, or an invalid character.
What this calculator can (and cannot) confirm
A passing result means the VIN’s characters satisfy the ISO 3779 checksum rule. It does not prove the VIN belongs to a specific vehicle, that the vehicle is legitimate, or that the VIN has not been copied from another vehicle. The check digit is an error-detection mechanism, not an authentication mechanism.
A failing result is a strong signal that something is wrong with the string you entered. Common causes include: swapping two characters,
confusing similar-looking characters (for example, 5 and S), missing a character, or including a forbidden letter.
If you are reading the VIN from the vehicle, compare the VIN plate, the dashboard view, and the registration paperwork.
How to use the VIN check digit calculator
- Paste or type the full 17-character VIN into the VIN field.
- Select Validate to compute the expected check digit.
- Read the result summary. If there is a mismatch, compare the expected digit to the VIN’s 9th character.
Tip: VINs use only A–H, J–N, P, R–Z and digits 0–9. The letters I, O, and Q
are not permitted because they can be confused with 1 and 0. If your source contains I/O/Q, it is either not a VIN,
or it has been copied incorrectly.
Formula and assumptions (ISO 3779)
ISO 3779 defines a repeatable checksum process. Each character is converted into a number (called transliteration), then multiplied by a fixed weight based on its position. The products are summed, and the remainder modulo 11 determines the check digit.
- Length: exactly 17 characters.
- Allowed characters: digits 0–9 and letters A–H, J–N, P, R–Z (no I, O, Q).
- Check digit position: character 9 (weight 0).
- Modulo: remainder mod 11; remainder 10 is represented by X.
Let vi be the transliterated value of the character in position i, and wi the weight for that position. The weighted sum is:
The check digit is:
Plain-text formula: transliterate letters to numbers; multiply each position by weights [8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2]; sum products; remainder = sum % 11; check digit is X if remainder is 10, otherwise the remainder.
If c = 10, the check digit is X; otherwise it is the digit 0–9. The 9th position has weight 0, which means the printed check digit does not influence the sum; it is only compared at the end.
Worked example (step-by-step)
Example VIN: 1HGCM82633A004352. The 9th character is 3. The calculator recomputes the expected check digit by applying
transliteration and weights to all 17 positions.
A simplified walkthrough looks like this:
- Write the VIN as 17 positions (1 through 17).
- Convert each character to a number: digits keep their value; letters use the ISO transliteration mapping.
- Multiply each value by the position weight: 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2.
- Add the products to get a total sum S.
- Compute S mod 11. If the remainder is 10, the check digit is
X; otherwise it is the remainder as a digit.
For 1HGCM82633A004352, the remainder is 3, so the expected check digit is 3. Because the VIN’s 9th character is also 3,
the VIN passes the check-digit test.
If you change only the 9th character (for example, replace it with 5), the recomputed digit would still be 3, and the calculator
would report a mismatch. This is exactly what the check digit is designed to catch: a single-character error in a copied VIN.
Practical tips for avoiding VIN entry errors
When a VIN fails validation, it is often due to a simple reading mistake. These checks can save time before you request records or submit forms:
- Confirm the length: VINs are always 17 characters. If you have 16 or 18, something was dropped or added.
- Look for forbidden letters: I, O, and Q are not used. If you see them, re-check the source.
- Watch for look-alikes:
8vsB,5vsS,2vsZ, and1vs7can be misread depending on font. - Use uppercase: VINs are typically printed in uppercase; this calculator automatically uppercases your input.
- Compare multiple sources: the dashboard VIN, door jamb label, and paperwork should match exactly.
Transliteration and weights reference
The tables below summarize the letter-to-number mapping used by ISO 3779 and the position weights used in the checksum. Digits 0–9 keep their numeric value. The mapping is intentionally limited to avoid ambiguous characters.
Reference tables
Transliteration (letters to numbers)
Transliteration assigns a numeric value to each allowed letter. If a character is not in the allowed set, the VIN is invalid for ISO 3779 validation. The calculator will reject it before attempting the checksum.
| Character(s) | Value | Notes |
|---|---|---|
| A, J | 1 | Letters transliterate to numbers |
| B, K, S | 2 | Letters transliterate to numbers |
| C, L, T | 3 | Letters transliterate to numbers |
| D, M, U | 4 | Letters transliterate to numbers |
| E, N, V | 5 | Letters transliterate to numbers |
| F, W | 6 | Letters transliterate to numbers |
| G, P, X | 7 | Letters transliterate to numbers |
| H, Y | 8 | Letters transliterate to numbers |
| R, Z | 9 | Letters transliterate to numbers |
| Digits 0–9 | 0–9 | Digits keep their numeric value |
ISO 3779 position weights (1–17)
Weights by position are: 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2. The 9th position has weight 0 so the printed check digit does not affect the sum.
In other words, the algorithm uses every character to compute the checksum, but the check digit itself is treated as neutral during the calculation. This design makes it possible to validate the check digit by recomputing it from the rest of the VIN.
Sample VIN checks (examples)
The examples below illustrate typical outcomes. They are useful for testing the calculator interface, but they are not a substitute for verifying a VIN from an authoritative source.
| VIN | 9th character | Example note |
|---|---|---|
1HGCM82633A004352 |
3 | Commonly used example VIN that passes the check digit test |
1FTFW1ET5EFA12345 |
5 | Example format; validate to confirm internal consistency |
1M8GDM9AXKP042788 |
X | Verified example showing X in the 9th check-digit position |
Limitations and interpretation
The ISO 3779 check digit is a practical, lightweight way to detect errors, but it has limits. Understanding those limits helps you interpret results correctly.
- Error detection, not identity: a valid check digit does not prove ownership, authenticity, or that the VIN matches a specific vehicle.
- Not a full decoder: this page does not decode model year, plant, engine, trim, or manufacturer-specific attributes.
- Not a database lookup: the calculator does not query DMV, insurance, recall, or history databases; it only checks the checksum rule.
- Some errors can still slip through: while the check digit catches many common mistakes, no checksum catches every possible change.
- Regional differences: some jurisdictions or vehicle types may use additional validation rules beyond ISO 3779.
If you need more than checksum validation, consider using an official VIN decoder or a trusted vehicle history provider. Use this calculator as a fast first pass to reduce avoidable errors before you submit forms or purchase reports.
Frequently asked questions (plain-language)
The questions below expand on the short FAQ schema in the page header. They are written for people who want to understand what the result means in practice.
Introduction: Why is the check digit the 9th character?
ISO 3779 places the check digit at position 9 to keep it in a consistent location across manufacturers. During checksum computation, that position uses weight 0, so the check digit does not influence the sum. This makes validation straightforward: compute the expected digit from the VIN and compare it to the 9th character.
Can the check digit be a letter?
Yes. The check digit is usually a digit 0–9, but it can be X. The X represents the value 10 when the weighted sum remainder modulo 11 equals 10.
No other letters are used as check digits in the ISO 3779 scheme.
What should I do if my VIN fails?
Start by re-checking the VIN source and re-entering it carefully. Confirm the VIN is 17 characters and contains no I, O, or Q. If you copied it from a photo, zoom in and verify each character. If the VIN still fails, the source may be incorrect, or the VIN may not follow ISO 3779 rules for the context you are using.
Does a pass mean the VIN is “real”?
Not necessarily. A pass means the VIN is mathematically consistent with the check digit rule. A fabricated VIN can be constructed to pass the checksum. For high-stakes decisions (purchase, insurance, title transfer), use official documentation and trusted verification channels.
Continue your automotive planning with the vehicle registration fee calculator, car cost of ownership calculator, and the car finance vs cash calculator.
Arcade Mini-Game: VIN Check Digit Calculator Calibration Run
Use this quick arcade run to practice separating useful scenario inputs from common planning mistakes before you rely on the calculator output.
Start the game, then use your pointer or arrow keys to catch useful inputs and avoid bad assumptions.
Status messages will appear here.
