Why Damaged QR Codes Still Scan: Error Correction Levels Explained
Why does a damaged QR code still scan? It's QR code error correction, and every code is built at one of four levels: L, M, Q or H.
A QR code carries extra check codewords on purpose. Using Reed–Solomon error correction (the same family of maths that kept scratched CDs playing), a scanner can rebuild missing or wrong bytes. Level L recovers about 7% of the codewords, M about 15%, Q about 25% and H about 30%. We show why those percentages count codewords, not area, why a covered finder pattern can kill any code, how a version 1 code holds 17 bytes at L but only 7 at H, and which level to pick for print, screens, worn surfaces or a QR code with a logo.
A QR code can be scratched, stained, or partly covered, and still scanned.
That's not luck.
It's error correction, and every code is built at one of four levels.
Error correction means the code carries extra data on purpose.
Alongside your message, it stores check code words.
If some of your message gets damaged, those check code words let the scanner rebuild it.
The maths behind it is called Reed-Solomon.
It's the same idea that kept scratched CDs playing.
There are four levels.
Level L can recover about 7% of the code words, M about 15, Q about 25, and H about 30%.
But those percentages count code words, not area.
One small stain can touch several code words at once.
And some parts can't be repaired at all.
Cover a finder pattern or the format strip, and the code can fail whatever its level.
Extra protection also takes up room.
A version 1 code, 21 modules wide, holds 17 bytes at level L.
At level H, the same grid holds only 7, so the same link at H needs a bigger, denser code.
So which level should you choose?
Level M is a sensible default for most print.
L keeps clean, screen-only codes as small as possible, and Q or H suit codes that will get worn, or that carry a logo on top, because a logo uses up part of the error correction budget.
So does higher error correction always make a code easier to scan?
Not always, it survives more damage, but the code gets denser.
In clean conditions, a lower level with bigger modules can scan more easily.
That same error correction is what lets a code carry a picture and still scan.
AriaQR turns any image into a QR code that still looks like your image, tested on real scanners before you pay.
Make yours at ariaqr.com.
A QR code can even look like a picture and still scan.
