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.
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":
- 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.
- 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.
- 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
Related
- QR code anatomy — every region of the symbol — A labelled tour of a QR code: finder patterns, separators, timing, alignment, format and version information, the data region and the quiet zone.
- How logos work without breaking a QR code — A logo deletes data modules and error correction rebuilds them. The budget maths, why centre placement matters, and how generators keep codes scannable.
- Error correction blocks and interleaving in QR codes — Why QR data is split into blocks and woven together codeword by codeword: so one physical scratch spreads across every block instead of destroying one.
- Logo size limits by error-correction level — How big a QR code logo can be at levels L, M, Q and H — the tolerance each level buys, the practical coverage budget, and why the ceilings lie.
- Adding a logo to a QR code, safely — Keep the logo central, under about 20–25% of the code area, at error-correction level Q or H, on a solid light panel with two or three modules of…