A QR code needs to be at least one tenth as wide as the distance it will be scanned from — the 10:1 rule. This calculator applies that, then adjusts for the things that make the rule optimistic in practice: dim lighting, curved surfaces, textured or absorbent stock, and reading through glass.
How the calculation works
The base figure is the 10:1 rule — scanning distance divided by ten. Each condition you tick adds a multiplier on top, because each one reduces either the contrast the camera sees or the geometric accuracy of the pattern.
- Dim lighting — adds 25%. Cameras need more module area to resolve detail in low light.
- Curved surface — adds 25%. Curvature distorts the finder patterns at the edges first.
- Textured stock — adds 30%. Absorbent and ribbed surfaces spread ink and break module edges.
- Through glass — adds 25%. Reflection reduces effective contrast.
- Moving viewer — adds 50%. Less time to focus and lock the pattern.
- Long URL — adds 20%. More characters means more, smaller modules at the same physical width.
The recommended figure is the adjusted minimum plus a further 25% of headroom, which is what makes the difference between a code that scans on a new phone in good conditions and one that scans on an older phone in real ones.
Frequently asked questions
Where does the 10:1 rule come from?
It is the widely used industry rule of thumb for scanning distance to code width. It works because a camera needs each module — the small squares making up the pattern — to cover enough sensor pixels to be distinguished from its neighbours.
Why does the calculator add extra for some conditions?
The 10:1 rule assumes good conditions: a flat surface, decent light, and a cleanly printed code. Dim light, curvature, absorbent stock and glass all reduce the effective contrast or distort the pattern, so the code needs more physical area to stay readable.
Does the amount of data affect the size?
Yes. More characters means more modules, so a code holding a long URL must be printed larger than one holding a short redirect. If you are working near the minimum, shorten the URL.
Should I just use the minimum?
No. Treat the minimum as the point where scanning starts to work, and the recommended figure as the point where it works reliably on a range of phones.
Need to create a QR code?
Dynamic codes you can edit after printing, with scan tracking. Free to start.
Open the generator