VIN Check Digit Calculator

Stephanie Ben-Joseph headshot Stephanie Ben-Joseph

Vehicle paperwork and maintenance planning desk with a VIN checklist and calculator.
VIN checksum validation catches many transcription errors, but it does not prove vehicle identity or ownership history.

Introduction: validate a VIN by recomputing the 9th character

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

  1. Paste or type the full 17-character VIN into the VIN field.
  2. Select Validate to compute the expected check digit.
  3. 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.

The check digit formula and weight table in 49 CFR 565.15

The check digit is defined character by character in 49 CFR 565.15(c), the federal Vehicle Identification Number requirements administered by NHTSA. Each character is converted into a number (called transliteration, Table III of the rule), then multiplied by a fixed weight based on its position (Table IV). The products are summed, the total is divided by 11, and the remainder selects the check digit from Table V. ISO 3779 describes the same 17-character VIN structure but treats the check digit as an optional element; the mandatory arithmetic is the federal one.

  • Length: exactly 17 characters (49 CFR 565.13(b)).
  • Allowed characters: digits 0–9 and letters A–H, J–N, P, R–Z. The rule states the permitted set literally as [ABCDEFGHJKLMNPRSTUVWXYZ] plus [0123456789] in 565.13(g), so I, O and Q are excluded entirely — not just from the check digit, but from every position of every VIN.
  • Check digit position: character 9 (49 CFR 565.13(c)), carrying weight 0 in Table IV.
  • Modulo: divide the sum of products by 11; the remainder 0–10 maps to the check digit, and remainder 10 is written as X.

Let vi be the transliterated value of the character in position i, and wi the weight for that position. The weighted sum is:

S = i=1 17 vi × wi

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.

c = S mod 11

Written as a piecewise rule, the printed character in position 9 is:

d = { X if Smod11=10 Smod11 otherwise

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. That is why the calculator can recompute the expected digit from a VIN whose ninth character is already wrong.

Worked example: validating 1HGCM82633A004352 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.

Regulatory worked example: the sample calculation printed in 49 CFR 565.15

The rule contains its own worked example (Table VI). Reproducing it is the fastest way to confirm that a VIN tool has the weight vector and the transliteration table right, because a single transposed weight changes the answer. The sample VIN is 1G4AH59H45G118341, and every product below was recomputed by this page and matched to the printed regulation line by line.

49 CFR 565.15 Table VI reproduced and re-verified
Position Character Assigned value Weight factor Product
11188
2G7749
344624
4A155
5H8432
655315
799218
8H81080
94 (check digit)400
1055945
11G7856
121177
131166
1488540
1533412
1644312
171122
Sum of products S411
411 ÷ 1137 remainder 4
Check digit for position 94

Note the two details that most incorrect implementations get wrong. First, the eighth weight is 10, not 1 — it is the only double-digit weight in the vector. Second, position 9 carries weight 0, so a VIN with a wrong check digit still produces the same expected digit; the algorithm never reads its own answer. The regulation expresses the final step as a fractional remainder (4/11 ≈ 0.364) rather than as a modulo operation, but the two are identical: multiply the fractional remainder by 11 and you recover the integer 0–10 that Table V maps to a digit or X.

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: 8 vs B, 5 vs S, 2 vs Z, and 1 vs 7 can 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.

Transliteration, letters to numbers (49 CFR 565.15 Table III)

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

Position weights, 1–17 (49 CFR 565.15 Table IV)

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. Table IV of the regulation prints the ninth entry as “(check digit)” rather than a number, and the sample calculation in Table VI shows that entry multiplied out as 0.

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 Fails on purpose: the recomputed digit is 7, so the calculator reports a mismatch — a useful demo
1M8GDM9AXKP042788 X Verified example showing X in the 9th check-digit position

Practising the algorithm on the VIN Inspector bench

Under the calculator you will find VIN Inspector, an interactive bench that renders a VIN as 17 illuminated character cells and walks the checksum in front of you. It is not a decoration: it runs exactly the same arithmetic as the calculator above, so anything you learn on the bench transfers directly to a real VIN plate.

Each round opens with an accumulation sweep. The cells light up from left to right, and as each one is counted the bench shows its transliterated value, its weight factor, the product, and the running total. Position 9 visibly contributes nothing, which is the clearest way to internalise why the printed check digit cannot influence its own calculation. Two round types alternate:

  • Compute rounds hide the ninth character and ask you to place the correct check digit from the set 0–9 and X. You commit an answer only after the sweep has shown the full weighted sum, so the choice is a real modulo-11 decision rather than a guess.
  • Tamper rounds hand you a VIN in which exactly one character outside position 9 has been altered, so the printed check digit no longer reconciles. You pick a position and a replacement character, and the bench tells you live whether that substitution restores the checksum.

The tamper rounds carry the honest lesson that most VIN pages skip. A failing checksum proves that something changed; it does not say where. Because 11 is prime and every weight except position 9 is non-zero, almost every position admits some single-character substitution that reconciles the sum, and the bench counts them for you at the end of each round. Typically 13 to 16 of the 16 weighted positions can be "fixed" on paper. That is precisely why a check digit is an error-detection device and not an anti-fraud device: a forger who recomputes position 9 after altering the VIN produces a string that passes this test perfectly.

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.
  • The check digit is a North American requirement: position 9 is a mandatory check digit only for vehicles sold in the United States (49 CFR 565) and Canada. ISO 3779 lists it as optional, so a genuine VIN from a vehicle built for Europe or another market can fail this test without being wrong — treat a failure on a non-North-American VIN as inconclusive.

Sources: every constant used by this page was checked character by character against the federal rule, not against secondary web pages. 49 CFR Part 565 — Vehicle Identification Number Requirements (NHTSA) supplies the 17-character length and the position-9 check digit (§565.13(b)–(c)), the permitted character set [ABCDEFGHJKLMNPRSTUVWXYZ0123456789] that excludes I, O and Q (§565.13(g)), the assigned values A=1 … Z=9 (§565.15(c)(1), Table III), the weight factors 8 7 6 5 4 3 2 10 0 9 8 7 6 5 4 3 2 (§565.15(c)(2), Table IV), and the remainder-to-digit map in which 10/11 becomes X (§565.15(c)(4), Table V). The certified text was read from the GPO govinfo copy of 49 CFR 565.15, and the regulation’s own sample calculation (Table VI, VIN 1G4AH59H45G118341, sum 411, remainder 4) reproduces exactly in the table above. ISO 3779 defines the same 17-character VIN structure internationally but makes the check digit optional. For attribute decoding beyond the checksum, use the NHTSA vPIC VIN decoder. Last reviewed August 2026.

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.

VIN check digit questions drivers and buyers ask

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. The questions below cover what the result means in practice.

What does the VIN check digit tell you?

The 9th character of a 17-character VIN is a check digit. Recomputing it using ISO 3779 helps detect common transcription errors (typos and many transpositions). A match means the VIN is internally consistent; a mismatch suggests the VIN was copied incorrectly or is invalid.

Which characters are not allowed in a VIN?

VINs do not use the letters I, O, or Q because they can be confused with 1 and 0. Valid VIN characters are A–H, J–N, P, R–Z, and digits 0–9.

What does an X check digit mean?

ISO 3779 computes a remainder modulo 11. If the remainder is 10, the check digit is represented as the letter X.

Do all VINs have a valid check digit?

No. The check digit is mandatory for vehicles sold in the United States and Canada under 49 CFR 565 and the Canadian safety regulations, but ISO 3779 lists it only as an option. Many vehicles built for Europe and other markets carry a genuine VIN that fails this test, so treat a failing result for a non-North-American vehicle as inconclusive rather than proof of an error.

What should I do if my VIN fails validation?

Re-enter the VIN carefully, confirm it is exactly 17 characters, and check for the forbidden letters I, O, and Q. Compare the dashboard plate, the door-jamb label, and the paperwork. If it still fails and the vehicle was sold in North America, the string is almost certainly mistyped or misread - use the per-character breakdown table to spot which position looks wrong.

Does a pass mean the VIN is real?

Not necessarily. A pass means the VIN is mathematically consistent with the check digit rule, and a fabricated VIN can be constructed to pass the checksum. For high-stakes decisions such as a purchase, insurance, or 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.

Enter exactly 17 characters. Allowed: A–H, J–N, P, R–Z, and 0–9. Not allowed: I, O, Q. Spaces, hyphens and lower case are cleaned up automatically.

Enter a 17-character VIN to compute the check digit.

Status messages will appear here.

A per-character checksum breakdown appears here after you validate a VIN.

VIN Inspector: an interactive check-digit bench

Work the 49 CFR 565.15 checksum by hand on generated VINs. In a compute round the ninth character is hidden and you place the correct check digit. In a tamper round one character outside position 9 has been altered, and you pick a position and a replacement character that reconciles the printed digit. Each round opens with an accumulation sweep that lights up every cell with its transliterated value, its weight factor and the running weighted sum, using the same tables as the calculator above.

Round 1 / 8 Score 0 Streak 0 Best 0

Loading the bench.

  • Left Right move the cell cursor in a tamper round, or move the check-digit selector in a compute round.
  • Up Down cycle the candidate character for the selected cell in a tamper round.
  • Enter or Space commits the current answer. R replays the accumulation sweep.
  • Pointer or touch: tap a cell to select it, tap the selector strip to choose a character, then tap the Commit pad on the bench.

Embed this calculator

Copy and paste the HTML below to add the VIN Check Digit Calculator (49 CFR 565) — Validate a 17-Char VIN to your website.