A code does one thing that nothing else does: it connects a fixed printed object to content that can still be changed.

The case it solves
Printed material is frozen at the print run. A price, a date, an opening time or a specification changes, and every copy in circulation is now wrong.
Reprinting is expensive and slow, and the wrong copies stay in circulation regardless.
A code moves the changing detail off the paper. The card says what the product is; the address behind it holds the price. The card stays correct indefinitely because it no longer contains anything that can go out of date.
That is the benefit. Everything else people claim for codes is a variation of it.
| Printed item | What the code carries |
|---|---|
| Menu | Current dishes and prices |
| Price card | The price |
| Product label | Instructions, specification, safety |
| Packaging | Registration, support, full manual |
| Equipment | Manual, service history, fault reporting |
| Poster | Booking, current programme |
Where it is decoration
On a screen.
A code in an email, on a web page, or in a slide being viewed on a laptop asks somebody to pick up a second device to reach something the first device could already open. It is a link with extra steps.
The rule is simple: a code is for paper, and for objects. If the thing carrying it has a screen, use a link.
They get scanned now
The old objection was that scanning required an app nobody had. That stopped being true when phone cameras began reading codes directly.
What still matters is the label. A bare square gives no reason to lift a phone. One line saying what happens, see today's menu, book a slot, read the manual, changes the response rate substantially.

The measurement
This is the benefit people overlook.
A printed run tells you nothing. You print two thousand leaflets and learn nothing about what happened to them.
Give each printed item its own address and the codes report back: how many scans, on which days, from which item. Suddenly the poster and the leaflet and the table card are comparable, and next year's print budget is a decision rather than a habit.
The one rule about what it points at
Paper outlives services.
Point every code at an address you control and can repoint later. A code on a shortener belonging to somebody else works exactly as long as that company does, and every piece of paper carrying it dies on the same day.
Closely related: How to make a QR code you can change later, and How to turn a PDF into a QR code for the adjacent problem.
Put it at an address
Use a code where print meets detail that changes, skip it on screens, label every one, give each printed item its own address, and point them all at something you control.