QR Code Glossary

What Is QR Code Error Correction?

QR code error correction is the built-in redundancy that lets a QR code scan correctly even when part of it is dirty, damaged, or covered. Four levels exist under the QR standard: L, M, Q, and H, tolerating roughly 7%, 15%, 25%, and 30% damage respectively.

How Error Correction Works

When a QR code is generated, the encoder adds redundant data computed with Reed-Solomon coding, the same family of error correction used on CDs and in satellite transmission. The redundancy is spread across the pattern, so when a scanner reads a code with missing or corrupted modules, it can mathematically reconstruct the lost data from what remains. The scan either succeeds completely or fails; error correction never returns a partially wrong result, which is why a damaged code opens the right link or nothing at all.

The Four Levels

Level L (Low) tolerates about 7% damage and uses the least space, allowing the sparsest pattern. Level M (Medium), the common default, tolerates about 15%. Level Q (Quartile) tolerates about 25%. Level H (High) tolerates about 30% and produces the densest pattern, because more of the code is redundancy. The trade-off is straightforward: higher correction means better survival in the real world but more modules for the same data, which matters at small print sizes.

Choosing the Right Level

Match the level to the code's life. Screens and short-lived documents do fine at L or M. Anything printed for outdoor use, packaging that gets handled, or surfaces that get wiped and scratched deserves Q or H. Any code with an embedded logo must use H, because the logo deliberately covers part of the pattern and spends much of the damage budget before the code ever leaves the design file. Good generators, including QRForever, set the level automatically based on your choices.

Why This Enables Logos and Styling

Error correction is the technical foundation of branded QR codes. A centered logo covering up to about a fifth of the code sits within level H's 30% tolerance, leaving margin for real-world wear on top. The same budget absorbs printing imperfections, glare, and partial obstructions like a staple or a fold. The practical rule is to never spend the entire budget on design: a code that barely scans in perfect conditions fails in the field, so keep styling modest and always test the printed result.

Frequently Asked Questions

How much of a QR code can be damaged and still work?

Up to roughly 30% of the pattern can be unreadable and the code still scans, if it was generated at error correction level H. At the other levels the tolerance is about 25% for Q, 15% for M, and 7% for L. The reconstruction is all-or-nothing: if enough data survives, the scanner recovers the exact original content; if not, the scan simply fails, never returning a corrupted link. Two caveats matter in practice. The three large corner squares are position markers, not data, and damage to them can defeat scanning regardless of level. And damage combines with design choices: a logo plus heavy wear can exceed the budget together even when neither would alone.

Which error correction level should I use?

Use M for everyday digital uses like screens, emails, and documents, where damage is unlikely and a sparse pattern scans fastest. Use Q or H for print that lives in the real world: packaging, outdoor signage, stickers, menus, and anything handled, wiped, or weathered. Use H whenever a logo is embedded, since the logo itself consumes a large share of the damage tolerance. The cost of higher levels is a denser pattern, which only becomes a problem at very small print sizes or with very long encoded data. Dynamic QR codes sidestep that tension, because they encode only a short redirect, leaving plenty of room for H-level redundancy in a clean, scannable pattern.

Does error correction make the QR code bigger?

It makes the pattern denser rather than physically bigger: the same data at level H needs more modules than at level L, because nearly a third of the code becomes redundancy. The generator accommodates this by using a higher QR version, meaning a finer grid within whatever physical size you print. Density matters because finer modules are harder to scan at small sizes and distances. If your code must stay small, you can reduce density by encoding less data, which is exactly what dynamic codes do with their short redirect links, or by accepting a lower correction level when the environment is forgiving. For most uses, the density cost of H is invisible and the durability is worth it.

Can error correction fix a QR code that was printed wrong?

It can absorb moderate printing defects, such as slight ink spread, small gaps, minor smudging, or a modest scratch, because those look like damage and fall within the correction budget. It cannot fix systematic problems that corrupt the whole pattern: wrong colors with insufficient contrast, an inverted code with light modules on a dark background, a stretched or skewed print that distorts module geometry, a trimmed quiet zone, or a resolution so low that modules blur together. Those affect every module at once, which is beyond what redundancy can reconstruct. The reliable practice is to print a proof and scan-test it with several phones under imperfect light before committing to a full run.

Create Your Own QR Code Error Correction

QRForever supports 18+ QR code types with permanent dynamic codes that never expire and can be edited after printing — no reprinting required. Start your 7-day free trial, no credit card required.

More QR Code Definitions