QR Code Error Correction Levels Explained
QR codes support four error correction levels, L (about 7% of the code can be damaged and still scan), M (about 15%), Q (about 25%), and H (about 30%), with higher levels tolerating more damage, dirt, or obstruction at the cost of a denser pattern for the same data. QRSen defaults to H for print reliability and automatically switches to H whenever a logo is added.
Built into every QR code is redundant data, calculated using Reed-Solomon error correction, that lets a scanner reconstruct the original content even if part of the pattern is missing, scratched, faded, or covered. The percentage attached to each level, roughly 7, 15, 25, or 30 percent, describes how much of the total code area can be unreadable before the scan actually fails.
That redundancy isn't free, it takes up space in the grid alongside the actual data, so a higher error correction level means more of the pattern is dedicated to redundancy rather than content, which makes the code denser and, for a fixed amount of data, physically larger or made up of smaller, more tightly packed modules. Choosing L over H for the same content produces a visibly simpler, sparser-looking pattern.
L is reasonable for a code that will only ever be displayed cleanly on a screen with no risk of damage or dirt. M is a common general-purpose default. Q and H matter most anywhere the code faces real-world wear, outdoor signage exposed to weather, product packaging that gets scuffed in shipping, or anywhere a logo or design element sits on top of part of the pattern, since that overlay is effectively the same kind of damage the error correction needs to compensate for.
Because most QR codes end up printed and handled in some way, and because a logo overlay is a popular customization that covers real portions of the grid, QRSen defaults to H and automatically raises the level to H the moment a logo is added, regardless of what level was selected before, to make sure the added visual element doesn't push the code past what it can recover from.
It's worth remembering that error correction is a recovery mechanism, not a substitute for good print practices — a code sized correctly, printed with strong contrast, and given proper quiet-zone margin at level M will generally outperform a poorly sized, low-contrast code even at level H. Error correction buys tolerance for damage that happens after the code is otherwise well made; it doesn't compensate for basic sizing or contrast mistakes made at the design stage.