Short answer
This article explains how to measure QR code funnel performance and ROI with practical guidance, limits, and implementation details so you can apply it consistently.
A QR code scan is just the start. What matters is what happens next: how many visitors complete the journey, where they drop off, and what business value each conversion generates. Linkbreakers gives you the event data and visitor profiles to answer all of these questions.
Quick summary
- Measure completion rate at each step to identify where visitors abandon the journey
- Calculate conversion rate from scan to desired business outcome (lead, purchase, sign-up)
- Use lead scores to estimate quality of conversions, not just quantity
- Connect UTM parameters to attribute QR conversions to specific campaigns
- Export raw events for deeper analysis in your BI tool or spreadsheet
The QR funnel: what to measure at each stage
Every QR code journey has distinct stages, each with a measurable drop-off. Map your journey to this framework before you start tracking.
| Stage | What happens | Key metric |
|---|---|---|
| Impression | Someone sees the QR code | Not measurable in Linkbreakers |
| Scan | Visitor scans the QR code | Total scans (events) |
| Step completion | Visitor completes a workflow step (form, condition, etc.) | Step completion rate |
| Destination click | Visitor reaches the final URL | Destination load rate |
| Conversion | Visitor completes your business goal | Conversion rate |
The gap between scans and conversions is your funnel. Each step where visitors drop off is an optimization opportunity.
Tracking scans and events in Linkbreakers
Every scan of your QR code creates an event in Linkbreakers. Events capture:
- Timestamp, entry URL, and destination URL
- Device type, OS, browser, and screen resolution
- Approximate location (country, city from IP)
- Visitor ID (new vs. returning device)
- Workflow step triggered
Access events in real time from your dashboard or export them via the Analytics API.
Calculating step-by-step drop-off
For multi-step journeys, calculate completion rate at each step:
Step completion rate = visitors who completed step N / visitors who reached step N
| Example journey | Visitors reached | Visitors completed | Completion rate |
|---|---|---|---|
| Step 1: Scan (entry) | 1,000 | 1,000 | 100% (baseline) |
| Step 2: Form shown | 1,000 | 620 | 62% |
| Step 3: Destination loaded | 620 | 580 | 94% |
| Step 4: Goal conversion | 580 | 87 | 15% |
In this example, the form is the biggest drop-off point. Reducing form friction (fewer fields, clearer value proposition) will have the largest impact on overall funnel performance.
How to find drop-off in Linkbreakers
Form submissions generate events with the action form_submit. Count form submit events vs. total scans on the same link to calculate form completion rate. Export the event stream via API or your analytics integration to do this calculation.
Measuring lead quality, not just quantity
Scan volume is a vanity metric if the visitors don't match your ideal customer profile. Lead scores give each visitor a 0–100 score based on device signals, engagement depth, and behavioral patterns.
| Lead score range | Quality signal | Recommended use |
|---|---|---|
| 0–30 | Low intent, casual scanner | Nurture with content, don't prioritize |
| 31–60 | Moderate interest | Standard follow-up sequence |
| 61–80 | High engagement | Priority follow-up, targeted offer |
| 81–100 | Strong buying signals | Immediate sales contact |
View lead scores in your visitor list. Sort by score descending to prioritize your hottest prospects from any campaign.
Combining volume and quality metrics
| Metric | Formula | What it tells you |
|---|---|---|
| Qualified scan rate | High-score scans / total scans | What % of your audience is high-quality |
| Cost per qualified lead | Campaign spend / high-score leads | True acquisition cost for good leads |
| Quality-weighted conversion rate | (Score × conversion) / total | Adjusts conversion rate for lead value |
Using UTM parameters for campaign attribution
QR codes drive offline-to-online traffic. Without attribution, you can't tie a scan to the campaign that drove it. Use UTM parameters in your destination URLs to attribute correctly in Google Analytics or your analytics platform.
| UTM parameter | What to set | Example |
|---|---|---|
utm_source |
Where the QR code is placed | packaging, poster, event-badge |
utm_medium |
The channel type | qr-code |
utm_campaign |
The campaign name | launch-q1-2026 |
utm_content |
Variant (A/B test) | version-a, store-nyc |
Example destination URL with UTMs:
https://yoursite.com/landing?utm_source=packaging&utm_medium=qr-code&utm_campaign=launch-q1-2026
This lets you see QR-driven conversions alongside all other channels in your GA4 or BI dashboard. See how to track where your leads are coming from for a broader tracking setup.
Calculating QR code ROI
ROI requires knowing both the value generated and the cost. Here's a simple framework:
Step 1: Define conversion value
| Conversion type | How to value it |
|---|---|
| Lead captured | Average lead value from CRM conversion history |
| Sale completed | Average order value |
| App install | LTV estimate minus acquisition cost |
| Event registration | Ticket price or meeting value |
Step 2: Count conversions attributable to QR
Count form submissions and downstream conversions tagged with your QR UTMs over the measurement period.
Step 3: Calculate
ROI = (Revenue from QR conversions - Cost of QR campaign) / Cost of QR campaign × 100
| Input | Example value |
|---|---|
| QR leads captured | 340 |
| Lead-to-customer rate | 12% |
| Customers from QR | 41 |
| Average customer value | $480 |
| Revenue from QR | $19,680 |
| Campaign cost (print + setup) | $2,400 |
| ROI | 720% |
Reading the analytics dashboard
Key views in Linkbreakers
| View | Where to find it | What to use it for |
|---|---|---|
| Live scans | Dashboard → Live | Real-time scan monitoring during events or launches |
| Link analytics | Dashboard → Links | Scans, unique visitors, destinations per link |
| Visitor profiles | Dashboard → Visitors | Per-visitor journey history and lead scores |
| Event stream | Analytics API | Raw events for external analysis |
Metrics to watch per link
| Metric | Definition | Benchmark |
|---|---|---|
| Total scans | All scan events | Baseline — depends on distribution |
| Unique visitors | Distinct device fingerprints | Compare to total scans for repeat rate |
| Form completion rate | Form submits / total scans | 40–70% is healthy for short forms |
| Rescan rate | Returning visitors / total visitors | Above 20% signals strong re-engagement |
| Top countries | Scans by country | Inform geo-targeting priorities |
| Top devices | iOS vs. Android vs. desktop | Guide mobile UX priorities |
Connecting QR data to your BI stack
For advanced funnel analysis, connect Linkbreakers data to your existing analytics infrastructure. See real-time analytics: from QR scan to business intelligence for setup guides covering Tableau, Power BI, and custom dashboards.
| Integration option | Best for |
|---|---|
| Webhooks | Real-time event forwarding to CRM or Slack |
| Analytics API | Pulling historical data for BI dashboards |
| UTM parameters | Merging QR traffic with GA4 or Mixpanel |
| Zapier | Sending leads to email sequences or sheets |
Frequently asked questions
How do I know which step in a multi-step journey is causing drop-off?
Each form submission and workflow interaction generates a distinct event type. Export events via the API and group by event type and link ID. The step with the largest gap between "step shown" and "step completed" events is your biggest drop-off point.
Can I track conversions that happen after the visitor leaves Linkbreakers?
Downstream conversions (purchases, sign-ups on your own site) require UTM attribution. Tag your QR destinations with UTMs, then track goal completions in your website analytics tool. Linkbreakers measures the journey up to the destination redirect.
How do I compare performance across multiple QR codes in one campaign?
Use consistent UTM naming across all links in the campaign and analyze the combined utm_campaign data in GA4. Inside Linkbreakers, use tags to group related links and compare scan volumes side by side.
Is there a way to track offline sales back to a QR code scan?
Yes, through form-captured identifiers. If a visitor scans your QR code and submits a form with their email, then later purchases in-store, you can match the email in your CRM to attribute the sale. This requires a CRM integration via webhook or Zapier.
What's a good conversion rate for a QR code campaign?
It varies widely by industry and journey length. As a rough benchmark: a single-step redirect (scan → destination) has near-100% completion. Add a form and expect 40–70% completion. A 3-step journey might see 25–50% end-to-end. Lead-to-customer conversion downstream depends on your sales process.
Limits and caveats
- Feature availability and limits can vary by plan and workspace setup.
- Results depend on correct implementation, attribution setup, and data quality controls.
- Regulatory and privacy obligations vary by jurisdiction and use case.
About the Author
Laurent Schaffner
Founder & Engineer at Linkbreakers
Passionate about building tools that help businesses track and optimize their digital marketing efforts. Laurent founded Linkbreakers to make QR code analytics accessible and actionable for companies of all sizes.
Related Articles
How do I track where my leads are coming from?
Track lead sources using UTM parameters, QR code analytics, CRM attribution, and multi-touch tracking. Measure channel performance and ROI effectively.
How do I track who scanned my QR code?
Track QR code scanners with detailed analytics including location, device, and timing data. Learn what information is available and privacy limits.
How do you manage and track incoming leads or new business inquiries?
Effectively manage leads with CRM systems, automated tracking, and real-time monitoring. Learn best practices for lead organization and follow-up.
On this page
Need more help?
Can't find what you're looking for? Get in touch with our support team.
Contact Support