QR codes use error correction to ensure they remain readable even if partially damaged, distorted, or obstructed. The Error Correction Level (ECL) is a feature built into QR codes that allows missing or unreadable parts of the QR code to be reconstructed. This is useful in cases where QR codes are printed on surfaces that might get scratched, exposed to dirt, or partially covered.
Error correction in QR codes is based on the Reed-Solomon error correction algorithm, which helps restore lost data up to a certain percentage. There are four levels of error correction:
The higher the error correction level, the more data can be recovered in case of damage. However, higher correction levels also make the QR code more complex, which means it requires more space and a higher scanning precision. Choosing the right error correction level depends on the intended usage of the QR code.
This level provides the lowest error correction, meaning it can only recover up to 7% of lost data. Since it stores minimal backup data, it produces the simplest QR code with the least amount of pixel complexity, making it the easiest and fastest to scan.
Use case: Suitable for printing QR codes on clean surfaces where damage is unlikely, such as websites, business cards, and event tickets.
This level can restore up to 15% of missing data. It provides a balance between error correction and QR code complexity. Most QR code generators set this as the default level because it is reliable yet does not create overly dense QR patterns.
Use case: Recommended for general marketing QR codes, restaurant menus, and print materials where minor obstructions such as glare or smudges may occur.
This level corrects up to 25% of lost data. It is useful for QR codes that may be scratched or partially covered but still need to be scanned accurately. However, it makes the QR code denser, requiring higher-quality printing and scanning.
Use case: Useful for industrial applications, product packaging, or printed labels that may get dirty or damaged.
This level can recover up to 30% of lost data, making it the most robust level. However, it also creates the most complex QR code, meaning scanners need to be high-quality to read it effectively.
Use case: Best for harsh environments, such as factory equipment, outdoor signs, or QR codes printed on clothing or metal surfaces.
If scanning speed and simplicity are most important, use L or M.
If the QR code may be slightly damaged, use Q.
If the QR code is exposed to harsh environments and may be significantly damaged, use H.