Error correction levels

Also called: EC level, ECC level, L M Q H

Definition

Error correction levels set how much of a QR code can be damaged and still scan. There are four: L recovers about 7% of codewords, M about 15%, Q about 25% and H about 30%.

The four levels

Every QR code is built at one of four error correction levels. A higher level adds more Reed–Solomon error correction codewords, so more of the code can be dirty, scratched or covered and still decode.

The percentages are approximate recovery rates for codewords, not for the visible area. A small patch of damage can touch several codewords, and damage to the finder patterns or format information can stop a scan regardless of the level.

  • L (Low): about 7% of codewords recoverable
  • M (Medium): about 15%
  • Q (Quartile): about 25%
  • H (High): about 30%

The trade-off with size

More error correction means less room for data. The same content at level H needs a larger version, with more and smaller modules, than it would at level L.

For example, a version 1 code holds 17 bytes at level L but only 7 bytes at level H. At version 40 the figures are 2,953 bytes at L and 1,273 bytes at H.

Choosing a level

Level M is a common default and suits most printed materials in clean conditions. Level L keeps screen-only or very clean codes as small as possible.

Levels Q and H suit codes that will be worn, printed on rough surfaces, or partly covered by a logo. A logo placed over the modules uses up some of the error correction budget, so the code has less left for real-world damage.

Frequently asked questions

Which QR code error correction level should I use?

M is a sensible default for most print. Use Q or H if the code will get dirty or worn, or if a logo covers part of it, and L when size matters more than durability.

Does higher error correction make a QR code easier to scan?

It makes the code more tolerant of damage, but it also makes the code denser at the same content length. In clean conditions a lower level with larger modules can scan more easily.

Can a QR code with 30% damage still scan?

At level H, up to about 30% of codewords can be recovered, but only if the finder patterns and format information survive. Real damage often hits more codewords than its area suggests.

Sources and standards

All terms