Most QR analytics dashboards show you total scans and unique scans side by side. Marketers glance at total scans, feel good, and move on. That's a mistake. The gap between those two numbers — your repeat scan rate — is one of the most diagnostic signals in QR measurement, and almost nobody acts on it deliberately.
This post explains what repeat scan rate actually tells you, how to calculate and benchmark it, and what to do when it's running unusually high or suspiciously low.
What Repeat Scan Rate Is (and How to Calculate It)
Repeat scan rate = the percentage of total scans that came from devices that had already scanned the same code at least once.
The formula:
Repeat scan rate (%) = ((Total scans − Unique scans) / Total scans) × 100
Example: A poster QR gets 400 total scans and 310 unique scans. (400 − 310) / 400 × 100 = 22.5% repeat rate
This means roughly one in four scan events came from a device that had scanned this code before. Whether that's good or bad depends entirely on context.
Note: Most platforms identify "unique" scans by device fingerprint or cookie, not by user account. A person using two different phones counts as two unique scanners.
What a High Repeat Rate Could Mean
A repeat rate above ~25% usually signals one of these situations:
1. The destination is genuinely useful — people are returning
A restaurant table QR linking to a live menu, a gym class schedule, or a daily-deal page will naturally accumulate repeat scans from the same customers. That's healthy engagement, not noise.
2. The QR is in a high-dwell location
Waiting rooms, checkout queues, and trade-show booths generate repeat scans from people who have nothing else to do. The same person might scan twice out of boredom. This inflates repeat rate without reflecting intent.
3. The linked page isn't completing the job
If the destination loads slowly, requires a login, or is unclear, people sometimes re-scan hoping for a different result. Check your scan drop-off data alongside repeat rate — if both are elevated, the page experience is likely the culprit.
4. Automated scanning or testing
A repeat rate above 60% in the first 48 hours of a campaign almost always includes developer testing or internal QA scans. Filter by IP or device if your platform allows it.
What a Low Repeat Rate Could Mean
A repeat rate under ~5% on a code that's been live for more than a week tells a different story:
- One-and-done destination — think a PDF download, a coupon claim, or a one-time sign-up form. Users scan, complete the action, and have no reason to return. This is expected.
- Low-traffic placement — the code isn't getting enough reach to accumulate any repeat visitors. Check whether the placement (size, contrast, lighting) is actually scannable. Our guide on QR code color contrast rules covers the most common physical barriers.
- Campaign too new — give any code at least 10–14 days before drawing conclusions from repeat rate.
Repeat Rate by QR Use Case: Rough Benchmarks
| Use Case | Expected Repeat Rate |
|---|---|
| Restaurant menu (ongoing) | 30–60% |
| Event check-in (single day) | 5–15% |
| Product packaging (evergreen) | 10–25% |
| Outdoor poster (short campaign) | 8–18% |
| Trade-show booth | 20–40% |
| Coupon or one-time offer | < 8% |
These are directional, not sourced from a single study — treat them as a starting framework and calibrate against your own historical data over time. For broader scan volume benchmarks, the post on what "good" scan numbers actually look like is worth reading alongside this one.
How to Use Repeat Rate as a Decision Tool
Segment by code, not just campaign total
If you're running multiple QR codes under one campaign (window cling, receipt, bag stuffer), pull repeat rate per code. A window cling with 40% repeat rate and a receipt code with 3% repeat rate are telling completely different stories and should be optimised separately.
Combine with scan-time data
If repeat scans cluster around specific times — say, every Tuesday evening — that's a strong signal that a subset of loyal customers is using the destination regularly. Use that insight to update the content on those days. The post on finding your peak scan hours shows how to pull this analysis.
Use it to judge destination refresh cadence
A repeat rate above 30% on a dynamic QR linked to static content is a missed opportunity. Those returning scanners are expecting something new. Switch to a rotating offer, a weekly update, or a loyalty mechanic. Dynamic QR codes make this possible without reprinting anything.
Flag anomalies quickly
Set a calendar reminder to check repeat rate at days 3, 7, and 14 of any new campaign. A sudden spike (e.g., jumping from 10% to 55% overnight) usually means either a bot scan, a viral social share where the same person re-shared the image, or an internal team testing the code repeatedly after a change.
Setting Up Your Tracking Correctly
Repeat scan rate is only meaningful if your platform separates total from unique scans in the first place. The Super QR Code Generator tracks both by default on all dynamic codes. Static codes, by their nature, can't be tracked at all — another reason most active campaigns should use dynamic codes.
If you're exporting data to a spreadsheet for analysis, pull both columns (total scans, unique scans) daily rather than weekly. Weekly aggregates hide the intra-week patterns that make repeat rate actionable.
Key Takeaways
- Repeat scan rate = (Total scans − Unique scans) / Total scans × 100
- High repeat rate is positive for ongoing-use destinations (menus, schedules), but may signal poor UX or bot traffic in short campaigns
- Low repeat rate is normal for one-time actions (coupons, downloads) but may indicate placement or contrast problems for evergreen codes
- Always segment by individual code, not just campaign total
- Combine repeat rate with drop-off data and scan-time analysis to get a complete picture
- Dynamic QR codes let you update the destination for returning scanners without reprinting
⚽ Free this summer: Run your own football prediction game for 2026. Pick scores, build a private league, and invite friends with a single QR code — completely free. Start your league →
