QR code · L, M, Q, H
QR error correction
Four levels — L, M, Q and H — trade payload capacity for tolerance of dirt, damage and glare.
Key facts
| Levels | L, M, Q, H |
|---|---|
| Approximate recovery | L 7% · M 15% · Q 25% · H 30% of codewords |
| Mechanism | Reed–Solomon block codes |
| Higher level costs | Payload capacity |
| Typical use | H for logos and harsh surfaces, M for general print |
How much damage each level survives
The four levels describe the share of codewords that can be restored, not the share of the printed area. A symbol at level H can lose nearly a third of its data codewords and still decode, which is why logos are usually overlaid at H. The same payload at H needs more modules, so the symbol grows or each module shrinks.
Reed–Solomon correction works per block. If damage is concentrated in one block beyond its correction budget, the whole symbol fails even when other blocks are intact.
Choosing a level
Use M for clean, well-lit print and screens. Move to Q or H when the code sits on packaging that scuffs, is printed small, is viewed at an angle, or carries a centered logo. Never raise the level beyond what the physical size can support: denser modules are harder for a camera to resolve than a sparser symbol with less correction.
Frequently asked questions
Does a higher error-correction level make the code scan faster?
Not necessarily. It makes decoding more tolerant of damage, but it also adds modules for the same payload. On a clean surface a smaller M symbol often scans faster than a dense H symbol.
Can I put a logo in the middle?
Yes, with level H and a logo that covers well under 30% of the symbol. Keep it centered and never cover the three finder patterns.
Which level should a Wi-Fi QR code use?
M is usually enough for a card or sticker. Use Q or H if the sticker will be handled, exposed to sunlight or printed small.