Check Digit Calculator & Validator
Check or compute the last digit of a card number, ISBN, EAN or UPC — and see exactly which typing mistakes each scheme can and cannot catch.
—
What this number would catch
Every wrong digit and every neighbouring swap, actually tried against your number.
How the schemes compare
Counted by trying every one of the 45 digit pairs against each scheme, not quoted from anywhere.
Convert
What a check digit is not
- A check digit catches TYPING MISTAKES. It is not security and it is not proof of anything existing. Any sixteen digits ending in the right Luhn digit will pass, which is why a card number validating here says only that the digits are self-consistent — not that there is an account behind them.
- Luhn catches every single wrong digit, and every swap of two neighbouring digits EXCEPT one. Swap a 0 and a 9 that sit next to each other and it slips straight through, because doubling 0 gives 0 and doubling 9 gives 18 whose digits add to 9 — so the pair contributes the same either way round. The first example contains a 0 beside a 9, so you can watch it happen.
- ISBN-10 works modulo 11, and because 11 is prime it catches every single wrong digit AND every transposition, adjacent or not. It pays for that with the letter X: a remainder of ten needs a symbol, and there is no single digit for ten.
- ISBN-13, EAN-13 and UPC-A are all the same scheme, and all miss FIVE pairs rather than one: 0 and 5, 1 and 6, 2 and 7, 3 and 8, 4 and 9 — every pair five apart, because the weights are 1 and 3 and the difference those produce is a multiple of ten only in those cases. That is counted here by trying all ninety swaps against each scheme, not quoted from anywhere.
- So ISBN-13 is a step backwards mathematically. It uses the same weights as a retail barcode, modulo 10, which is more convenient for the barcode system and catches strictly fewer mistakes than the scheme it replaced. Books moved to it in 2007 for compatibility, not for accuracy.
- None of this is taken on trust. The tool tries every single-digit change and every neighbouring swap against whatever number you type, and reports how many slipped through — so the comparison is a count from your own number rather than a claim about schemes.
How to use
- Pick the scheme and paste the number.
- See whether the last digit checks out, and what it should be.
- Read how many typing mistakes that scheme would actually catch.
Frequently asked questions
Does a valid card number mean the card is real?
No, and this is the misunderstanding worth clearing up. A check digit catches typing mistakes and nothing else. Any sixteen digits ending in the right Luhn digit will pass, so validating here tells you the digits are self-consistent — not that an account exists behind them. It is arithmetic, not a lookup and not security.
Is there a mistake Luhn cannot catch?
Exactly one kind. Swap a 0 and a 9 sitting next to each other and it slips straight through, because doubling 0 gives 0 and doubling 9 gives 18 whose digits add to 9 — the pair contributes the same either way round. Every other single wrong digit and every other neighbouring swap is caught.
Which scheme catches the most?
ISBN-10, and it is not close. It works modulo 11, and because 11 is prime it catches every single wrong digit and every transposition, adjacent or not. Luhn misses one pair. ISBN-13, EAN-13 and UPC-A each miss five: 0 and 5, 1 and 6, 2 and 7, 3 and 8, 4 and 9 — every pair five apart.
Then why did books move to ISBN-13?
For compatibility with the retail barcode system, not for accuracy. ISBN-13 uses the same weights as EAN-13, so a book scans like any other product. That convenience cost a mathematically better check digit — and the X, which existed only because a remainder of ten needs a symbol and no single digit means ten.
How do you know it misses those and no others?
By trying them. The tool works through every one of the 45 digit pairs against each scheme and counts what gets through, and does the same for every single-digit change on whatever number you type. The figures shown are counts from that run, not values copied out of a reference.
Can it tell me which digit I mistyped?
No, and neither can any check digit. It can only say that the digits no longer agree with each other. It reports what the final digit would have to be for the rest to be right, which is useful — but if the mistake was earlier in the number, that is not where the mistake is.
🔒 This tool runs entirely in your browser. Nothing you enter is uploaded, logged, or stored.