Runs in your browser ยท unique check-digit solver
VIN fixer
A VIN from a photo, a worn plate or someone's handwriting won't validate? Paste it here. The fixer uses the check digit as a solver: it tries the classic misreadings (I→1, O→0, S→5, B→8, swapped characters) and shows every variant that passes.
How it works
Position 9 of every North American VIN is a checksum over the other 16 characters. A single misread character breaks it in a predictable way - so the fixer works backwards, testing the substitutions that people and cameras actually get wrong. The math, explained →
Always verify the suggestion
A passing checksum is strong evidence, not proof. Decode each candidate and compare the make, model and year against the actual vehicle before using it.
Fixing a whole list?
Run your list through the bulk VIN checker first - every failing row links back here with the VIN pre-filled.
Frequently Asked Questions
How the check-digit solver repairs a broken VIN
How can a VIN be fixed automatically?
The 9th character of a VIN is a checksum over the other 16 (ISO 3779). When a VIN fails that check, the fixer tries the corrections a human or a camera typically needs: I to 1, O and Q to 0, S to 5, B to 8, Z to 2, plus adjacent-character swaps. Any variant whose checksum then passes is a strong candidate for the real VIN.
Why does my VIN contain the letter O or I?
It cannot. The letters I, O and Q are banned from VINs precisely because they look like 1 and 0. If you see them, they were misread from the plate, photo or paperwork, the fixer replaces them automatically.
Is the suggested VIN guaranteed correct?
No, a passing checksum is strong evidence, not proof, and several candidates can pass. Decode each suggestion and compare make, model and year against the vehicle in front of you.
Is the VIN I paste stored?
No. The fixer runs entirely in your browser; nothing is sent to a server unless you click through to decode a suggestion.