Skip to content
UseQR
ESC

↑↓ MOVE↵ OPEN48 PLACES

Reference tables

Recommended error correction level by use case

Use level M for most printed material and screens, Q for outdoor signage and anything handled or laminated, H whenever a logo covers part of the code, and L only when a dense payload needs the smallest possible symbol. The levels tolerate roughly 7%, 15%, 25% and 30% damage respectively.

View as MarkdownPaste this page into any AI assistant — it is plain, portable Markdown.

The table

Unlike the capacity and error-correction codeword tables, this one is judgement, not specification — our recommendations, with the reasoning attached.

Use case Level Why
On-screen only (email signatures, slide decks, websites) L–M Screens do not get scratched or dirty; damage tolerance buys nothing, small symbols help
Dense payloads (vCards, long URLs) L–M Higher levels push the version up and shrink modules — often the difference between scanning and not
General print (flyers, posters, business cards) M Covers minor print defects and wear at ~79% of level L capacity; the sensible default
Menus and laminated surfaces M–Q Handling, spills and glare add real damage over time
Payments (UPI, PIX, EPC) M–Q A failed scan at a till costs a sale; payloads are short so the capacity cost is painless
Any code with a logo H The logo is damage — a centre logo consumes 10–20% of your ~30% budget before the world adds more
Outdoor signage and stickers Q–H UV fading, rain, grime and abrasion accumulate; see outdoor durability
Industrial and asset labels Q–H Scuffing, chemicals and thermal-print defects; short payloads leave room for it
Engraved metal, laser-cut wood, embroidery H Low-fidelity media distort module edges; treat the medium itself as damage
WiFi cards and table cards M Indoor, short payload, occasional handling

The rule the table encodes

Pick the level the environment needs, never "the highest, to be safe". Error correction is paid for in modules: a 200-character URL is version 7 at L but version 12 at H, and at the same printed size those version-12 modules are 31% smaller — often below the print floor. The full trade-off is worked through in error correction levels explained, and the exact redundancy behind each level is in the EC codeword table.

Two situations override the default:

  • Logo present → H. Non-negotiable. UseQR's generator enforces this automatically: adding a logo without explicitly setting a level silently raises it to H.
  • Payload near a version boundary → check both. Sometimes M and Q land on the same version, making Q free. The size calculator shows the version each level produces for your payload.

What no level protects

All four levels protect only the data region. The corner finder patterns, the quiet zone and the timing lines are structural — cover any of them and the code fails at H exactly as it fails at L. Placement rules matter more than the level; when in doubt, verify the finished artwork decodes.

FAQ

Which error correction level should I use for print?

M for most printed material. Move to Q when the surface will be handled, laminated or outdoors, and to H when a logo overlays the code. Stay at L–M for dense payloads like vCards.

Should I always use the highest error correction level?

No. Level H needs roughly 2.3 times the capacity of L for the same data, forcing a higher version with smaller modules at the same printed size. For dense codes that makes scanning worse, not better.

H, which tolerates about 30% damage. Keep the logo central and under about 20% of the code area so real-world wear still has budget left after the logo's deliberate damage.

Does error correction level matter on screens?

Barely. Screens do not accumulate damage, so L or M is enough — and the smaller symbol renders more crisply at limited pixel sizes.

Try it — free, no signup