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.
| Level | Restores about | Typical use |
|---|---|---|
| L | 7% of codewords | Clean conditions, screens, the most data in the least space |
| M | 15% | Most printed codes; DENSO WAVE says it is the most frequently selected |
| Q | 25% | Codes that get dirty or scuffed, such as on packaging or in factories |
| H | 30% | 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.
Related terms
- Reed–Solomon error correctionReed–Solomon error correction is a family of error-correcting codes, published by Irving Reed and Gustave Solomon in 1960, that QR codes use to add calculated check codewords to their data so a scanner can find and repair codewords it misread.
- Data capacityData capacity is the most content a QR code can hold, which depends on its version, error correction level and encoding mode; the largest code, version 40 at level L, holds 7,089 numeric digits, 4,296 alphanumeric characters, 2,953 bytes or 1,817 kanji characters.
- Logo in a QR codeA logo in a QR code is an image placed over part of the pattern, usually the center, which works because Reed–Solomon error correction can rebuild the modules the logo hides, provided the logo stays within the correction budget and clear of the finder patterns.
- Format informationFormat information is a 15-bit field printed twice in every QR code, beside the finder patterns, that tells the scanner which error correction level and which mask pattern the code uses, so it can be read before any of the data.
- QR code versionA QR code’s version is its size on a scale from 1 to 40: version 1 is 21 × 21 modules and each version adds 4 modules per side, up to 177 × 177 at version 40, so a version V code is 17 + 4V modules across.
Learn more
- QR code error correction levels explained: Comparisons, logo sizes and what it cannot fix.
- Free QR code generator: Choose L, M, Q or H for a static code.
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