Lesson 2
Error Correction Levels
L, M, Q, and H—and the redundancy trade-off.
QR codes include error correction codewords so scanners can recover when part of the symbol is dirty, creased, or covered.
The four levels
| Level | Approx. recovery | Typical use |
|---|---|---|
| L | ~7% | Maximum data capacity; clean, large display |
| M | ~15% | Default for everyday URLs and short text |
| Q | ~25% | Small print, partial obstruction |
| H | ~30% | Center logos, worn labels, harsh environments |
Higher correction adds redundancy. The symbol becomes denser for the same payload—long strings may fail to encode at high levels within a reasonable module count.
Trade-offs developers feel
- More data → prefer L or M
- Smaller print or partial cover → prefer Q or H
- Generation errors in browser tools → shorten text or drop a level
Percentages describe how much damage may be recoverable—not a guarantee under every camera and lighting condition.
Not a substitute for design
Error correction helps damaged symbols. It does not fix:
- Low contrast (light gray on white)
- Missing quiet zone (margin) around the code
- Extreme blur or glossy reflections
Key takeaway
Pick M when unsure. Raise to Q/H when physical damage or obstruction is likely—not because "more correction is always better."