4 min read

QR Code Error Correction Levels Explained (L, M, Q, H)

When you scan a QR code printed on a crinkled coffee cup, a scratched billboard, or a business card with a brand logo right in the middle, how does your phone's camera still manage to read it instantly? The answer lies in Reed-Solomon Error Correction.

Error Correction is an ISO/IEC 18004 standardized mechanism built directly into every QR code pattern that enables smartphones (iOS Camera, Android Google Lens, and industrial scanners) to reconstruct missing or distorted data blocks without failing.

1. What is Reed-Solomon Error Correction?

When a QR code is generated, redundancy codewords are mathematically calculated and appended to the data matrix. If part of the QR code is smudged, torn, covered by a custom logo image, or obscured by poor lighting, the scanner uses these redundant codewords to mathematically recover the original payload (URL, vCard, Wi-Fi password, or plain text).

2. The 4 Standard Error Correction Levels

The International Organization for Standardization (ISO) defines four distinct levels of error correction:

Error Correction Level Data Recovery Capacity Matrix Density Recommended Use Case
Level L (Low) Recovers up to 7% missing data Lowest / Simplest pattern Digital screens, mobile apps, clean websites without central logos
Level M (Medium / Standard) Recovers up to 15% missing data Balanced density Standard default for 90% of print materials, flyers, and subtle logo overlays
Level Q (Quartile) Recovers up to 25% missing data High density Industrial packaging, outdoor banners, factory environment labels
Level H (High) Recovers up to 30% missing data Highest density Heavy central brand logo embeds, stylized QR artwork, severe wear environments

3. How Central Logo Placement Interacts with Error Correction

When you embed a company logo (like a Google Maps emblem, WhatsApp icon, or custom company logo) into the center of a QR code, the logo physically covers up a portion of the data modules. Because error correction treats the covered modules as "damaged" data, the scanner uses the remaining surrounding modules to reconstruct the missing information.

On PNGQR, Level M (Standard) is configured by default to provide 15% redundancy, ensuring that embedded brand icons look fantastic while remaining 100% scannable on all camera devices.

4. Best Practices for Print & Custom Branding

  • Maintain Color Contrast: Always keep dark foreground modules on a light background (minimum 4:1 contrast ratio).
  • Preserve the Quiet Zone: Never crop out the 4-module blank white margin surrounding the QR code.
  • Keep Logo Size Under 20%: Ensure custom brand logos do not cover more than 20-25% of the total QR code surface area.
  • Test Before Printing: Always scan your finished QR code with both iOS Camera and Android Google Lens before committing to large print runs.

Conclusion

Reed-Solomon error correction is the secret behind the extraordinary reliability of static QR codes. By choosing Level M (Standard), you achieve the ideal balance between crisp, high-speed camera scanning and maximum print durability.