Technical reference

QR error correction levels

Higher QR error correction adds recovery data, which can make the symbol denser. It does not make every covered or damaged code readable.

LevelApproximate codeword restorationDesign tradeoff
L7%More room for content
M15%A common general-purpose choice
Q25%More recovery data
H30%Highest recovery level
DENSO WAVE restoration rates concern total codewords, not a safe percentage of image area to cover.

Recovery is about encoded data

A QR symbol contains content plus additional error correction information. A decoder uses that redundancy to reconstruct data when some codewords are wrong or unavailable. The location and pattern of damage matter, especially when the scanner needs structural patterns to locate the symbol in the first place.

The percentages in the table are not a logo-sizing formula. Covering a finder pattern or a large connected area can be much more disruptive than scattering the same area of small defects. A successful image decode should be treated as a test result for that image, not permission to cover more of the code.

The density tradeoff

For a fixed version, selecting more correction leaves less room for content. If the payload no longer fits, the encoder chooses a larger version. Printing that denser version at the same physical width makes individual modules smaller. This is why choosing the highest setting automatically can sometimes create a harder print job.

Start with a simple payload and a clear design. Use extra recovery where the environment justifies it, then check the resulting version and physical size. If the code will be handled, folded or exposed to wear, material selection and replacement procedures also matter.

Tidy QR choices

The standard generator starts at level M. Adding a logo switches to H and limits the logo size as an implementation safeguard. The generated image must still decode to the exact payload before export. These checks help catch obvious failures without claiming a universal print guarantee.

EPC invoice QR codes follow their own format requirements and use level M without a logo. Do not apply a general marketing-style recommendation to a payment specification that explicitly chooses its correction level. Test the receiving banking app as well as the image decoder.

Put this into practice in the QR generator, then inspect the decoded payload before printing.

Sources

Last checked: . Examples are illustrative inputs, not measured results.

  1. Error correction feature, DENSO WAVE. Checked 2026-10-29.
  2. QR Code versions and information capacity, DENSO WAVE. Checked 2026-10-29.