QR codes include redundant information that can help a reader recover data when some modules are dirty, damaged, or obscured. Four standard levels - L, M, Q, and H - trade compactness for increasing recovery capacity.

The percentages commonly associated with those levels are useful approximations, not a promise that any equally sized missing patch will scan. Damage location, module pattern, optical distortion, printing, camera quality, and the reader’s algorithm all matter.

The four levels

  • L uses the least redundancy and can produce a less dense symbol for the same payload.
  • M is a balanced default for many clean digital and print uses.
  • Q adds more recovery information and is a sensible starting point when a modest center logo is introduced.
  • H provides the greatest standard recovery capacity, while often increasing symbol density.

Higher is not automatically better. If H pushes a payload into a larger version with tiny printed modules, the theoretical protection may be undermined by physical reproduction.

Recovery is not image repair

The reader does not reconstruct a photograph. It uses mathematical redundancy to recover codewords after sampling the module grid. Some uncertain or missing values can be corrected; too many errors cause decoding to fail.

A clean white logo area in the center may be more predictable than random scratches, but it still removes information. Finder patterns, alignment patterns, and the quiet zone are especially important. Never place artwork over the large corner squares.

A workshop example

Suppose a tool cabinet label contains a 28-character internal URL. At level M, it produces a comfortably sized code with large modules. Switching to H and adding a logo makes the grid denser. If the label remains only 18 millimeters wide, the H version may scan worse because the printer cannot reproduce the smaller modules cleanly.

The better sequence is to select the payload, choose the required recovery level, generate the actual code, and calculate a physical size that preserves sufficiently large modules. Error correction and printed size must be evaluated together.

Choosing a level by environment

For an on-screen code with no logo and generous dimensions, L or M may be adequate. For a frequently handled label, outdoor sign, product package, or modest logo design, Q or H may add useful resilience. In every case, test the exported code after it has passed through the real production process.

Do not validate only the pristine source image. Scan the printed proof, the laminated sign under glare, or the package wrapped around its actual container.

Sources and further reading

Create the code you need

Use HighEndDIY’s private browser tool, then test the result in the setting where people will scan it.

Create a QR Code

Found something that should be corrected? Email help@HighEndDIY.com.