Free tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teams
All posts
A QR code on the left connected by a green upward-arrow badge to a cost-versus-revenue bar chart showing positive campaign ROI.
Guide

How to calculate QR code campaign ROI, and prove it to your clients

Only 12 per cent of marketers can connect a QR scan to revenue. This guide shows how to build the attribution chain, calculate ROI with a worked example, and structure a client report that proves the return.

ScanKit

ScanKit · Organization

· 23 min read

# How to calculate QR code campaign ROI, and prove it to your clients

Only 12 per cent of marketers can connect a QR scan to a revenue outcome, according to a 2025 survey of 524 marketers by Uniqode. A parallel Bitly survey, also conducted in 2025, put the figure at 16 per cent. Both numbers are striking because QR codes are fundamentally trackable. Every scan is logged, timestamped and geolocated. The attribution gap is not a data problem; it is a methodology problem. Agencies that solve it gain a genuine competitive advantage: they can show clients a return, not just a reach figure, and they can defend spend with evidence rather than opinion.

This guide walks through the full chain, from how you define a conversion before you print a single flyer, to how you build a client-facing ROI report your account manager can present without a statistics degree.

Why QR campaigns are genuinely hard to attribute

A QR scan sits at the boundary between offline and online. A consumer sees a poster, scans it with their phone, lands on a page, and possibly buys something or fills in a form. The scan itself is captured in the QR platform. The conversion happens in your landing page, your e-commerce checkout, or your CRM. Nothing connects those two systems automatically.

The standard shortcut is to use a dedicated URL and count page visits. That gets you to scan volume and page-view data but stops short of revenue. You cannot calculate ROI from page views alone: you need a downstream conversion event that has a monetary value, and a reliable way to tie that event to the QR scan that started the journey.

The other difficulty is that most QR campaigns run alongside other marketing channels. A consumer might see your TV spot first, then encounter the QR code on packaging in a supermarket two weeks later. Did the QR code drive the sale? It contributed, but attributing 100 per cent of revenue to the scan would be dishonest. An honest ROI figure acknowledges the model it uses and its limitations.

None of this means QR attribution is impossible. It means you have to set it up deliberately, before the campaign launches.

The five numbers you need

Every QR campaign ROI calculation rests on five figures:

1. Total campaign cost. This is everything: media spend (printing, OOH placements, direct mail postage), creative and design, the QR platform subscription cost (or pro-rated share of it), the time to build and manage the landing page, and any agency labour hours you are billing for. Leaving out the platform cost or the labour is the most common way agencies undercount cost and overstate ROI.

2. Total scan volume. The number of times the code was scanned during the campaign window. Your QR platform provides this directly. If you are running multiple codes (one per placement, one per region, one per client branch), sum them but keep the per-placement breakdown for the performance analysis.

3. Post-scan conversion rate. The percentage of scanners who completed the desired action on the landing page. A form fill, a product purchase, an appointment booking, a download. This requires conversion tracking on the landing page, either a GA4 goal, a CRM form submission, or an e-commerce order confirmation event. If you did not set up tracking, you will need to estimate this number, which means you can calculate an estimated ROI but not a hard one.

4. Revenue per conversion. What is one conversion worth? For an e-commerce campaign, this is average order value. For a lead-generation campaign, you need either a known close rate and average deal value, or an agreed lead value that the client uses for all channels. For a brand-awareness campaign, there is no per-conversion revenue figure, which means a standard ROI calculation is not appropriate (see the section on awareness campaigns below).

5. Conversion volume and total attributed revenue. Multiply total scans by post-scan conversion rate to get conversion volume. Multiply that by revenue per conversion to get total attributed revenue.

The ROI formula

Once you have those five numbers, the calculation is:

ROI (%) = [(Total Attributed Revenue - Total Campaign Cost) / Total Campaign Cost] x 100

A worked example: a regional supermarket chain hires your agency to run a direct-mail campaign for a loyalty card sign-up. You send 50,000 mailers. A QR code links to a dedicated landing page with a form. The campaign runs for eight weeks.

  • Total campaign cost: printing (£3,200) + postage (£11,500) + design (£800) + QR platform pro-rated (£90) + landing page build (£400) + two hours per week agency time at £80/hour (£1,280) = £17,270.
  • Total scans: 3,100 (this is a 6.2 per cent scan-through rate on 50,000 mailers, which is within the range for direct mail according to Uniqode's platform data).
  • Post-scan conversion rate: 21 per cent (form fills / scans, measured in GA4).
  • Conversions: 3,100 x 0.21 = 651 new loyalty card sign-ups.
  • Revenue per conversion: the client has told you that a new loyalty card member is worth £28 in incremental spend over the first 90 days, based on their CRM data.
  • Total attributed revenue: 651 x £28 = £18,228.
  • ROI: [(£18,228 - £17,270) / £17,270] x 100 = 5.5 per cent.

That is a modest but positive return. It is also honest. You have not inflated the revenue figure by ignoring campaign cost components, and you have not attributed all loyalty sign-ups to this campaign (other channels were running; you are counting only sign-ups that came through the QR landing page URL).

Step 1: Define the conversion before printing

The most important decision in a QR campaign ROI calculation happens before the campaign launches: you need to agree with the client what counts as a conversion, and you need to confirm that the conversion is technically trackable.

Conversions fall into three categories:

Hard conversions: Direct revenue. An e-commerce order completed on the landing page, a subscription purchased, a product redeemed with a QR-linked coupon code. These produce a clean, auditable revenue figure. If your client sells direct, aim for this.

Soft conversions with agreed value: A form fill, a lead submission, an appointment booking. The client must provide a known or estimated value per lead. "A booked consultation is worth £150 to us, based on our 30 per cent close rate and average project value" is usable. Without that number, you can calculate cost per lead but not ROI.

Engagement events (not suitable for ROI calculation): Video plays, page scrolls, time on page, PDF downloads. These are useful for measuring content resonance but they are not conversions in any revenue sense. Report them as engagement metrics, not as ROI evidence. Trying to put a revenue value on a video play will destroy your credibility with any financially literate client.

Once the conversion is defined, confirm that you can track it. A GA4 conversion event on a thank-you page, a CRM form submission with UTM parameters captured in hidden fields, or an e-commerce order event with campaign source attribution. If the tracking is not in place before the QR code is live, you cannot calculate ROI retrospectively.

Step 2: Build the attribution chain

The technical link between a QR scan and a downstream conversion is a UTM parameter set, embedded in the QR code's destination URL. This is covered in detail in the QR codes in Google Analytics 4 guide; the short version is:

  • utm_source=print (or ooh, packaging, direct-mail; match the media type)
  • utm_medium=qr
  • utm_campaign=your-campaign-name
  • utm_content=placement-identifier (optional; use this to distinguish individual placements - sticker on shelf-edge vs. back of pack vs. receipt)

When the scanner lands on the page, GA4 records the session as source: print / medium: qr / campaign: your-campaign-name. If the scanner converts, GA4 (or your CRM, if the landing page pushes UTM data to a hidden field) attributes the conversion to that source.

The critical step most agencies miss is pushing the UTM data through to the CRM. A form on the landing page should pass utm_source, utm_medium, and utm_campaign values through hidden form fields. This means when the lead lands in your CRM, the account manager can see exactly which campaign, and which placement, generated that lead. Without this, the CRM knows you received a form fill; it does not know it came from the QR code on a train platform in Amsterdam rather than a Google ad.

For multi-touch attribution, where your client is also running paid social and email alongside the print campaign, you will need to decide on an attribution model before you report. The four common options:

  • Last-touch: 100 per cent credit to the QR scan if it was the final touchpoint before conversion. Favours whichever channel a consumer used last; tends to undervalue awareness channels.
  • Linear: equal credit across every touchpoint in the customer journey. Requires cross-channel tracking to implement correctly.
  • Time-decay: more credit to touchpoints closer in time to the conversion. Useful for short promotional campaigns where recency matters.
  • Position-based (W-shaped): splits credit equally between the first touchpoint, the conversion event, and the lead-creation step in the middle. Common for B2B agencies managing longer sales cycles.

For most QR-led print campaigns, last-touch is the practical default because it is the only model you can implement without full cross-channel tracking. State clearly in your report that you are using last-touch attribution, and that this likely understates the QR code's influence on consumers who were already aware of the brand through other channels.

Diagram of the five-step QR attribution chain: print material, scan event, UTM landing page, CRM form capture, and revenue attribution.
The five links in the QR attribution chain, from physical print touchpoint to attributed revenue in GA4 or your CRM.
  1. Print material with embedded QR code (the physical touchpoint)
  2. Scanner's device captures the QR; a scan event is logged in the QR platform
  3. Browser opens the destination URL; UTM parameters are recorded as a GA4 session
  4. Form or checkout captures the conversion; UTM values pass to the CRM via hidden fields
  5. Revenue event is attributed back to the campaign source in GA4 or the CRM

Step 3: Establish a scan-through rate benchmark

Scan-through rate (STR) is the QR equivalent of click-through rate for print. It is calculated as:

STR (%) = (Total Scans / Total Impressions) x 100

Impressions is the estimated number of times the code was seen, which depends on your media type. For direct mail, it is the mailing quantity. For a poster in a high-footfall location, it requires an estimate based on footfall data. For product packaging, it is units sold during the campaign window.

Uniqode's platform data (from 204 million scans across their network, as of April 2024) provides industry-level STR ranges by vertical. These are single-vendor figures, not an independent industry standard, but they are the most detailed published dataset and are useful as a directional benchmark:

  • Restaurants: 45.2 per cent
  • Food and Beverages / FMCG: 14.9 per cent
  • Events and Services: 18.1 per cent
  • Consumer Goods: 12.2 per cent
  • Apparel and Fashion: 10.1 per cent
  • Retail: 5.8 per cent
  • Real Estate: 4.8 per cent

Treat these as upper-bound estimates for well-executed campaigns. A new campaign with a weaker call to action, a poorly sized code, or a placement where the audience is in motion will sit below these figures. The QR code size and design and getting more scans guides address the factors that push STR up or down.

Setting a pre-launch benchmark does two things. First, it gives you a point of comparison when the campaign is live: you can tell the client whether performance is on track or needs adjustment. Second, it forces an honest conversation about whether the campaign can generate enough scan volume to produce a measurable ROI. A code on a business card handed to 500 people over three months is unlikely to produce enough data to run a statistically meaningful attribution analysis.

Step 4: Handle the campaigns where ROI does not apply

Not every QR campaign should be evaluated on ROI, and trying to apply the formula when it does not fit will produce either fictional numbers or a pessimistic result that misrepresents a successful campaign.

Awareness campaigns are designed to increase brand recognition or product consideration. A QR code on a billboard leading to a brand video has no direct conversion event. The right metrics are reach (estimated impressions), scan volume, and post-scan engagement (video completion rate, time on page). Pushing these campaigns into an ROI framework requires an agreed monetary value for brand awareness, which requires econometric modelling that is beyond most agency budgets. Report them as reach and engagement plays; hold ROI conversations for direct-response campaigns.

Very short campaigns (under two weeks) often do not generate enough conversion data for a reliable rate estimate. A scan-through rate based on 120 scans is statistically noisy. Report what you have, state the sample size, and recommend a longer run next time.

Negative ROI happens, and it is worth showing clients why. QRCodeKIT's worked example shows an OOH campaign that returned -55 per cent ROI over 90 days: high media placement costs, a moderate scan volume, and a short attribution window combined to produce a poor measured return. Presenting negative ROI honestly, with an explanation of which cost components drove the loss, is more credible than silence. It also leads to a productive conversation about media selection, attribution windows, and the relative cost per scan of different formats.

Step 5: Structure the client report

The most common agency failure in QR reporting is presenting raw data rather than a structured report. A list of scan counts by date does not tell a client anything useful. A structured report moves from context through performance through business outcome.

Tier 1 - Context. What was the campaign, what did it cost, what was the objective. Include the attribution model you used and the conversion event you tracked.

Tier 2 - Reach and volume. Total impressions (estimated), total scans, unique scans, scan-through rate. Compare against the benchmark you set pre-launch.

Tier 3 - Audience. Geographic breakdown (which cities, regions, or countries). Device split. Time-of-day and day-of-week patterns (useful for planning future placements). If you are running multiple codes, show a per-placement breakdown so the client can see which execution worked harder.

Tier 4 - Conversion performance. Total conversions, conversion rate (post-scan), cost per conversion. If multiple conversion events are tracked (form fill plus product purchase), report them separately.

Tier 5 - Business value. Total attributed revenue (or total attributed lead value), ROI, cost per acquisition versus the client's benchmark for other channels. This is the executive summary slide.

Tier 6 - Recommendations. What to change next time. A higher-performing placement, a different call to action, a shorter redirect path, a landing page change suggested by A/B test results.

The only metrics clients consistently care about, according to Bitly's 2025 survey of 250 marketers, are unique users (54 per cent ranked it most important) and post-scan conversion rate (52 per cent). Present those two prominently; include the others for completeness.

Keep the report anchored to the landing page performance, which is where most of the post-scan conversion story lives. A 6 per cent STR that converts at 30 per cent beats an 18 per cent STR that converts at 4 per cent. The page is as much a part of the campaign result as the print placement.

What to do when the tracking breaks

UTM parameters get stripped in some environments. iOS users who open QR scans in Safari's private mode will have UTM data removed by Intelligent Tracking Prevention. Direct app opens (a consumer scans a code and it opens in a native app rather than a browser) can drop attribution entirely. These are real failure modes, not edge cases.

The practical mitigation is to use a dedicated QR landing page URL rather than appending UTMs to your main website homepage or product URL. A page that can only be reached via the QR code means any visit to that page is a QR-driven visit, even if the UTM parameter was stripped. This is the same logic as using a dedicated vanity URL for radio ads.

For campaigns where stricter attribution is needed (a high-budget direct-mail campaign with significant revenue at stake), consider supplementing UTM tracking with a promotion code on the landing page: a short, campaign-specific code the consumer enters at checkout. Promotion code redemptions are tracked independently of UTM parameters and serve as a secondary confirmation of QR-driven conversions.

These approaches are covered in detail in the tracking print campaigns guide.

The cost per scan benchmark

One metric that clients understand intuitively but rarely see calculated is cost per scan. It converts the media spend into a per-engagement cost comparable to digital channels:

Cost per scan = Total Campaign Cost / Total Scans

For a direct-mail campaign costing £17,270 that produces 3,100 scans, cost per scan is £5.57. That is the cost of a single engaged interaction with your print creative. For comparison, a Google Display ad CPL (cost per lead, not click) is commonly quoted in the £150-£450 range for B2B categories (Uniqode benchmark, 2025). Even allowing for the lower conversion rate from a print scan versus an in-market search click, cost-per-scan can be a compelling figure for clients who have been trained to evaluate digital media in cost-per-click terms.

Do not present cost per scan as a standalone ROI figure. It is a cost metric, not a return metric. Use it alongside the full ROI calculation as a way of contextualising the media efficiency of the campaign.

The dynamic QR code advantage for ROI measurement

Static QR codes point to a fixed URL. If you want to change the destination, or add UTM parameters you forgot to include, you have to reprint the material. Dynamic QR codes use a redirect layer: the printed code points to a short URL (ScanKit's /r/[slug]), and the platform routes the scan to your actual destination URL. That destination can be updated after printing, and UTM parameters can be amended between scan events.

The ROI-relevant consequence is that you can iterate on the landing page, the UTM setup, or the attribution logic during a live campaign without reprinting. If you realise three weeks in that your conversion tracking is broken because the UTM parameters were not being passed to the CRM, you can fix the destination URL and the hidden field mapping without abandoning the campaign data you have already collected. With a static QR code, you would be starting over.

Dynamic codes also let you run A/B tests on the destination by routing alternate scans to different landing pages. This is impossible with a static code.

Frequently asked questions

How do you calculate ROI for a QR code campaign?

The formula is: ROI (%) = [(Total Attributed Revenue - Total Campaign Cost) / Total Campaign Cost] x 100. Total campaign cost includes media spend, creative, printing, postage, QR platform fees, and agency time. Total attributed revenue is total scans multiplied by the post-scan conversion rate, multiplied by the revenue value of one conversion. You need conversion tracking on the landing page (GA4, CRM form, or e-commerce event) to get the conversion rate.

What is a good scan-through rate for a QR campaign?

It depends on the medium and vertical. According to Uniqode platform data (204 million scans, April 2024), food and beverage campaigns achieve roughly 15 per cent STR, retail roughly 6 per cent, and events and services roughly 18 per cent. Direct-mail campaigns typically land between 4 and 8 per cent. These are Uniqode's own platform benchmarks, not independent industry standards, but they are the most detailed published dataset available. Context matters more than the average: a well-placed code with a clear value offer in a high-dwell context will always outperform a poorly positioned code in a transit environment.

What percentage of marketers successfully measure QR code ROI?

Two independently conducted surveys conducted in 2025 found that only 12 per cent (Uniqode, n=524) to 16 per cent (Bitly, n=250) of marketers connect QR code scans to revenue. The same Bitly survey found that 87 per cent struggle to understand the customer journey after the scan. The gap exists because QR scan data lives in the QR platform, and conversion data lives in a separate system (GA4, CRM, e-commerce platform). Closing the gap requires deliberate setup of the attribution chain before the campaign launches.

How do you attribute revenue to a QR scan?

The attribution chain runs: QR destination URL includes UTM parameters (utm_source, utm_medium, utm_campaign) → scanner lands on page, GA4 records the session against those parameters → if the page has a form, hidden fields capture UTM values and push them to the CRM on submission → the CRM record carries campaign attribution → when the lead converts to revenue, you can trace it back to the scan. For e-commerce, GA4's conversion event on the order-confirmation page, attributed to the UTM source, closes the loop without needing CRM.

How does QR code cost per scan compare to digital advertising?

Cost per scan for a direct-mail QR campaign typically falls between £3 and £10 per scan (total campaign cost divided by total scans), depending on print volume and scan rate. That is a cost-per-engagement figure, not a cost-per-click. For context, Uniqode's benchmarks cite cost per lead for Google Display at £150-£450 for B2B categories. The comparison is not apples-to-apples (a scan is an earlier stage of the funnel than a lead), but QR print often compares favourably on cost-per-engaged-interaction for audiences that are hard to reach through digital channels.

Can you calculate QR code ROI for an awareness campaign?

Not with the standard formula, because there is no downstream conversion event with a monetary value. Awareness campaigns generate reach and engagement, not directly attributable revenue. Report these on reach (estimated impressions), scan volume, and post-scan engagement metrics (video completion, time on page, return visit rate). Applying a fabricated revenue value to an awareness event will produce a meaningless ROI figure. Hold ROI conversations for direct-response campaigns with a clear conversion event.

What should a QR code campaign report to a client include?

A structured QR campaign report covers six tiers: (1) campaign context and attribution model used; (2) reach metrics (impressions, total and unique scans, STR vs. benchmark); (3) audience data (geographic breakdown, device split, time-of-day patterns, per-placement performance); (4) conversion performance (conversion rate, cost per conversion); (5) business value (total attributed revenue, ROI, cost per acquisition vs. other channels); and (6) recommendations for the next campaign. Present the executive summary (ROI, cost per acquisition, revenue attributed) prominently. Most clients want unique users and post-scan conversion rate above all else.

What is scan-through rate (STR) and how is it calculated?

Scan-through rate is the QR code equivalent of click-through rate for print. Formula: STR (%) = (Total Scans / Total Impressions) x 100. Impressions is your estimated reach: mailing quantity for direct mail, units sold for packaging, footfall estimate for OOH. A 1,000-piece direct-mail send that produces 62 scans has an STR of 6.2 per cent. STR measures how effectively the physical execution (placement, code size, call to action) drives people to scan, independent of what happens on the landing page after.

The short version

Most agencies cannot calculate QR campaign ROI because they never built the attribution chain. The scan data is there; the downstream conversion data is there; the gap is the technical link between them. Set up UTM parameters in the QR code destination before printing, push UTM values through to your CRM via hidden form fields, and agree the conversion event and its monetary value with your client before the campaign launches. Then the ROI formula is straightforward: revenue attributed minus total cost, divided by total cost.

Use a dynamic QR code so you can fix tracking issues after launch without reprinting. Use the QR analytics dashboard to monitor scan volume and per-placement performance through the campaign. Report to clients with six tiers: context, reach, audience, conversions, business value, and recommendations.

The 12 per cent of agencies that can show a client a clear ROI figure at the end of a print campaign are not doing something technically complex. They are doing something most agencies skip: the setup work at the start.

Share

Keep reading