NoTraQR.com

QR Code Error Correction: L, M, Q and H Explained

What Is Error Correction?

Error correction is the ability of a QR code to be read correctly even when part of it is damaged, dirty or obscured. It is one of the most useful features of the QR code standard and is built into every QR code at the time of generation.

QR codes use Reed-Solomon error correction — the same mathematical technique used in CDs, DVDs and data transmission systems. Redundant data is added to the code so that the scanner can reconstruct the original content even if modules are missing or unreadable.

The Four Levels

L — Low (7%)
Up to 7% of the code can be damaged and still decoded correctly. Level L produces the smallest code for a given amount of data, which means faster scanning and better readability at small sizes. Use L when the code will be displayed digitally on a clean screen and size is a priority.

M — Medium (15%)
Up to 15% damage tolerance. Level M is the recommended default for most everyday uses. It provides a good balance between code size and resilience. If you are unsure which level to choose, use M.

Q — Quartile (25%)
Up to 25% of the code can be unreadable. Level Q produces larger codes. Use Q when the code will be printed on surfaces subject to wear, dirt or partial damage — such as product labels, outdoor signage or packaging.

H — High (30%)
Up to 30% damage tolerance. Level H produces the largest code for a given amount of data. Use H when you are placing a logo over the centre of the code — the logo covers part of the data, and high error correction ensures the remaining modules are sufficient to decode the content. Also recommended for 3D printed codes that will be handled frequently.

How Level Affects Code Size

Higher error correction requires more redundant data, which means more modules, which means a larger or denser code. For a short URL, the difference is small. For longer content, switching from L to H can significantly increase the number of modules and make the code harder to scan at small sizes.

As a practical rule: keep your data short and your error correction level appropriate to the use case, rather than always choosing H.

Adding a Logo

NoTraQR supports adding a logo or custom image over the centre of the QR code. When using this feature, always set error correction to H. The logo covers the central modules, and level H ensures enough redundant data exists for the scanner to recover the full content despite the covered area.

Choosing the Right Level

Digital display (screen, email, website): L or M

Printed on paper (flyer, business card, menu): M

Outdoor or industrial use: Q or H

3D printed code: H

Code with logo overlay: H