QR codes on vehicles: what scans from the pavement and what does not

2026-09-14

A code on the back of a van gets designed on a laptop, where it sits 8 cm across and scans instantly from 40 cm away. Then it goes on a vehicle, where the nearest person is standing three metres off on a pavement, holding a phone at chest height, in sunlight. Almost every vehicle code fails for that one reason: it was sized for the desk it was drawn on.

Vehicles break most of the assumptions print advice is built on. The surface is curved, it is glossy by default, it is filthy for five months of the year, and the reader is usually further away and off to one side. None of that is unsolvable, but it changes the numbers.

Most vehicle codes are three times too small

The working ratio is about one tenth: whatever distance you want to be read from, the code needs to be a tenth of it. That is generous indoors and tight outdoors, where sunlight, dirt and angle all eat into the margin.

30 cm 3 cm table 3 m 30 cm poster
Roughly one tenth of the reading distance. When unsure, go bigger.

Run the ratio against where people actually stand. A pedestrian passing a parked van is 1.5 to 3 metres from the panel, so the code wants to be 15 to 30 cm across. Someone in the car behind you at a junction is around 4 to 6 metres from your tailgate once you account for the gap and the depth of their own windscreen, which means 40 to 60 cm, most of the width of a back door. A trade van with a 10 cm code on the rear panel is not a small version of this. It is decoration that nobody has ever scanned.

That sounds absurd until you price the alternative, which is a wrap carrying a code that has produced no scans in three years. If a 40 cm code will not fit the design, the honest move is to drop the code from that panel and put it where it can be big enough, usually the lower half of a rear door or the back of the box body.

Keep the encoded string short for the same reason it matters in small print: fewer characters means fewer, larger modules at a given physical size, and a sparse pattern survives distance, dirt and a cheap camera far better than a dense one.

Curved panels and the seams between them

A decoder reads the grid by finding three corner squares and assuming the rest of the pattern sits on a plane between them. Curvature breaks that assumption: the modules at the far edge of a curve compress, and the reader either corrects for it or gives up. A gentle bow is fine, a wheel arch is not.

The usable test is a straight edge. Lay one across the area the code will occupy, and if the gap underneath exceeds roughly a tenth of the code's width, pick another panel. On a 30 cm code that is about 3 cm of deviation. Flat enough in practice: the middle of a van side, a rear door, the flat of a box body, a tailgate. Not flat enough: bumpers, wheel arches, the curve where a roof turns into a side, and anything wrapping a corner.

Panel seams are the sharper version of the same problem. A code that straddles a door shut line gets a black shadow line through the middle of it and loses a whole row of modules, and worse, the two halves move relative to each other every time the door opens and closes. The same goes for rivet lines, drip rails and the join between a body and a roller shutter. Keep the code, and its margin, inside one continuous surface.

Error correction does not rescue this. Level H tolerates around 30% of the pattern being damaged, but that allowance is for scattered dirt and scratches, not for a geometric distortion that shifts every module in the lower half of the grid at once.

Angle, glare and glass

People approach a parked vehicle along the pavement, which means they meet a long flank at a sharp angle rather than head on. Decoders cope with roughly 20 to 30 degrees off axis before the perspective squeeze defeats them, and less than that as the code gets smaller or dirtier. Codes belong where a person naturally ends up square to the panel: the rear doors, the back of the body, the driver's door of a vehicle parked at a kerb.

Vehicle wraps are finished with a gloss laminate as standard, and gloss mirrors the sky. Outdoors that is a far harsher version of the reflection problem that kills laminated table cards indoors: a bright band across the code and the camera never locks. Ask the wrap shop for a matte or satin laminate over the code panel specifically. They will not offer it, and it costs almost nothing.

Dark vehicles cause the other common failure. A white code on black paint is an inverted code, and inverted codes are refused outright by a meaningful share of older cameras. Print the code dark on a light panel with its own clear margin, and let that panel sit on the paintwork. It looks like a deliberate design element and it works everywhere.

Glass has two traps. If the decal goes on the inside of a window facing out, it has to be printed in reverse, what printers call second surface, and a QR code that reaches you mirrored will not scan on any phone. Confirm which surface the print is for before the job runs. And factory privacy glass on the rear of a van cuts a lot of light, which drags the contrast down for anything sitting behind it. Put the code on paint, or on the outside of the glass.

Weather, grime and the pressure washer

Road film is the reason to keep codes above the splash line, which in practice means the upper two thirds of a rear door rather than anywhere near the bumper. A code low on the back of a van is unreadable within a week of winter driving, and nobody is going to wipe it before scanning.

For the material, cast vinyl with a UV laminate is the default that survives, and a full wrap is typically rated five to seven years. The print fades before the vinyl fails, and fading costs contrast, which costs you scans long before anything looks worn out. Black on white loses the least as it ages.

Pressure washing is what actually destroys vehicle decals: a jet held close to an edge lifts the vinyl, and a lifted corner takes the position marker with it. Keep the lance around 30 cm away and off the edges, which is the same advice that protects the rest of the wrap.

Apply the code as its own decal rather than as part of the wrap artwork. A wrap lasts years, a campaign does not, and a separate panel can be replaced in ten minutes without touching the rest of the vehicle.

Parked vehicles get scanned, moving ones do not

The uncomfortable truth about drive-by scanning: a person driving cannot scan your code, and should not try. What a moving vehicle delivers is an impression, not a scan. The scans come from vehicles standing still, which is most of a working vehicle's life anyway: the van outside a job for six hours, the truck at a market, the car on a forecourt overnight after the office has closed.

Design for that. Put the code where someone on foot meets the vehicle, make the destination worth the stop, and have it load in a couple of seconds on mobile data. A quote form, the listing for that exact vehicle, today's location and menu. Our dealership page covers the forecourt version of this, where each lot slot keeps one code and the car under it changes.

Print a short readable web address next to the code as well. Someone sitting behind you at a red light can memorise example.com/quote and cannot safely scan anything, and that is the only way the moving case ever converts.

Finally, the code on a five year wrap has to outlive whatever it points at now. Encode a redirect you control rather than the campaign page itself, so the vehicle keeps working when the page it was built for is gone. The general pre-press rules on size, margin and contrast apply on vinyl exactly as they do on paper, and you can make a free code here that stays repointable for the life of the vehicle.

Make a QR code that never dies

Free, no account, editable after printing, and it will never expire on you.

Create a free QR code

More guides: Restaurant menu QR codes that actually get scanned · How to see QR code scans in Google Analytics · Print-safe QR codes: sizes, quiet zones, and testing before the big run