Developer Tools

QR Code Error Correction Levels (L, M, Q, H): Which Should You Use?

QR codes have four error correction levels — L, M, Q, and H — recovering roughly 7%, 15%, 25%, and 30% of the code. Here is what each level means and how to pick the right one for print, screen, logos, and harsh environments.

By Inventive HQ Team

The short answer

QR codes have four error correction levels — L, M, Q, and H — that recover roughly 7%, 15%, 25%, and 30% of the code respectively if it is damaged, dirty, or partly covered. The correction uses the Reed–Solomon algorithm built into the QR standard, and it comes with a direct trade-off: a higher level survives more damage but spends more of the code on redundancy, so it holds less data or needs a denser, larger grid for the same content.

Which one should you pick? Use Level M for general-purpose and printed codes — it is the standard default and the right balance for most jobs. Use Level Q or H when the code carries a center logo or lives in a harsh environment (outdoors, industrial, small print, high wear). Use Level L only for clean digital display or when you are squeezing every last byte into a controlled setting.

That is the summary an AI overview would give you. The rest of this article is the part it can't: how the four levels actually compare on a single chart, exactly why "more is better" is wrong, and the environment-by-environment reasoning behind each recommendation — plus a generator you can use to try the levels yourself.

The four levels at a glance

LevelNameRecovers ~Best forTrade-off (data capacity)
LLow7%Clean digital display; codes shown on screens; maxing out data capacity in controlled settingsHighest capacity — smallest code for a given payload
MMedium15%The default for general use and most print: business cards, packaging, flyers, URLsBalanced — modest redundancy, good capacity
QQuartile25%Outdoor/high-traffic use, restaurant menus, tickets, small logos, wear-prone codesNoticeably lower capacity; slightly larger code
HHigh30%Harsh/industrial environments, center logos, long-term outdoor signage, mission-critical scansLowest capacity — biggest/densest code for the same data

The percentages are fixed by the QR specification (ISO/IEC 18004) and its Reed–Solomon codewords — they are not vendor settings that vary between tools. What varies is which level a generator defaults to (almost always M) and whether it lets you change it.

Recovery vs. data capacity: the whole trade-off in one picture

Every level buys damage tolerance with data space. As recovery capability climbs from L to H, the room left for your actual payload falls. This is the single most important thing to internalize, so here it is as a chart — recovery percentage (blue) rising while relative data capacity (amber) drops:

QR error correction: recovery capability versus data capacity by level Grouped bars for Levels L, M, Q, and H. Recovery capability rises from about 7 percent at L to 30 percent at H, while relative data capacity falls from highest at L to lowest at H. Higher error correction means more damage tolerance, less data L 7% recover M 15% recover Q 25% recover H 30% recover Recovery capability Relative data capacity

Notice the crossover: at Level L you get almost no damage tolerance but maximum capacity; by Level H the bars have swapped, buying maximum resilience at the cost of the most space. Level M sits where most real projects want to be — meaningful protection without giving up much room. Try it yourself: generate the same content at each level and watch the code get denser.

Loading interactive tool...

Understanding QR Code Error Correction

QR codes are remarkably resilient data storage systems, capable of functioning even when partially damaged, faded, or obscured. This reliability comes from sophisticated error correction technology—specifically the Reed-Solomon error correction algorithm. One of the key decisions when generating a QR code is selecting the appropriate error correction level, a choice that affects both the code's reliability in harsh conditions and the amount of data it can store.

Error correction in QR codes works by adding redundancy to the encoded data. This redundancy allows the scanning algorithm to detect and correct errors automatically, even if portions of the QR code are damaged. Understanding error correction levels empowers you to create QR codes optimized for your specific use case, balancing data capacity, code size, and environmental durability.

Want to set the error correction level and generate a code instantly? Try our free QR Code Generator to pick the right level (L, M, Q, or H) and download your code in seconds.

The Four Error Correction Levels

QR codes support four distinct error correction levels, each named with a letter and corresponding to a specific percentage of data recovery capability:

Advertisement

Level L (Low) - 7% Error Correction

Level L provides the lowest error correction capability, recovering from damage to approximately 7% of the QR code. This level:

  • Uses the least redundant data, maximizing the available space for actual information
  • Creates the smallest possible QR code for a given amount of data
  • Is appropriate for clean, controlled environments where damage is unlikely

Best Uses for Level L:

  • Indoor marketing materials and posters in protected environments
  • Product packaging in regular retail conditions
  • Documents stored in files or archives
  • High-volume printing where cost efficiency is important
  • Applications where data capacity is extremely limited

Disadvantages:

  • Very susceptible to damage from printing errors, fading, or partial obstruction
  • Poor choice for outdoor use or harsh environments
  • Limited tolerance for wear and tear during the QR code's lifespan

Level M (Medium) - 15% Error Correction

Level M is the most commonly used error correction level, balancing data capacity with reasonable durability. It can recover from approximately 15% damage to the QR code.

Best Uses for Level M:

  • General marketing and promotional QR codes
  • Business cards and professional documents
  • Product packaging and retail displays
  • Website URLs and standard links
  • Most everyday QR code applications

Advantages:

  • Good balance between data capacity and error resilience
  • Acceptable performance in typical indoor and outdoor conditions
  • Standard choice that works well for most applications
  • Creates reasonably sized codes without excessive size

When Level M Might Be Insufficient:

  • Outdoor signage exposed to weather
  • Areas subject to physical damage
  • Industrial environments with potential contamination
  • Healthcare or pharmaceutical applications requiring high reliability

Level Q (Quartile) - 25% Error Correction

Level Q provides substantial error correction, recovering from approximately 25% damage. It's used when reliability is important but some space can be sacrificed for redundancy.

Best Uses for Level Q:

  • Outdoor signage and billboards exposed to weather
  • Parking lot validation tickets
  • Restaurant menus and point-of-sale systems
  • High-traffic public access areas
  • Promotional items subjected to handling and wear
  • Applications where codes might be partially obscured

Advantages:

  • Significantly more robust against environmental damage
  • Better tolerance for printing variations and ink fading
  • Excellent for outdoor and high-traffic environments
  • Still maintains reasonable code size for most applications

Disadvantages:

  • Uses noticeably more redundancy, reducing available data capacity
  • Results in slightly larger QR codes than Level M
  • More redundancy than strictly necessary for typical indoor use

Level H (High) - 30% Error Correction

Level H provides the highest error correction, capable of recovering from approximately 30% damage. This level is used when maximum durability is essential.

Best Uses for Level H:

  • Harsh industrial environments (factories, warehouses)
  • Outdoor signage in extreme weather
  • Labels on vehicles or machinery
  • Pharmaceutical and medical device packaging
  • Critical infrastructure and security applications
  • Codes that will be subjected to significant wear and tear

Advantages:

  • Maximum resilience against damage and environmental factors
  • Excellent for long-term outdoor placement
  • Best choice for critical applications where code failure is unacceptable
  • Maintains functionality despite substantial contamination or wear

Disadvantages:

  • Uses the most redundancy, significantly reducing data capacity
  • Creates larger QR codes for the same data
  • May be overkill for typical indoor applications
  • Less efficient data encoding

Choosing the Right Error Correction Level

Environmental Assessment

The primary factor in choosing error correction level is your QR code's environment:

Indoor, Protected Environments: Level L or M

  • Office buildings, retail stores, controlled conditions
  • Low likelihood of damage or environmental exposure

Indoor, High-Traffic Areas: Level M or Q

  • Restaurants, airports, public buildings
  • Potential for handling, accidental damage, or spills

Outdoor, Temporary: Level M or Q

  • Event signage, temporary campaigns
  • Several weeks to months of exposure

Outdoor, Permanent: Level Q or H

  • Billboards, building signage, permanent installations
  • Extended exposure to sun, weather, and environmental factors

Harsh Industrial: Level H

  • Factories, warehouses, heavy equipment
  • Potential exposure to chemicals, extreme temperatures, or physical damage

Data Capacity Considerations

Error correction level directly impacts how much data you can encode:

More Data Available: Level L > Level M > Level Q > Level H

For a Version 1 QR code (the smallest, 21×21 modules):

  • Level L: ~41 bytes
  • Level M: ~34 bytes
  • Level Q: ~27 bytes
  • Level H: ~17 bytes

This significant difference means that for space-constrained applications, Level L or M might be necessary, while Level Q or H could make the code prohibitively large.

Code Size Implications

As you increase error correction level, QR code size may need to increase:

  • Simple data (short URL) with Level L: Version 1 (21×21)
  • Same data with Level H: Version 2 (25×25)

The visible difference is noticeable on business cards or small labels.

Practical Decision Framework

Question 1: What's the environment?

  • If outdoor or harsh: Choose Q or H
  • If protected indoor: Choose L or M

Question 2: How critical is reliability?

  • If mission-critical: Choose Q or H
  • If standard application: Choose M

Question 3: How much data?

  • If data is close to capacity: Use Level L or M to maximize space
  • If significant space available: Can afford higher correction level

Question 4: How long will it be in use?

  • If temporary (weeks): Level M or Q
  • If permanent (years): Level Q or H
  • If short-term (days): Level L or M

Question 5: Will it be printed small?

  • If printed very small: Use higher correction level to maintain scannability
  • If large print: Can use lower correction level

Real-World Examples

Business Card QR Code: Level M

  • Indoor, controlled handling
  • Moderate data (contact info vCard)
  • Reasonable reliability needed

WiFi Guest Network Sign: Level Q

  • Indoor but high-traffic area
  • Potential for water exposure or handling
  • Critical that guests can connect successfully

Product Packaging: Level M or Q

  • Some outdoor shelf time
  • Potential for shelf wear and handling
  • Should remain scannable throughout shelf life

Outdoor Billboard: Level Q or H

  • Extended weather exposure
  • Large size can accommodate larger code
  • Critical that customers can scan campaign

Parking Validation Ticket: Level Q

  • Handled by customers, stored in vehicles
  • May experience folding, moisture, or fading
  • High reliability important

Document Tracking Label: Level H

  • Industrial warehouse environment
  • May be exposed to chemicals or extreme conditions
  • Critical for supply chain management

Technical Considerations

When Level Matters Most

Error correction level matters most when:

  • QR codes will be printed at very small sizes (where degradation is more likely)
  • Environment is harsh or unpredictable
  • Multiple scans are needed to ensure success
  • The brand experience depends on successful first-scan

When Level Matters Less

Error correction level matters less when:

  • Codes are printed large and clear
  • Users can retry if a scan fails
  • Environment is controlled and protected
  • Data is minimal and encoding is straightforward

Testing and Validation

When in doubt, test your QR code:

  1. Generate codes at different error levels
  2. Print at actual size and resolution
  3. Test with multiple devices and scanning apps
  4. Evaluate appearance and size
  5. Simulate expected environmental conditions
  6. Verify scannability after simulated aging

Conclusion

Selecting the appropriate QR code error correction level requires balancing reliability requirements, environmental conditions, and data capacity constraints. Level M serves as an excellent default for most applications, providing good reliability without excessive space overhead. Level Q is ideal for outdoor or high-traffic environments, while Level H ensures maximum durability in harsh conditions. Level L can be used when data capacity is critical and the environment is completely controlled. By understanding how error correction levels work and matching them to your specific use case, you can create QR codes that are both efficient and reliably scannable throughout their intended lifespan.

Frequently Asked Questions

What are the four QR code error correction levels?

QR codes support four error correction levels, each recovering a different percentage of the code if it is damaged or obscured: Level L (Low) recovers about 7%, Level M (Medium) about 15%, Level Q (Quartile) about 25%, and Level H (High) about 30%. These figures come from the Reed–Solomon error correction built into the QR standard (ISO/IEC 18004). Higher levels survive more damage but consume more of the code for redundancy, so they either hold less data or require a physically larger (higher-version) code.

Which error correction level should I use?

Use Level M for most general-purpose and printed QR codes — it is the standard default and balances resilience against data capacity. Step up to Level Q or H when the code carries a logo in the center, will live outdoors, or is exposed to wear, scratches, moisture, or industrial contamination. Use Level L only for clean digital display (a code shown on a screen) or when you are maxing out data capacity in a controlled environment where damage is unlikely.

Which level should I use for a QR code with a logo in the middle?

Use Level H, or at minimum Level Q. Placing a logo over the center of a QR code deliberately covers part of the data, and the error correction has to reconstruct what the logo hides. Level H tolerates roughly 30% obstruction, which comfortably covers a modest central logo; Level Q (25%) works for smaller logos. Keep the logo under about 25–30% of the code area even with Level H, and always test-scan the final code — error correction reconstructs damage, it does not make the code immune to it.

Does a higher error correction level make the QR code bigger?

It can. Higher error correction adds redundant data, which takes up space. For a fixed amount of content, raising the level either shrinks how much real data fits or forces the encoder to a higher QR "version" with more modules — a physically denser or larger grid. For example, a short URL might fit in a 21×21 Version 1 code at Level L but need a 25×25 Version 2 code at Level H. If you print small, that extra density can actually hurt scannability, so match the level to the risk rather than always maxing it out.

What is the best error correction level for print versus screen?

For print, use Level M as a baseline and Level Q or H for outdoor, small, or high-wear placements — printed codes face fading ink, smudging, folding, and weather, so redundancy pays off. For a screen (a code displayed on a monitor, kiosk, or phone), the pixels are perfect and stable, so Level L or M is plenty; higher levels just add unnecessary density. In short: screens are a clean, controlled surface, so err low; print is unpredictable, so err higher.

Can error correction fix a torn or partially destroyed QR code?

Up to a point. Error correction can reconstruct missing or damaged modules as long as the lost area stays within the level's tolerance — about 7% for L, 15% for M, 25% for Q, and 30% for H — and the three finder patterns (the large corner squares) plus the timing patterns remain readable. A code torn cleanly across a corner finder pattern usually will not scan at any level, because the scanner cannot locate and orient the grid. Within its budget, though, a Level H code can lose a surprising amount and still resolve.

Is more error correction always better?

No. Every percentage point of error correction is space you are not using for data, and it makes the code denser for the same content. Denser codes are harder to scan when printed small or at low resolution, and they leave less room for real payload. The right choice is the lowest level that reliably survives the code's real-world environment — which is Level M for the majority of everyday uses, stepping up only when there is a genuine reason (logos, outdoors, small print, harsh conditions).

What error correction level do most QR code generators use by default?

Most QR code generators default to Level M (Medium, ~15% recovery), because it is the best all-round balance of durability and data capacity for typical use. Many tools let you override it — raise it to Q or H when you add a logo or expect damage, or drop it to L only when you are constrained on capacity in a clean environment. If your generator does not expose the setting, it is almost certainly using Level M behind the scenes.

QR codeserror correctiondata reliabilitytechnical guide