Who is using AI? ← the map

the academic backbone · ai tracker

Methodology & Validation

how every number is measured, what changed and when, and how our numbers compare to vendor ground truth — the audit trail behind the dataset.

updated 2026-07-08 · refreshed daily · this page is fully baked — no JavaScript needed

01 · the exact measurement

tool registry, payload groups & anchor normalization

Google Trends compares at most 5 terms per payload, so the 13 tools are pulled in three payload groups with Gemini AI as the shared anchor term in every group. share of Google search interest — relative preference, not usage counts.

toolcompanyexact search termpayload groupid
ChatGPTOpenAIChatGPTAchatgpt
GeminiGoogleGemini AIA · anchor in A+B+Cgemini
ClaudeAnthropicClaude AIBclaude
DeepSeekDeepSeekDeepSeekAdeepseek
GrokxAIGrokAgrok
Meta AIMetaMeta AIAmeta_ai
PerplexityPerplexityPerplexity AIBperplexity
Microsoft CopilotMicrosoftMicrosoft CopilotBms_copilot
MidjourneyMidjourneyMidjourneyBmidjourney
GitHub CopilotGitHubGitHub CopilotCgh_copilot
CursorAnysphereCursor AICcursor
Character.AICharacterCharacter AICcharacter_ai
NotebookLMGoogleNotebookLMCnotebooklm

anchor normalization — written out

for each payload group G in {B, C}, per country r:

  scale_G(r) = A[r]["Gemini AI"] / G[r]["Gemini AI"]     when both anchor readings ≥ 2
             = mean of that ratio over all countries          otherwise (group-mean ratio;
               where both anchors ≥ 2                          1.0 if no such country)

  value[r][tool] = raw_G[r][term] × scale_G(r)      (duplicate anchor columns dropped;
                                                     gemini's value comes from group A only)

  share[r][tool] = value[r][tool] / Σ value[r][·] × 100     → the 13 tools sum to ~100% per country

time series: identical logic PER TIMEPOINT (anchor ≥ 2 test, else the series-wide mean ratio).

timeframes & cadence

  • Country map: now 7-d — interest_by_region, COUNTRY resolution, inc_low_vol=False; a rolling 7-day window snapshotted daily.
  • Global race, weekly: today 12-m — interest_over_time, one point per week over 12 months.
  • Global race, daily: today 3-m — interest_over_time, one point per day over 3 months.
  • Cadence: one snapshot per day (~06:30 site-local time), filenames dated by UTC day; Trends pulls older than 72 h are treated as missing, never reused.

02 · the five signal families

every endpoint, exactly as queried

all five families are fetched by the same daily job and archived as raw snapshots under /history/ — see the research console for the full data dictionary and API.

familysource & exact endpointcadence
search preferenceGoogle Trends via pytrends — interest_by_region (resolution=COUNTRY, inc_low_vol=False, timeframe “now 7-d”) for the country map; interest_over_time “today 12-m” (weekly) and “today 3-m” (daily) for the global race; 3 payload groups of ≤5 terms, “Gemini AI” anchored in eachdaily
SDK downloadsnpm registry — https://api.npmjs.org/downloads/point/last-week/{pkg} and https://api.npmjs.org/downloads/range/{start}:{end}/{pkg} (8 packages); PyPI — https://pypistats.org/api/packages/{pkg}/recent and …/overall?mirrors=false (10 packages)daily
OSS momentumGitHub REST — https://api.github.com/repos/{owner}/{repo}, stargazers_count (12 flagship AI repos)daily
open modelsHugging Face — https://huggingface.co/api/models?sort=downloads&direction=-1&limit=20 and …?sort=trendingScore… (top-downloaded + trending snapshots)daily
attentionWikimedia REST — https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia/all-access/user/{article}/daily/{start}/{end} (user, non-bot views; 365-day backfill; article titles redirect-resolved via https://en.wikipedia.org/w/api.php)daily

03 · known limitations

what this data cannot tell you

the caveats that belong in any methods section built on this dataset — stated here once, plainly.

04 · validation study

construct validity — how our numbers compare to vendor ground truth

Spearman rank correlation (primary; robust, valid for ordinal data) and Pearson on log-transformed values where both measures are continuous. Country names/ISO codes joined via explicit alias table. Pure-python; script: scripts/validation_study.py. Stanford HAI 2026 excluded: its country genAI figures republish Microsoft's (not independent).

Our Claude preference share vs Anthropic's AI Usage Index

ourswithin-country Claude share of AI-tool search interest (%) theirsAUI recomputed from Anthropic's Feb-2026 usage shares — Claude.ai usage per working-age capita, world-proportional = 1.0

full samplen = 62 · Spearman ρ = −0.164 · Pearson (log) = −0.082

high-adoption countries (AUI ≥ 1.0)n = 25 · Spearman ρ = 0.587 · Pearson (log) = 0.585

Our Claude preference share vs Anthropic's AI Usage Index — scatter of 62 countries 0.05 0.1 0.2 0.5 1 2 5 2 5 10 AUI recomputed from Anthropic's Feb-2026 usage shares (log) within-country Claude share of AI-tool search… (log) BD GH GT KR MX NG SG TZ UG

source: Anthropic Economic Index · publisher: Anthropic · license: MIT · accessed 2026-07-08 · 62 countries plotted

honest readFull-sample agreement is weak BY CONSTRUCTION: our share measures preference among a country's AI-engaged searchers, Anthropic's index measures population-wide usage intensity. In low-adoption countries the engaged minority skews developer-heavy — and Claude is developer-favored — so Claude's preference share runs high exactly where per-capita usage is low. Where adoption is substantial (AUI ≥ 1), the two measures agree well; we report both rather than hiding either.

Our ChatGPT preference share vs OpenAI's per-capita usage rank

ourswithin-country ChatGPT share of AI-tool search interest, as rank theirsOpenAI Signals: per-capita ChatGPT message-usage rank (1 = highest), 2026-01 quarter

full samplen = 77 · Spearman ρ = 0.458

Our ChatGPT preference share vs OpenAI's per-capita usage rank — scatter of 77 countries 0 25 50 75 100 60 80 OpenAI Signals: per-capita ChatGPT message-usage rank within-country ChatGPT share of AI-tool search… ET ID IL KR MM SG TZ UG VN

source: OpenAI Signals · publisher: OpenAI · license: CC BY 4.0 · accessed 2026-07-08 · cite: NBER Working Paper 34255 · 77 countries plotted

honest readWeak construct match, reported for completeness: OpenAI ranks countries by per-capita usage INTENSITY; our share measures ChatGPT's WITHIN-COUNTRY dominance over other AI tools. A country can use little AI overall yet prefer ChatGPT overwhelmingly, so low correlation here does not indicate error in either dataset.

Our developer density vs Microsoft's AI Diffusion rate

oursmap signal: GitHub developers per 1,000 working-age people (population data: Anthropic AEI) theirsMicrosoft AI Diffusion — % of working-age population using generative AI (Q1 2026)

full samplen = 124 · Spearman ρ = 0.723 · Pearson (log) = 0.713

Our developer density vs Microsoft's AI Diffusion rate — scatter of 124 countries 20 40 60 0.01 0.1 1 10 Microsoft AI Diffusion map signal: GitHub developers per 1,000… (log) AE DZ FR GT KH NO NZ SG TZ

source: Microsoft AI Diffusion Report · publisher: Microsoft AI Economy Institute · license: MIT · accessed 2026-07-08 · 124 countries plotted

honest readOur map counts GitHub-registered developers (a developer-population proxy); Microsoft estimates general-population genAI use. Related but distinct: developer density should correlate with, not equal, population-wide adoption.

excluded on purpose

excluding non-independent data is part of the method — a benchmark that republishes another benchmark would only double-count agreement.

  • Stanford HAI AI Index 2026 — excluded: country-level genAI adoption figures are identical to Microsoft AI Diffusion H2-2025 — republished, not independent.

validation computed 2026-07-08 · the validation script (validation_study.py) and the full data dictionary ship inside the Zenodo deposit README, so every figure above is reproducible from the archive.

05 · methodology changelog

every change, on the record

this changelog is append-only: every change that touches how a number is computed gets an entry before it ships, and any change that breaks comparability of a series with its own past is flagged as a series break with its exact scope. comparing values across time? check the breaks first. newest first.

v2.0 Multi-page tracker + research bundles 2026-07-08
  • Tracker restructured from a single page into /tracker hub + 13 per-tool pages + /tracker/compare + /tracker/developers; no metric definitions changed.
  • Per-country rollup series (history/series/<ISO2>.json) and yearly research bundles (history/research/) introduced — derived views over the same snapshots, no new measurement.
  • Research console (/tracker/research) added: filterable slices, CSV/JSON export with embedded caveats, reproducible query permalinks, documented free JSON API.
v1.1 Data-quality fixes from pre-launch adversarial review 2026-07-08 series break

series-break scope: wiki attention for gemini, claude, cursor (backfill re-based to canonical articles)

  • Wikipedia article titles now auto-resolve redirects to canonical titles before fetching pageviews. SERIES BREAK (wiki attention, tools: gemini, claude, cursor): values fetched before this date used redirect titles ('Gemini (chatbot)', 'Claude (language model)', 'Cursor (code editor)') whose pageviews were near zero; the backfilled series now reflect the canonical articles ('Google Gemini', 'Claude (AI)', 'Cursor (company)'). Note: Wikimedia attributes pre-rename pageviews to the old titles, so early segments of a renamed article's series understate attention (e.g. 'Claude (AI)' before ~mid-2026).
  • npm daily download series now end at the last COMPLETE UTC day; the npm range API reports 0 for the in-progress day and those artifact zeros previously appeared as a same-day collapse. No effect on true values.
  • Snapshot filenames switched from local to UTC dating (prevents a same-data snapshot being written under two different dates around midnight).
  • Stale-cache caps added: Trends pulls older than 72h and signal-family caches older than 7 days are no longer reused; carried-over halves no longer restamp the artifact 'updated' time.
  • Taiwan ISO2 join fixed on the map (display only; data unchanged).
v1.0 Initial methodology — daily archive begins 2026-07-07
  • 13 tools tracked: ChatGPT, Gemini, Claude, DeepSeek, Grok, Meta AI, Perplexity, Microsoft Copilot, Midjourney, GitHub Copilot, Cursor, Character.AI, NotebookLM.
  • Search preference: Google Trends interest_by_region (timeframe 'now 7-d', inc_low_vol=False), pulled in three payload groups of ≤5 terms with 'Gemini AI' as the shared anchor term in every group; group values cross-normalized via the per-country anchor ratio (fallback: group-wide mean ratio when a country's anchor value < 2), then converted to per-country shares summing to ~100.
  • Global race series: interest_over_time 'today 12-m' (weekly) and 'today 3-m' (daily), anchor-normalized per timepoint, converted to shares.
  • Developer signal: npm registry weekly downloads (8 packages) + PyPI weekly downloads via pypistats (10 packages) + GitHub star counts (12 flagship AI repos) + Hugging Face top-downloaded and trending model snapshots.
  • Attention: Wikipedia daily user pageviews per tool article, 365-day backfill.
  • Daily country-level snapshots begin 2026-07-07 (not retroactively reconstructible from Google Trends).

06 · how to cite

put it in the bibliography

DOI: 10.5281/zenodo.21252715 (concept DOI 10.5281/zenodo.21252714).

APA

PIXIPACE. (2026). Who is using AI? — Global AI Tracker dataset [Data set]. whoisusingai.com. Retrieved Jul 8, 2026, from https://whoisusingai.com/tracker/research https://doi.org/10.5281/zenodo.21252715

BibTeX

@misc{whoisusingai2026tracker,
  author       = {{PIXIPACE}},
  title        = {Who is using AI? --- Global AI Tracker dataset},
  year         = {2026},
  url          = {https://whoisusingai.com/tracker/research},
  doi          = {10.5281/zenodo.21252715},
  note         = {Accessed 2026-07-08}
}

the data and the plain-JSON API live on the research console. the collection and build scripts are not published on this site — the validation script and the full data dictionary ship inside the Zenodo deposit README instead. search shares are relative Google search interest, not usage counts — say so in your methods section.