Skip to content
WM KeyboardWM Keyboard
Accessibility

Statistics

The typing counts screen: your level and achievements, streaks, your typos and the slips behind them, the tap heatmap, who you are when you type, punctuation, the record book, languages, voice typing, personal bests, the charts, when counting pauses, and how to delete the lot.

WM Keyboard  About  Statistics

Statistics is the running tally of how much you type: characters, words, backspaces, time spent typing, and a speed figure worked out from those. On top of the counts sit a level that climbs as you type, a set of achievements in the style of SwiftKey’s, a streak calendar, your typos and the slips your hand makes, a heatmap of where your thumbs land, a few badges for the kind of typist you are, your punctuation, a record book, the languages you type in, and a count of the words you say with voice typing. It’s counted on the device and stored on the device. Nothing you typed is kept, only the totals.

Statistics: the all-time tiles, the history chart with its period and metric chips, and the hour-of-day chart.
Statistics: the all-time tiles, the history chart with its period and metric chips, and the hour-of-day chart.
Statistics: the all-time tiles, the history chart with its period and metric chips, and the hour-of-day chart.

There are two other ways in. The Statistics tool opens this screen straight from the keyboard: add it to the toolbar or leave it in the toolbox like any other tool (see The toolbar). And WM Keyboard  About  Storage  Typing statistics is the storage row that owns these files, where Open the settings for this at the bottom lands you on the same screen.

Statistics is also a bundle on Extensions, as Statistics. Off there, the counting stops, the tool leaves the toolbar and the toolbox, and this screen leaves About and search; what was already counted is kept. The bundle’s switch moves Count typing statistics with it.

A keystroke counts when its text reaches your text field. Soft keys, a physical keyboard, braille and morse all take the same path, so they all count. A word you pick off the suggestion strip or draw with a glide counts as a word, but it adds no characters and no time. Counting characters you didn’t type would make the speed figure a fiction. A two-thumb word, made from taps and swipes together, counts once as a glided word when it ends, whether Space, a mark or the all-thumbs-up pause ends it. The letters you tapped in it still count as characters, the way any tap does.

Voice typing has a count of its own, kept beside the typing and never inside it: the words it put in, the phrases, and the time the microphone listened. See Voice typing. Other insertions aren’t counted at all, on purpose: handwriting, and anything a panel puts in the field, whether that’s emoji, a clipboard entry or a translation. Backspaces are counted separately and never subtract, because the statistic is work done rather than text that survived. A word-delete swipe counts as one backspace.

Time is measured in bursts. The gap between two keystrokes joins your typing time only when it’s 5 seconds or shorter. Anything longer is you thinking, switching apps, or putting the phone down, and it adds nothing. Speed is then the usual arithmetic: characters ÷ 5, over the minutes of typing time.

What lands on disk is only ever aggregate: one bucket per calendar day, the lifetime sums, the achievement counts, a lifetime hour-of-day histogram, the same count split by day of the week, your fastest typing speed, and for each layout a count of taps per quarter-key cell. Since the typo pass the file also holds the typo counts (autocorrects fired, kept and undone, offers taken, words you fixed by hand, your best clean run), a count per punctuation mark, words typed in capitals, the record book’s numbers, and a word count per language id. No text, no per-app split, no timestamp finer than the day, and nothing that says which key followed which. The longest word is stored as a number of letters, never the word. Day buckets are kept for 370 days, counted back from the newest day recorded. Pruning them costs you nothing at the top of the screen, because the all-time totals are stored separately.

The one thing on the screen that is text, the slips and the words you fix most, isn’t in this file at all. It’s read off Learned corrections, which already lists the same pairs, and goes when you delete those.

The screen opens on your level: its number, its name, and a bar to the next one, with your XP and the XP still needed written under it. The info button beside the heading repeats how XP is earned.

  • 1 XP for every word you type, however it got into the field, and for every word you say with voice typing.
  • 1 more XP for every word the keyboard predicted, finished from a few letters, or read from a glide.
  • 100 XP for every achievement step you reach (see below).

Each level costs 500 XP more than the one before it. Level 2 starts at 500 XP, level 3 at 1,500, level 4 at 3,000, level 5 at 5,000, and so on without a top. The name changes in bands that widen as the levels spread out:

From levelName
1Beginner
3Novice
5Apprentice
8Regular
12Skilled
17Adept
23Expert
30Master
40Grandmaster
50Legend

Nothing about the level is stored. It’s worked out from the counts every time the screen opens, so it can never disagree with them: deleting the statistics takes you back to level 1, and restoring a backup brings your level back with the counts.

Under the level are ten achievements, one row each. A row says what it counts, which step you’re on (“Step 2 of 9”), your count against the next target (“43/200”), and a ring that fills towards it. Once every step is done the row says so and the ring stays full, and the count keeps climbing.

AchievementWhat it countsSteps
Words typedEvery word, however it got there500, 2,000, 10,000, 50,000, 100,000, 250,000, 500,000, 1,000,000
Keystrokes savedTaps that suggestions and glides did for you200, 1,000, 5,000, 20,000, 50,000, 100,000, 250,000, 500,000, 1,000,000
Words predictedWords picked from the suggestions before you typed a letter200, 1,000, 5,000, 20,000, 50,000, 100,000
Words completedWords finished from the suggestions after a few letters100, 500, 2,000, 10,000, 50,000, 100,000
Glide typingWords drawn with one stroke200, 1,000, 5,000, 20,000, 50,000, 100,000
Glide distanceHow far your finger has travelled gliding, in metres20, 100, 500, 1,000, 5,000, 10,000, 42,195 (a marathon)
Two-thumb typingWords made from taps and swipes together100, 500, 2,000, 10,000, 50,000
Voice typingWords you said instead of typed200, 1,000, 5,000, 20,000, 50,000, 100,000
Saved by autocorrectCorrections that stood once you typed on50, 200, 1,000, 5,000, 20,000, 50,000
Clean runYour best run of words with no backspace, autocorrect or hand fix10, 25, 50, 100, 250, 500

How the keyboard decides what each pick was:

  • Predicted means you picked a suggestion with nothing of the word typed yet. Completed means you had typed some of it and the pick was longer. A pick no longer than what you typed, like a correction of “teh”, counts as a word and nothing more.
  • A pick that replaces a word you just glided, or the word under the caret, is fixing a word rather than predicting one. It counts as a word only.
  • A flick up off a key that shows a word counts the same way as a pick from the suggestions.
  • Keystrokes saved for a pick are the word’s letters plus the space the keyboard adds after it, less the letters you had already typed and less one for the tap on the suggestion itself. A glided word saves all its letters but one, for the stroke. A two-thumb word saves its letters less one for each tap and each swipe in it, so “hello” made from a tapped h and one swipe saves 3.
  • Glide distance is the length of the stroke on the glass, measured with your screen’s own pixel density, so a bigger phone doesn’t make the distance grow faster.

The rings are hidden from screen readers. The count beside each one already says the same thing in words.

Streaks shows three numbers over a calendar. Current streak is the days in a row, up to today, that you typed or said something. A day you haven’t typed on yet doesn’t break it: the streak counts back from yesterday until a whole day passes with nothing. Longest streak is the best run in the history the keyboard keeps (370 days), and Days typed is how many days in that history have anything on them.

The calendar is the last 26 weeks, one square per day, a column per week with Monday at the top and today in the last column. A darker square is a busier day, counting typed and spoken words together. The calendar is hidden from screen readers. The three numbers and the line under it (“Days with typing in the last 26 weeks”) say what it shows.

Typos is four tiles and up to two rows, shown once you have typed a word.

  • Autocorrects is every time the keyboard replaced the word you had just typed, whether it decided alone or you tapped the near-miss chip. An apostrophe put back or a script flipped isn’t one.
  • Fixed by hand is every word you went back and repaired yourself, a slip’s worth of edits (the same bar Learned corrections uses: three letters or more, no more than two edits, or three in a long word). It counts whether or not the keyboard is allowed to learn from the fix.
  • Typos per 100 words is those two together, for every hundred words typed.
  • Autocorrect trust is how often a correction stood once the text around it settled, as a share of the corrections that were judged at all. It shows a dash until 20 have been judged. A correction you backspace away, undo from the chip, or overwrite with your own spelling later is an undone one; one you type straight past is a kept one; one whose fate the keyboard can’t read off the field is neither.
  • Best clean run is the most words in a row with no backspace, no autocorrect and no hand fix among them. A hand fix is only known once the text settles, so it ends the run late: the words you typed between the slip and the repair stay in the run.
  • Fixes you accepted counts the near-miss chips you tapped. Each is also an autocorrect.

Your signature slips follows when the keyboard has learned anything from your own fixes: up to three slips your hand makes most (a letter typed instead of its neighbour, a letter left out, two swapped), and up to three words you fix most, as “teh → the” with how many times. These are read off Learned corrections rather than counted here, so they only fill while Learn from my fixes is on and go when you delete that list. The row at the bottom opens the whole list.

Where you tap is a heatmap of every key press on the letters layer, drawn over the letters of that layout. Warmer, brighter colour means more taps. Under it are the total number of taps on that layout and the five most tapped letters.

  • Every key on the letters layer counts, space, backspace and shift included, because the map is about where your thumbs land rather than what they typed. The symbols layer and a secondary layout are left out, since they put other keys under the same spots, and so is anything you type while a panel is open.
  • Each tap is counted in the part of the key it landed in, a quarter of a key each way. Positions are measured in keys across and rows down, so a tap in portrait and the same tap in landscape land in the same place.
  • Each layout gets a map of its own. With more than one, chips above the map pick which one to show (up to the four you tap most). The keyboard keeps maps for up to eight layouts, and a ninth makes room by dropping the one you tap least.
  • A tap more than three quarters of a key from every letter, like one on the space bar, is on the map but not in the “Most tapped” list.

The map itself is hidden from screen readers, and the “Most tapped” line is its version in words.

After the level, the achievements, the streaks and the heatmap, the screen shows its counts. All time is five tiles, three to a row: Characters, Words, Average speed, Time typing, and Backspaces. Average speed shows a dash until there’s at least 30 seconds of recorded typing time behind it. Below that, a words-per-minute number is noise rather than a measurement.

Where your words come from splits every word by how it went in, one row each with its count, its share and a bar: Typed letter by letter, Predicted, Completed, Glided, Two-thumb and Spoken. Each word is in one row only. A way you have never used doesn’t get a row.

Up to four badges, each read off the counts above and nothing else, so they come and go as your habits do. One for the hours, one for the week, one for the backspaces and one for the punctuation, and a badge only once there’s enough behind it: 2,000 keystrokes for the time ones, 500 words for a shouter, 100 sentence endings for the marks.

BadgeWhen
Night owlAt least 35 % of your keystrokes fall between 22:00 and 04:00
Early birdAt least 30 % fall between 05:00 and 09:00
Lunch typistAt least 30 % fall between 12:00 and 14:00
Weekend typistSaturday and Sunday hold at least 40 % of your keystrokes
Weekday typistThey hold 10 % or less
CarefulFewer than 5 backspaces per 100 characters
FearlessMore than 15
ShouterAt least 5 of every 100 typed words are in capitals
Exclaimer, Questioner, Trailing offThe mark that ends most of your sentences is !, ? or …
Full stopThe full stop ends at least 90 % of them

Punctuation is one bar split by mark, biggest share first and a lighter shade for each rarer one, with a row per mark under it giving its count and share. The marks counted are ! ? . , ; : … ’ and ”. Three full stops in a row count as one ellipsis, so ”…” and ”…” come to the same thing. Only marks typed as a key of their own count; the full stop at the end of a double-space sentence, or one a snippet or a panel put in, isn’t a keystroke. Words shouted is the words you typed in capitals, two letters or more, letter by letter (a glided or picked word isn’t judged).

The longest of everything, each row waiting until it has a number: Longest word (letters in the longest word you typed, picked or glided, kept as a number only), Longest glide, Longest stretch (the longest run of typing with no pause over 5 seconds), Longest backspace run, Words deleted whole (words a delete swipe took in one go) and Emoji sent, with the emoji per 100 words under it. Emoji count wherever they came from: the panel, the suggestion strip, a shortcut. Which emoji is the emoji panel’s own business and never here.

Languages says how many languages you have typed in, then one row per language with its words, its share and a bar, most first, up to eight. Each counted word goes to the language the keyboard was on when it ended; the file holds the language id and a count, nothing about the layout. A keyboard cycling through more than 64 languages keeps the 64 with the most words.

Voice typing appears once you have dictated something. Its four tiles are Words spoken, Phrases, Time speaking and Speaking speed. A phrase is one stretch of speech the keyboard put in the field, and its time runs from when the microphone started listening to when the words went in, so it includes the moment Whisper or a server took to transcribe. A phrase that took more than 10 minutes is left out of the time, because that’s a microphone left open rather than talking. Speaking speed is spoken words per minute of that time, and shows a dash until there’s a full minute.

Words in a language written without spaces (Chinese, Japanese, Thai, Lao, Khmer and Burmese) count one per letter. Voice typing into the keyboard’s own boxes, such as a panel’s search field, isn’t counted. Spoken words earn XP and count towards the streak and the best day, but they are never characters, never part of Words in the All time tiles, and never part of the typing speed.

  • Fastest stretch is your best speed over any run of typing at least 15 seconds and 50 characters long, with no pause longer than 5 seconds inside it. Shorter runs would let two quick words post a silly number.
  • Best day is the day with the most typed and spoken words, with its date.
  • Average word length is the letters in each word you typed, picked or glided.
  • Taken back is backspaces for each 100 characters you typed. (It was called Corrections before the Typos section existed; the typo figures are up there now.)

A row only appears once it has a number.

The same counts turned into things you can picture. Novels is your typed and spoken words divided by 80,000, a round figure for an adult novel. Time saved is how long the keystrokes saved would take you to type at your own average speed, or at 40 wpm before you have one. Running track laps is your glide distance on a 400 m track. Key presses is every letter, space, mark and backspace. Time saved and the laps wait until there’s at least a minute or a tenth of a lap to show.

History is a chart with two rows of chips. The first picks the window: Days for the last 14, Weeks for the last 12, Months for the last 12. The second picks what’s plotted: Words, Characters, Speed, Spoken (words from voice typing) or Typos (autocorrects and hand fixes together, counting from the version that added them). Words, Characters, Spoken and Typos draw bars. Speed draws a line over a light grid. Quiet buckets still get a tick, so the axis reads as a run of days rather than a chart full of holes. Under the chart is one row per bucket that has something in it, newest first: the date, “N words · N characters” (with ”· N spoken” added on a day you dictated), and the bucket’s speed on the right whenever the bucket recorded any typing time at all. The 30-second floor applies to the all-time tile only, so a row can show a speed the tile still refuses to.

When you type is the 24-hour histogram, with your busiest hour named underneath in your own time format. It only appears once at least one hour has something in it.

Your week is a punch card: seven rows, Monday first, with a dot for each hour of the day. A bigger dot means more keystrokes in that hour, and your busiest day is named underneath. It counts from the version that added it, so it can look emptier than the hour histogram above it at first.

Both charts are hidden from screen readers on purpose. Every number the history chart draws is restated in the bucket rows below it, so nothing there is available only as a picture. The hour histogram and the punch card are the exceptions. Only the busiest hour and the busiest day are named in words, and the rest is shape alone.

Three switches can stop the counting, and any one of them is enough:

SettingWhereDefault
Count typing statisticsWM Keyboard  About  StatisticsOn
Pause learningWM Keyboard  Tools  IncognitoOn
Typing statisticsWM Keyboard  Tools  Power savingOff

Pause learning is the incognito one, and it does what its name says for statistics too. With incognito on and that switch on, which is how it ships, nothing you type in an incognito session is counted. Turn the switch off and incognito stops mattering here.

A password field is never counted, whatever these switches say: neither its keystrokes nor its taps on the heatmap.

Typing statistics under Power saving is off by default, so power saving doesn’t touch your counts unless you ask it to. When you do, it suppresses counting for as long as power saving is running. It never changes the setting on this screen, which is waiting for you when power saving stops.

A pause is a real pause, not a gap that gets filled in afterwards. When counting comes back on it forgets the previous keystroke’s timing, so the stretch you weren’t counted through can never land in your typing time. Not even when it was shorter than the five-second burst gap.

Delete all statistics sits at the bottom, and it asks first: “This deletes every count and average. You cannot get them back.” It takes the achievement counts and the heatmaps with it, so your level goes back to 1. It’s greyed out while there’s nothing counted yet. Switching the counting off doesn’t hide what’s already there, so the tiles, the charts and a working delete button all stay put.

The same data can also go from WM Keyboard  About  Storage  Typing statistics. It’s an ordinary section in Backup & restore too, listed there as Typing statistics, so you can include or leave out your counts when you export.

WM Keyboard  About  Statistics
SettingControlDefault
Count typing statisticsToggleOn

The row carries an info button repeating the privacy terms. The counts stay on your device, nothing you type is saved, nothing leaves the device, and counting pauses while incognito pauses learning. Turn it off and the screen keeps whatever it already has, with “Statistics are off. Turn them on to start counting.” underneath. It’s a normal settings row, so it has the restore control described in Putting one setting back.

  • Words are counted off the keystroke stream, not off the word the field ends up with. A letter or digit arms a word, and the next separator counts it. That works the same for scripts that compose as they go and for scripts that commit each letter. Finishing a half-typed word by tapping a suggestion counts it once, not twice.
  • A word committed by a suggestion or a glide adds no characters and no time. Only the word tally and the achievement counts move, which keeps your average speed honest.
  • The keyboard’s own boxes don’t count, heatmap included. Typing into the typing test or a panel’s search box adds no characters, no words and no taps, because none of it reaches your text field.
  • The settings screen only ever reads the file. It never saves, so opening Statistics can’t race the keyboard into losing counts. Deleting works the other way round. The file is emptied, then a counter is bumped that tells the keyboard to drop its in-memory copy instead of writing the old numbers back over your deletion.
  • A fresh install starts from zero. The counts live in the app’s own storage, so uninstalling takes them with it. A backup that includes the statistics section is the only thing that carries them to a new phone.
  • The typing speed on the spacebar is separate. WM Keyboard  Typing  Gestures  Typing speed on the spacebar shows your speed over the last few words while you type. It keeps nothing, so it works with these statistics off and in incognito. See Switching languages.
  • Nothing here is build-gated. Counting, the level, the achievements, the heatmap, the charts and the delete action work identically in every build.

See Privacy at a glance for what does and doesn’t leave the device. Incognito & secure fields covers exactly when the pause kicks in, and About & diagnostics covers the rest of the About tree.