The rule: distance divided by ten
“How big should my QR code be?” has a surprisingly simple answer: the code’s side must be at least the scan distance divided by 10. A code scanned at arm’s length (30 cm / 12 in) needs a 3 cm side; one scanned from the sidewalk at 5 m needs half a meter. The rule isn’t official but it’s safe: it ensures each module — the pattern’s elementary square — covers enough pixels in the phone’s image to be judged “black” or “white” without ambiguity.
Two factors tighten or relax that baseline: pattern density (longer content means more modules, hence smaller modules at equal size) and real conditions (lighting, angle, camera quality). When in doubt, take the rule and add 20%.
The per-medium table
| Medium | Typical scan distance | Minimum side (distance ÷ 10) | Practical recommendation |
|---|---|---|---|
| Business card | 15-20 cm | 1.5-2 cm | 2.5 cm — cards are tight, but under 2 cm scanning gets finicky |
| A5 flyer / brochure | 30-40 cm | 3-4 cm | 4 cm, with a call to action beside it |
| Handheld packaging | 20-30 cm | 2-3 cm | 3 cm; avoid curved areas |
| Table menu / tent card | 30-50 cm | 3-5 cm | 5 cm — scanned across the table, often at an angle |
| Poster / storefront | 1-3 m | 10-30 cm | 25-30 cm if the code must work from the street |
| Screen (slides, TV) | 1-4 m | 10-40 cm | Scale to the room; the screen background acts as the light substrate |
Why distance is the variable that matters
A phone camera doesn’t “see” centimeters — it sees pixels. Whether a module is decodable depends on how many camera pixels it covers in the captured image, and that count is set by two things: the physical size of the module and the distance between the lens and the paper. Halve the distance and each module doubles in apparent size; that’s the whole logic behind the ÷10 rule. It also explains why a 2 cm code on a counter can be perfect while the same 2 cm on a poster across the room is invisible to the scanner.
The quiet zone: the non-negotiable margin
Around the pattern, the standard requires a clear band 4 modules wide — the quiet zone. It’s what lets the decoder find the code’s boundary in the image. Three common ways to break it:
- Cropping the code to fit a box: the white margin looks “wasted” — it’s functional.
- Placing text or a border flush against the pattern: the reader hesitates on the code’s edge.
- Printing the code flush on a colored or photographic background: a busy background inside the quiet zone disturbs detection as much as a trimmed margin.
On a 3 cm code with ~0.7 mm modules, the quiet zone is roughly 3 mm of emptiness on every side. Plan it into the layout — it can’t be “reclaimed.”
The mistakes that kill readability
- Too much content, too little room: a long URL creates a dense pattern; at a fixed size, modules shrink past the readability threshold. Prefer a short URL over a bigger code.
- Textured or glossy stock: recycled-paper grain or lamination glare blurs the black/white boundary. Matte and smooth scan better.
- Upscaling a low-res PNG: a 256 px PNG stretched to 4 inches yields fuzzy edges decoders misread. For print, export the SVG — vector output resizes losslessly at any size.
- Low contrast: colored modules on a colored background. The hard numbers are in QR code colors and contrast.
PNG or SVG for the printer?
The generator offers both exports and the choice matters at print. PNG is a raster image: perfect for an office document or quick use, but every pixel is fixed — enlarging it produces fuzzy edges that disturb binarization. SVG is vector: modules are described as shapes, infinitely resizable without loss. For a flyer, poster, or package, send the SVG to the printer; PNG is only justified if the production chain requires it — in which case, generate at the highest available resolution.
The pre-print test protocol
- Generate the code with an error-correction level suited to the medium — M is fine for a clean flyer, Q or H for something that will wear (see levels L, M, Q, H).
- Export SVG for the printer, or a high-resolution PNG.
- Print one copy at final size, on the final stock.
- Scan it with several phones, at the usage distance and lighting — you can verify the decoded content with the FlashScan Pro scanner.
- Fix the size, margin, or contrast before approving the run.
Five minutes of testing beats binning a thousand flyers.