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

LevelApprox. recoveryTypical 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."

When you want to practice, use the related DevCove tool — optional, not part of this lesson.

Open related tool

Back to course overview