What the levels recover
A QR code’s data is stored as codewords with Reed–Solomon error correction added, so a decoder can rebuild the message when some codewords are unreadable. ISO/IEC 18004 defines four levels — L, M, Q and H — that recover roughly 7%, 15%, 25% and 30% of the codewords respectively.
What a higher level costs
Redundancy takes space. For the same payload, a higher level needs a larger version — more modules — which means smaller modules at the same printed width. A 22-character short link, encoded in byte mode, fits version 2 at levels L and M and version 3 at Q and H. A 30-character one needs version 2 at L, 3 at M and Q, and 4 at H.
LevelVersionModules acrossOne module at 25 mm
L2250.76 mm
M2250.76 mm
Q3290.68 mm
H3290.68 mm
Byte-mode capacities from ISO/IEC 18004: version 2 holds 32 at L and 26 at M; version 3 holds 32 at Q and 24 at H. Checked against this site’s encoder.
When to choose each
L — screens and clean, protected print where every module is needed for size. M — the default for most print: menus, posters, flyers. Q — a logo in the centre, textured or uneven surfaces, codes that will be handled. H — a large logo, outdoor or industrial use, anything that will be scuffed, folded or weathered.
Raise the level, then print a little larger to keep the module size. Raising the level and shrinking the code spends the gain twice.
A higher level buys durability with module size. Pay for it in millimetres, not in reliability.
See the version and module size for your codeEnter a payload and a level, and the calculator shows the version, the module count and the module size.