CIRCULATEQR

QR code glossary · Encoding and capacity

Error correction level

Also called: ECC level

Definition

An error correction level is the setting, L, M, Q or H, that decides how much redundant data a QR code carries; the four levels let a scanner restore roughly 7%, 15%, 25% and 30% of the code’s codewords when they are damaged, dirty or covered.

How it works

The encoder adds Reed–Solomon error correction codewords to the data codewords. The level sets the share: a version 1 code has 26 codewords, of which 7 are error correction at level L, 10 at M, 13 at Q and 17 at H. The level is recorded in the format information, so the scanner knows it automatically.

The four levels (ISO/IEC 18004; percentages are approximate)
LevelRestores aboutTypical use
L7% of codewordsClean conditions, screens, the most data in the least space
M15%Most printed codes; DENSO WAVE says it is the most frequently selected
Q25%Codes that get dirty or scuffed, such as on packaging or in factories
H30%Codes with a logo or artwork, harsh environments

The percentages count codewords, not area. A codeword is 8 modules, so a mark that touches several codewords uses more of the budget than its size suggests. Error correction also repairs only the data area: it does not rebuild the finder patterns, timing patterns or the quiet zone.

Why it matters

Redundancy costs space. For the same content, a higher level needs a higher version with more, smaller modules, so it must be printed larger to scan from the same distance. A higher level is not automatically easier to scan; it is more tolerant of damage.

A sensible default is M. Move up to Q or H for codes that will be handled, wet or outdoors, and use H when a logo covers part of the code. Use L only when space is tight and conditions are clean. The level is fixed at generation: changing it means a new code.

Example

A 28-character short link makes a version 2 code (25 × 25) at level L, version 3 (29 × 29) at M and Q, and version 4 (33 × 33) at H.

In CirculateQR

The free generator defaults to level M and switches to H automatically when you add a logo. In the Studio app, plain and logo codes use H, and AI art lets you choose low (L), standard (M) or high (H) density.

Learn more

Sources

Last updated . Written by the CirculateQR team; technical facts follow the sources listed above. Example codes and sizes are computed with the open-source qrcode encoder that CirculateQR uses. Spotted something wrong? Email support@circulateqr.com. QR Code is a registered trademark of DENSO WAVE INCORPORATED.

← Browse the full glossary