Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Pageloot QR Code Statistics 2026 — Open Dataset

This repository contains the open dataset backing the research report Pageloot QR Code Statistics 2026.

Canonical report: https://pageloot.com/qr-code-statistics/ All citations, references, and links should point to that URL.


Summary

This dataset covers 12,988,255 scan events across 884,074 QR codes created on the Pageloot platform, with 494,380 active codes analyzed. The data spans scans from 235 countries and territories over a window of July 2020 through July 2026, representing 20,000+ brands.

Scan distribution is highly skewed: the top 1% of codes account for 80.4% of all scans. The median code receives 1 scan, the mean is 26.3, the 90th percentile is 12, and the 99th percentile is 161. 34.6% of codes were never scanned (14.6% of paid codes vs. 35.8% of trial codes). Paid codes average 307 scans compared to 8.9 for trial codes.

For the 2023 cohort, 63.4% of scans occurred after day 90 and 40.5% after the one-year mark, indicating strong long-term engagement. Among paid accounts, 54.8% never edited their QR codes, and 67.5% made no edits after day one. 10.2% of raw scans in the last 12 months were identified as bots. Device breakdown (bot-excluded): iOS 48.9%, Android 38.2%, with 87.1% of scans on mobile.


Methodology

A "scan" is a server-side redirect event on a dynamic QR code; static codes cannot be measured. A "paid account" has ≥1 successful charge, active or churned. Codes on unconverted trial accounts are scannable/editable only during a trial window, so trial-side figures reflect both behavior and trial expiry; paid-account figures are uncensored. Edit-behavior data covers paid accounts only. Device/OS/browser figures exclude identified bot user agents (10.2% of raw events, last 12 months). The 2023 cohort includes expired trial codes, which understates longevity if anything. All data is aggregated and anonymized; no PII was accessed. Single-platform data; reflects Pageloot's SMB/agency customer mix. Timestamps UTC. Refreshed quarterly.


Data Dictionary

scans-per-code-distribution-summary.csv

Summary statistics of scan counts across all active codes analyzed.

Column Description
total_codes Total number of QR codes included in the analysis
never_scanned Number of codes with zero recorded scans
mean_scans Mean scan count per code
median Median scan count per code
p90 90th percentile scan count
p99 99th percentile scan count

scan-concentration-percentiles.csv

Scan distribution across 100 equal-sized code percentile buckets, sorted by scan volume descending. Each bucket contains the same number of codes (approximately 1% of the total). Used to illustrate the power-law concentration of scans.

Column Description
pctl Percentile bucket (1 = top 1% of codes by scan volume; 100 = bottom 1%)
scans Total scans attributed to codes in this bucket
codes Number of codes in this bucket (each bucket is ≈ 1/100 of total codes)

never-scanned-paid-vs-trial.csv

Never-scanned rate and scan-count statistics broken down by account type (paid vs. trial).

Column Description
is_paid Account type: True = paid account (≥1 successful charge), False = trial account
codes Total number of dynamic QR codes in this group
never_scanned Number of codes with zero recorded scans
mean_scans Mean scan count per code in this group
median Median scan count per code in this group

Note: Trial-side figures reflect both user behavior and trial expiry (codes lose scan tracking after trial ends). Paid-account figures are uncensored.


lifespan-2023-cohort.csv

Scan counts by code age bucket for the 2023 creation cohort, showing how scans accumulate over the lifetime of a code. The cohort includes all codes created in calendar year 2023.

Column Description
code_age Time elapsed since code creation (bucket label, e.g. 0-7d, 1-2y)
scans Total scans recorded for codes in this age bucket

Note: Includes expired trial codes, which may understate longevity.


scans-by-code-age-all-codes.csv

Scan counts by code age bucket across all codes (all cohorts, all time). Shows when scans tend to occur relative to code creation.

Column Description
code_age Time elapsed since code creation (bucket label, e.g. 0-7d, 365d+)
scans Total scans recorded for codes in this age bucket

edit-behavior-paid-accounts.csv

Edit behavior summary for paid dynamic QR codes. Covers paid accounts only — trial codes lose edit access after trial expiry and are excluded to avoid censored data.

Column Description
paid_dynamic_codes Total number of paid dynamic QR codes in the dataset
never_updated Codes never edited at any point after creation
never_after_day1 Codes not edited after the first day post-creation

code-types-2025-vs-alltime.csv

Share of QR code types as a percentage of all codes created. Reported as shares (not raw counts) for two windows: 2025 alone and all-time. Used to show how content-type preferences have shifted.

Column Description
type QR code content type (e.g. Link, PDF, vCard)
share_2025_pct Percentage share of codes created in 2025
share_alltime_pct Percentage share of codes created across all time

device-os-browser-last-12mo.csv

Scan counts broken down by OS, device, and browser for the most recent 12-month period. Includes all user agents including bots — the 10.2% bot share finding derives from this file.

Column Description
os Operating system (e.g. iOS, Android, Other)
device Device type or model identifier
browser Browser name or user agent string (includes identified bots)
scans Number of scan events matching this OS/device/browser combination in the last 12 months

scans-by-country.csv

All-time scan totals by country or territory. Covers scans from 235 countries and territories.

Column Description
country Country or territory name
all_time All-time total scan count from this country/territory

Note: All-time totals only; no time-series breakdown in this file.


fastest-growing-countries.csv

Year-over-year scan growth for the 6 countries featured in the research report. Countries were selected for the report based on notable growth; this is not an exhaustive ranking.

Column Description
country Country name
last_12m Scan count in the most recent 12-month window
prior_12m Scan count in the preceding 12-month window
yoy_growth_pct Year-over-year growth percentage (last_12m / prior_12m − 1, rounded)

Note: Contains only the 6 countries featured in the report, not a complete country ranking.


scans-by-day-hour-utc.csv

Scan counts broken down by day of week and hour of day (UTC), aggregated across all time. Used to identify peak scan patterns.

Column Description
dow Day of week (0 = Monday, 1 = Tuesday, …, 6 = Sunday)
hr Hour of day in UTC (0–23)
scans Total scan events recorded for this day-of-week / hour combination

License

This dataset is released under Creative Commons Attribution 4.0 International (CC BY 4.0).

You are free to share and adapt the data for any purpose, provided you give appropriate credit. See LICENSE.md for the full license text.

Required attribution: Pageloot QR Code Statistics 2026


How to Cite

APA: Pageloot. (2026). Pageloot QR Code Statistics 2026 — Open Dataset. GitHub. https://github.com/siimti/qr-code-statistics

BibTeX:

@dataset{pageloot_qr_2026,
  author    = {Pageloot},
  title     = {Pageloot QR Code Statistics 2026 — Open Dataset},
  year      = {2026},
  publisher = {GitHub},
  url       = {https://github.com/siimti/qr-code-statistics},
  note      = {Report: \url{https://pageloot.com/qr-code-statistics/}}
}

Machine-readable citation: see CITATION.cff.

About

Open dataset backing the Pageloot QR Code Statistics 2026 research report

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors