Skip to main content

QR error correction

QR error correction: how much damage a code survives.

Every QR code carries redundant data so that it still scans when part of it is dirty, torn or covered. The amount is set by one of four levels (L, M, Q or H) chosen when the code is generated, and the level is encoded into the pattern itself rather than decided by the scanner.

The four levels.

L (Low)Recovers about 7% of data — the smallest code
M (Medium)About 15% — the usual default
Q (Quartile)About 25%
H (High)About 30% — the largest code for the same content
StandardISO/IEC 18004
Quiet zone4 modules of clear space on every side

Higher correction means more modules for the same URL, so the printed code either grows or its modules shrink. On a business card, a smaller module is harder to scan than a slightly less redundant code, which is why L or M usually outperforms H at small sizes.

Where this shows up.

Level H is what allows a logo in the middle of a code: the covered area falls inside the recoverable 30%. That trick costs you module size, so it belongs on a poster rather than on a 2 cm square where the modules are already at the limit of what a camera can resolve.

The common mistake.

Cropping away the quiet zone to fit a layout. Four modules of clear space on all four sides is part of the specification, not a margin suggestion, and a code pressed against a border fails on a surprising number of phones.

Sources.

Every figure above is from one of these. They are the standard, the registry or the platform’s own documentation — read them rather than take our word for it.

Keep reading.