# QR code error correction levels > QR code error correction levels L, M, Q and H explained: how much damage each survives, what it costs in code size, and which level to choose for print. Source: https://qr-code-build.com/learn/error-correction/ Last reviewed: 2026-08-24 Publisher: QR Code Builder ## Summary QR codes have four error correction levels. L recovers about 7% of a damaged code, M about 15%, Q about 25% and H about 30%. Higher levels add redundant data, which makes the grid denser and requires a larger print at the same module size. ## What each one costs and buys | Level | Recoverable | Size cost | Use for | |---|---|---|---| | L | ~7% | Smallest code | Screens, clean environments, very long payloads | | M | ~15% | +10% modules | General print — the sensible default | | Q | ~25% | +25% modules | Outdoor, industrial, packaging, badges | | H | ~30% | +35% modules | Logo overlays, harsh environments, labels that get damaged | The size cost is not linear and depends on the payload. A short URL at level H may still fit in the same version as level L; a long vCard will jump two or three versions. Watch the version indicator in the readout as you switch levels. ## A decision table by context | Context | Level | Reason | |---|---|---| | Website or email | L or M | No physical damage possible | | Flyer, menu, brochure | M | Handled but not abused | | Business card | M | Density matters more at small sizes | | Outdoor board or sign | Q | Weather, fading, partial obstruction | | Product packaging | Q | Handling, scuffing, transit damage | | Code with a centre logo | H | Deliberate data loss needs headroom | | Industrial or laboratory label | H | Chemicals, abrasion, extreme conditions | | Event badge | Q | Creasing and wear on a lanyard | | Very long payload at small size | L | Only if the environment is benign | ## Three things the percentages do not mean 1. **It is not a damage budget you can spend fully.** Level H survives about 30% loss under good conditions, but printing, lighting and angle have already consumed some of that before the first scratch. Leave margin. 2. **It does not protect the finder patterns.** The three corner squares carry no error correction at all. Damage one and the code becomes unfindable regardless of level. 3. **Higher is not always better.** A level H code has more modules, so at the same printed size each module is smaller — and small modules fail for their own reasons. On a business card, level M at 25 mm often outperforms level H at 25 mm. ## How the redundancy is arranged Error correction codewords are generated per block using Reed–Solomon arithmetic, then the blocks are interleaved across the whole grid rather than stored contiguously. That interleaving is what makes localised damage survivable: a stain covering 20% of the area damages roughly 20% of every block, rather than destroying one block outright. It also explains a common observation — that codes often survive damage well beyond their rated percentage in one small area, but fail from scattered damage that looks less severe. Distribution matters as much as quantity. ## Frequently asked questions ### Which error correction level should I use? M for general print, Q for outdoor and packaging, H when a logo covers part of the code. L only for screens or very long payloads in benign conditions. ### Does higher error correction make the code bigger? It adds modules, so at a fixed printed size each module is smaller. Whether the physical code needs to be bigger depends on the payload length too. ### How much of a QR code can be damaged? Up to about 30% at level H, provided the damage does not cover a corner finder pattern, which carries no error correction. ### Why does my level H code with a logo still fail? The logo is probably too large or off-centre, or printing has already consumed part of the redundancy. Shrink the logo below 25% and centre it. --- Licence: this page may be quoted with attribution to QR Code Builder (https://qr-code-build.com/learn/error-correction/).