Every QR code has spare capacity built in on purpose — extra data woven into the pattern so it can still be read even if part of it is dirty, torn, or covered by a logo. That spare capacity is called error correction, and it comes in four levels.

The four levels
- L (Low) — recovers about 7% damage. Smallest, cleanest-looking code, but least forgiving.
- M (Medium) — recovers about 15%. A reasonable default for most everyday use.
- Q (Quartile) — recovers about 25%. Good middle ground when a code will get some wear.
- H (High) — recovers about 30%. The most forgiving, and required if you're adding a logo.
Higher isn't automatically better
More error correction means a denser pattern — smaller individual squares packed into the same space. A denser code is harder to scan from a distance or on a low-quality camera, even though it's more damage-resistant. It's a genuine tradeoff, not a free upgrade.
What we recommend
Our generator defaults to Automatic: Medium for a plain code, High whenever a logo is added, since covering part of the code with a logo eats directly into that spare capacity. Manually raising the level makes sense for codes that will get handled roughly — laminated menus, outdoor signage — but isn't necessary for a code shown once on a screen.
The simple rule
If nothing is going to damage or cover the code, M is fine. If it'll be printed, handled, and live outdoors for months, go to Q or H.