Open metrics
Community typing data
What people actually do on GuerillaType. Aggregate, anonymous, no PII. Counts are bucketed at session-finish and stored as Umami events — the full operator dashboard is public at /analytics/.
Window: trailing 365 days. Updated 2026-05-11. 28 visitors · 43 sessions · 861 pageviews.
01 · WPM distribution
Count of finished sessions in each WPM bucket. X = WPM bucket, Y = session count. As more sessions accumulate, this settles into a log-normal curve — most typists land in the 40–60 WPM bracket, with a long tail above 80.
02 · Accuracy distribution
Count of finished sessions in each accuracy bucket. X = accuracy bucket (% characters correct), Y = session count. The vast majority cluster between 92–96% — people type fast enough to make some mistakes but not so carelessly the text breaks.
03 · How rare are fast typists?
% of finished sessions at or above each WPM threshold. Each step up cuts the population. 80 WPM puts you well above average; 100 WPM is exceptional. Bars are percentages, not raw counts.
04 · Mode popularity
Sessions finished per mode. Each completed session emits one mode_completed event. Tells you which practice surfaces actually retain typists.
05 · Speed milestones
Counts of sessions that crossed each milestone WPM threshold. The 50 / 75 / 100 / 125 / 150 tiers each fire once per qualifying session — so the bars are session-events, not unique typists.
06 · WPM events by mode
Total WPM-bucket events split by mode. A mode skewing higher means it attracts more practiced typists. Counts are totals, not per-typist averages.
07 · Accuracy events by mode
Total accuracy-bucket events split by mode. Modes biased toward typed-precision (lesson, drill, quote) usually surface higher accuracy than free-form modes.
08 · Top books typed
Public-domain titles people are actively practicing through. Counts are per-paragraph completion events — short works dominate because completion rate falls sharply with length.
09 · Book engagement
Two lifecycle events per book interaction: started (first paragraph typed) and finished (page completed at ≥80% accuracy). The ratio sketches a coarse drop-off rate.
10 · Practice volume bracket
Lifetime session count per typist (bucketed and emitted each time a session finishes). Casual visitors vs. habitual practice. Left buckets are inflated — everyone passes through them on the way up.
11 · Source word list
Which language / corpus people pull from. Defaults to en-1k unless picked otherwise from the toolbar.
12 · Most-missed characters
Top characters typists get wrong across the community. One worst_char event fires per finished session with the single most-missed character on that session's target text. The bar count is the sum of session-events, not raw keystroke errors.
13 · Most-missed words
Words typists trip on. Each finished session emits one worst_word event with the word that accumulated the most errors during that session. Short common words dominate because they appear in nearly every session.
14 · Worst finger (per session)
For each finished session, the engine emits one worst_finger event identifying which finger had the lowest accuracy that session. The cumulative count surfaces which fingers most commonly underperform.
15 · Per-finger accuracy
Each finished session emits one finger_acc event per finger that touched a key, bucketed by accuracy. Aggregated here as total events per finger — bigger bar = more session-events recorded for that finger.
Methodology + disclaimers
- Source — anonymized event data fired by the GuerillaType practice surface at session finish. No accounts, no cookies, no IP retained beyond country lookup. Data lives in Umami Cloud.
- Window — trailing 365 days. Umami Cloud's free tier retains roughly that range.
- Sample — every visitor who completes at least one session contributes. No outlier filtering on this view.
- Bucketing — WPM and accuracy are bucketed client-side at session finish (see
src/assets/js/pages/practice-boot.jsfor the exact thresholds). Umami stores the bucket label as a categorical property. - Derived numerics — averages and medians are computed from bucket midpoints (e.g. "40–50 WPM" contributes 45 to the average). Values are approximations, accurate within roughly ±5 WPM and ±1% accuracy.
- What this can't show — per-user histories (no cookies), continuous distributions (everything's bucketed), or cross-event correlations beyond the four properties on
session_dist. The privacy posture limits what's possible without identifying users. - Refresh cadence — the page bakes a JSON snapshot at each site deploy. Re-fetch by running
UMAMI_API_KEY=… npm run statsthen redeploying. - Full transparency — every tracked event is listed on /privacy/. The raw operator dashboard is public at /analytics/. No event includes anything the user actually typed.