Skip to content
UseQR
ESC

↑↓ MOVE↵ OPEN48 PLACES

Spec & internals

Maximum safe logo coverage by error correction level

Safe logo area coverage by error correction level, L (7% damage tolerance) is effectively unusable for logos, M (15%) allows about 8% of the code area, Q (25%) about 16%, and H (30%) about 20%. Those are area figures — a logo spanning 45% of the code's side covers 20% of its area.

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

The table

Each error-correction level tolerates a fixed fraction of damaged codewords. A logo should spend at most about two thirds of that tolerance, leaving the rest for print damage, glare and camera noise:

EC level Damage tolerance Safe logo area Logo side (of code width)
L ~7% none — do not use for logos
M ~15% ~8% up to ~28%
Q ~25% ~16% up to ~40%
H ~30% ~20% up to ~45%

The mechanics of why a logo consumes error-correction budget are on how logos work without breaking a code; this page is the numbers.

Area vs side — the unit trap

The single most common mistake in logo sizing is confusing the two columns above. Generators (UseQR included) specify logo size as a fraction of the code's side; the error-correction budget is spent by area, and area is the side fraction squared:

Logo side ratio Area covered
0.20 (typical default) 4%
0.30 9%
0.35 (UseQR's maximum) 12.25%
0.40 16%
0.45 20%

So a "20% logo" in a generator's settings usually means 20% of the side — a modest 4% of the area, comfortably safe even at level M. UseQR clamps the side ratio to 0.35, which caps area coverage at 12.25%, about half the level-H safe line — and it raises error correction to H automatically when you add a logo, unless you have pinned a level yourself.

Why the safe figures sit below the tolerance

Three effects eat the gap between "~30% tolerance" and "~20% safe":

  1. The budget is shared. Scuffs, ink problems and low light draw from the same Reed–Solomon account as the logo. A code that scans in the office at 29% coverage fails on a wet poster.
  2. Edges are messy. Anti-aliased logo borders and translucent shadows turn crisp erasures into partial, wrong modules — and errors cost double the correction capacity of erasures.
  3. Damage is not perfectly spread. Interleaving distributes a central patch across blocks well, but the distribution is not exact; one block always runs closer to its individual limit than the average suggests.

Raising coverage from 20% to 25% at level H does not fail on your desk. It fails probabilistically, in the field, on the phones and prints you did not test — which is the worst possible way to find out.

Verify, do not extrapolate

The table is a planning tool, not a guarantee: payload density, logo edge treatment and colour contrast all shift the real threshold. The definitive check is a decode–verify loop — render the exact artwork, then read it back with a real decoder. /validate does precisely this and warns when a large logo is paired with an EC level below H. Design-side sizing guidance, including per-level visual examples, lives at logo size limits by error correction level.

FAQ

What is the maximum logo size for a QR code?

About 20% of the code's area with error correction H — a logo spanning up to roughly 45% of the code's width. Push beyond that and you are spending margin reserved for print damage, so field scan rates degrade before desk tests fail.

Can I put a logo on a level L QR code?

No, not safely. Level L tolerates only about 7% codeword damage, which real-world print imperfections can consume on their own. Regenerate the code at Q or H before adding any logo.

Does a bigger logo need a bigger QR code?

Indirectly. Raising error correction to H to afford the logo increases the version, adding modules; keeping the printed size fixed then shrinks every module. If the code is dense, enlarge the print or shorten the payload alongside the logo.

How do I know if my logo is too big?

Render the final artwork and decode it with a real scanner or a verify tool. If it fails, or only just decodes, shrink the logo side ratio or raise the error correction level and test again — arithmetic estimates, including this table, are starting points rather than proof.

Try it — free, no signup