QR Code Error Correction: L, M, Q, H Levels Explained
QR codes have a superpower most people never think about: they can survive damage. Tear off a corner, smudge part of the surface, or cover a section — the code still scans. This resilience comes from error correction, built into every QR code by design.
Understanding error correction levels helps you make smarter choices when generating QR codes for print, packaging, or digital screens.
How QR Code Error Correction Works
QR codes use Reed-Solomon error correction, the same algorithm used in CDs, DVDs, and satellite transmissions. Here's the basic idea:
- The encoder takes your raw data and splits it into data codewords (each codeword = 8 bits).
- It then generates error correction codewords using polynomial division over a Galois field (GF(2⁸)).
- Both data and error correction codewords are written into the QR code.
If part of the code gets damaged, the scanner reads the surviving error correction codewords and reconstructs the missing data mathematically.
This means a QR code can tolerate up to a certain percentage of damage and still function perfectly.
The Four Error Correction Levels
QR codes offer four levels, each trading data capacity for resilience:
| Level | Name | Damage Tolerance | Data Capacity Impact |
|---|---|---|---|
| L | Low | 7% | Highest capacity |
| M | Medium | 15% | ~15% less than L |
| Q | Quartile | 25% | ~30% less than L |
| H | High | 30% | ~40% less than L |
Level L — Low (7%)
Best for: Digital displays, email signatures, clean environments.
Level L dedicates the fewest modules to error correction, leaving maximum room for data. A Version 10 QR code in numeric mode stores 652 digits at Level L but only 395 at Level H.
Use Level L when:
- The QR code will be displayed on a screen (no wear risk)
- You need maximum data capacity
- The environment is clean and controlled
Level M — Medium (15%)
Best for: General-purpose print, business cards, flyers.
Level M is the default in most QR code generators. It offers a solid balance — enough correction for typical print wear without a steep capacity penalty.
Use Level M when:
- Printing on standard paper or card stock
- The code won't face harsh conditions
- You want a reasonable safety margin
Level Q — Quartile (25%)
Best for: Outdoor signage, product packaging, industrial labels.
Level Q can survive significant damage — a quarter of the code can be missing or obscured. This makes it ideal for environments where codes face dirt, weather, or rough handling.
Use Level Q when:
- The code will be outdoors or in a warehouse
- It might get partially covered by labels or packaging seams
- You're printing on materials that can smudge (thermal paper, etc.)
Level H — High (30%)
Best for: Industrial marking, harsh environments, artistic QR codes with logos.
Level H sacrifices the most capacity but delivers maximum resilience. It's also the level you need when placing a logo or image in the center of a QR code — the lost data area is recovered by the strong error correction.
Use Level H when:
- The code will be etched, engraved, or stamped (imperfect surfaces)
- You're embedding a logo in the center
- The code faces extreme conditions (chemicals, abrasion, weather)
- Reliability is more important than data size
Capacity Trade-Offs: A Real Example
Here's how error correction level affects capacity for a Version 10 QR code:
| Data Mode | Level L | Level M | Level Q | Level H |
|---|---|---|---|---|
| Numeric | 652 | 532 | 395 | 395 |
| Alphanumeric | 399 | 326 | 242 | 242 |
| Byte | 272 | 222 | 165 | 165 |
| Kanji | 166 | 136 | 101 | 101 |
Key takeaway: Moving from L to H can cut capacity by 40% or more. If your data is long (like a vCard with full contact info), you may need a larger QR code version at higher correction levels.
When to Choose Each Level
Here's a quick decision framework:
- Clean digital display? → Level L
- Standard office print? → Level M
- Outdoor or industrial? → Level Q
- Logo overlay or extreme conditions? → Level H
Common mistake: Using Level H for everything "just in case." This inflates the QR code unnecessarily, making it denser and harder to scan from a distance. Match the level to the actual risk.
Error Correction vs. Error Prevention
Error correction is not a substitute for good design. Even at Level H, a QR code can fail if:
- The quiet zone (white border) is missing or too narrow
- Contrast between dark and light modules is too low
- The surface is curved or reflective, distorting the image
- The code is printed too small for the scanning distance
Rule of thumb: Print size should be at least 10× the scanning distance in cm. If someone scans from 20 cm away, the code should be at least 2 cm wide.
Related Guides
Try It Yourself
Want to see how error correction affects your QR code? Our free generator lets you choose the level and preview the result instantly.
👉 Generate a QR Code with Custom Error Correction — Free Tool