Skip to main content
FlexibleQR Logo FlexibleQR
Technical Architecture β€’ Last Updated:

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

Master Reed-Solomon error correction in QR codes. Learn how recovery percentages work, matrix density trade-offs, and when to use levels L, M, Q, or H.

P
FlexibleQR Engineering Team
Strictly verified for technical accuracy & ISO standards
Ad Placement (in-article) Reserved space β€’ Zero layout shift

One of the greatest engineering breakthroughs of the QR code standard is its ability to scan successfully even if a corner is ripped off, covered in dirt, or stamped with a company logo.

This resilience is made possible by Reed-Solomon Error Correction, a mathematical algorithm that injects redundant data codewords into the barcode matrix.

The standard defines four distinct error correction levels: Level L (~7%), Level M (~15%), Level Q (~25%), and Level H (~30%). Choosing the correct level is a critical balance between physical damage protection and matrix density.

In this technical breakdown, we explain how Reed-Solomon parity bytes operate, compare all four levels in detail, analyze the trade-offs of module density, and guide you in selecting the ideal level for your application.


In This Guide

  1. How Reed-Solomon Error Correction Operates
  2. The 4 Error Correction Levels Compared
  3. The Matrix Density Trade-Off
  4. Why Level H is Mandatory for Logo Customization
  5. Industry Recommendations: Which Level Fits Your Project?
  6. Key Takeaways
  7. Frequently Asked Questions

How Reed-Solomon Error Correction Operates

Invented in 1960 by mathematicians Irving Reed and Gustave Solomon at MIT Lincoln Laboratory, Reed-Solomon error correction is an algebraic algorithm widely utilized in deep-space satellite telecommunications, Compact Discs, DVDs, and modern barcodes.

When generating a QR code:

  1. Your raw payload (URL, text, or vCard) is converted into a polynomial data sequence.
  2. The generator divides this polynomial by a standardized generator polynomial to calculate parity codewords (redundant check bytes).
  3. Both the original data codewords and the parity codewords are interleaved across different geographic quadrants of the 2D matrix.
[ Raw Payload Bytes ] + [ Reed-Solomon Parity Bytes ] ──▢ [ Interleaved 2D Optical Matrix ]

When a smartphone camera inspects a damaged code, the decoder identifies errors (corrupted bits) and erasures (missing or covered modules). As long as the percentage of damaged modules remains below the threshold of the selected level, the decoder mathematically reconstructs the original string with 100% precision.


The 4 Error Correction Levels Compared

The ISO/IEC 18004 international standard establishes four distinct error correction profiles:

Level IdentifierRecovery CapacityRedundancy AddedTypical Grid DensityBest Application
Level L (Low)~7% of dataLowestCleanest, simplest gridClean indoor digital screens, short URLs
Level M (Medium)~15% of dataModerateBalanced densityRecommended standard default for most print
Level Q (Quartile)~25% of dataHighModerately dense gridIndustrial labels, outdoor signage, factory floors
Level H (High)~30% of dataHighestDensest gridMandatory when embedding a logo in the center
Recovery Capacity:
Level L:  β–“β–“β–“ (7%)
Level M:  β–“β–“β–“β–“β–“β–“ (15%)
Level Q:  β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“ (25%)
Level H:  β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“ (30%)

The Matrix Density Trade-Off

There is no free lunch in computer science. Increasing your error correction capability requires adding more parity bytes, which directly increases the Version (grid dimensions) of your QR code:

  • A basic URL encoded at Level L might produce a Version 2 code (25 Γ— 25 modules).
  • The exact same URL encoded at Level H might require a Version 4 code (33 Γ— 33 modules).

Why Density Matters for Print Production:

If you print a high-density Level H code at a tiny size (for instance, 1.5 cm on a business card), each individual square dot becomes microscopic. Inexpensive smartphone cameras with budget optical lenses may struggle to resolve the tiny modules, ironically increasing scan failures.

Conversely, if you print on an outdoor construction site, a Level L code might fail the moment a single speck of mud splashes onto the corner.

Golden Rule: Use the lowest error correction level that reliably protects against the physical hazards your medium will face. For 90% of normal print projects, Level M is the sweet spot.


Why Level H is Mandatory for Logo Customization

When you place a brand logo, monogram, or social media icon in the dead center of a QR code, you are effectively β€œdamaging” the code on purpose.

From the perspective of the camera’s decoding software:

  • The black-and-white modules obscured beneath your logo are simply missing or corrupted data.
  • A circular or square logo positioned in the center typically wipes out between 15% and 25% of the barcode’s central data bytes.
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β–ˆ β–ˆ β–ˆ                     β–ˆ β–ˆ β–ˆ β”‚
β”‚ β–ˆ   β–ˆ      DATA AREA      β–ˆ   β–ˆ β”‚
β”‚ β–ˆ β–ˆ β–ˆ    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β–ˆ β–ˆ β–ˆ β”‚
β”‚          β”‚ YOUR LOGO β”‚          β”‚
β”‚          β”‚ (Obscures β”‚          β”‚
β”‚ β–ˆ β–ˆ β–ˆ    β”‚ ~20% Data)β”‚          β”‚
β”‚ β–ˆ   β–ˆ    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚ β–ˆ β–ˆ β–ˆ                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

If you attempt to overlay a logo on a code generated with Level L (7%) or Level M (15%), the barcode will be completely corrupted and unreadable by any smartphone camera.

By setting error correction to Level H (30%), you leave a 5% to 10% safety margin even after the logo takes up 20% of the surface area. In our FlexibleQR Generator, uploading a logo automatically switches your configuration to Level H to prevent accidental scan failures.


Industry Recommendations: Which Level Fits Your Project?

Use this decision matrix when configuring error correction:

1. Digital Displays and Presentations β†’ Level L or M

Because computer monitors, TV screens, and mobile screens do not get scratched or torn, data corruption is impossible. Level L keeps the grid simple, allowing viewers in the back of an auditorium to scan easily.

2. Standard Business Cards, Flyers, Menus β†’ Level M

Standard indoor print media faces minor surface wear and fingerprints. Level M provides reliable 15% protection while keeping module dimensions large and accessible.

3. Outdoor Posters, Vehicle Decals, Machinery β†’ Level Q

Outdoor vinyl banners, delivery trucks, and warehouse bins encounter weather, road grime, scratches, and UV fading. Level Q ensures the code survives harsh environments.

4. Any Code with a Brand Logo or Artwork β†’ Level H

Any time you alter, stylize, or place graphics over the central grid, Level H is non-negotiable. Learn more in our tutorial on How to Add a Logo to a QR Code Without Breaking It.


Key Takeaways

  • Reed-Solomon recovery: Redundant parity bytes allow scanners to reconstruct damaged, obscured, or torn QR codes.
  • Level M is the standard: Provides 15% recovery with low matrix density, making it ideal for general print and digital media.
  • Level H is mandatory for logos: Center logos obscure up to 25% of data; Level H’s 30% recovery threshold guarantees readability.
  • Watch the density trade-off: Higher error correction creates denser grids; ensure physical print size is large enough to prevent optical blurring.
  • Test before printing: Always scan a physical paper proof with multiple devices under realistic lighting conditions.

Frequently Asked Questions

What is QR code error correction?

QR code error correction is a mathematical capability based on the Reed-Solomon algorithm that allows a scanner to reconstruct missing, stained, or torn portions of a barcode matrix without losing the encoded message.

Which error correction level should I choose by default?

Level M (Medium, approximately 15% recovery) is the recommended industry default for standard digital displays, packaging, and clean indoor print collateral. It provides strong durability while keeping the matrix density relatively low.

Why is Level H required when adding a logo to a QR code?

When you place a logo in the center of a QR code, the image physically covers and obscures between 15% and 25% of the data modules. Level H (High) provides up to 30% mathematical redundancy, allowing the scanner to reconstruct the obscured data and read the code effortlessly.

Does higher error correction make the QR code larger or harder to scan?

Higher error correction does not change the physical print size, but it increases the number of rows and columns (matrix density). If you print a dense Level H code at very small physical dimensions, budget smartphone cameras with poor resolution may struggle to resolve the tiny modules.


Configure Custom Error Correction with FlexibleQR

Fine-tune your error correction levels, customize corner styles, and test scan reliability with live contrast checks:

πŸ‘‰ Design a Custom QR Code or add brand artwork with our QR Code with Logo Generator.

Ad Placement (responsive) Reserved space β€’ Zero layout shift

Guide FAQs & Key Details

Quick answers to common questions covered in this tutorial.

What is QR code error correction?

QR code error correction is a mathematical capability based on the Reed-Solomon algorithm that allows a scanner to reconstruct missing, stained, or torn portions of a barcode matrix without losing the encoded message.

Which error correction level should I choose by default?

Level M (Medium, approximately 15% recovery) is the recommended industry default for standard digital displays, packaging, and clean indoor print collateral. It provides strong durability while keeping the matrix density relatively low.

Why is Level H required when adding a logo to a QR code?

When you place a logo in the center of a QR code, the image physically covers and obscures between 15% and 25% of the data modules. Level H (High) provides up to 30% mathematical redundancy, allowing the scanner to reconstruct the obscured data and read the code effortlessly.

Does higher error correction make the QR code larger or harder to scan?

Higher error correction does not change the physical print size, but it increases the number of rows and columns (matrix density). If you print a dense Level H code at very small physical dimensions, budget smartphone cameras with poor resolution may struggle to resolve the tiny modules.