Pilcrow Get

How often does your keyboard break a word you typed correctly?

Explainer · Published · 6 min read

Keyboards are judged by the typos they fix. The number you actually feel is the other one: how often a word you spelled right gets rewritten. I have never seen a keyboard maker publish it, so here is how I measure it for mine, with the charts, the trade-offs and the bugs in my own measurement.

< 8 in 1,000correct words changed, worst of 40 languages
50–83 %single-slip typos fixed
1.7–5.5 %typos made into a different wrong word
392k + 110kclean and slipped words scored

Two numbers that pull against each other

Lower the bar for a correction and you catch more slips. You also overwrite more words the keyboard does not know: names, slang, a word from your other language. A keyboard tuned on “typos fixed” alone drifts towards rewriting, because every lucky rewrite counts and every unlucky one is invisible to that metric.

Here is the trade-off in one real experiment. On recorded phone taps1, I tried a simple rule: when the typed word is a valid word but the sentence model prefers another candidate by t bits, replace it.

Fixed versus broken words at four thresholds: 6 bits fixes 47 and breaks 49; 8 bits 40 and 23; 10 bits 30 and 14; 12 bits 20 and 1.LeadWords changed (4,157 typed right, 145 mistyped)6 bits47 fixed49 broken8 bits40 fixed23 broken10 bits30 fixed14 broken12 bits20 fixed1 broken
A rule I tested and rejected. At 6 bits it breaks more correct words than it fixes; at 12 bits it is 20 for 1, but fixes too little to be worth it alone. The model’s score cannot carry this decision by itself.

A missed typo costs you a retype. A correct word rewritten costs the keyboard its place on your phone. So both numbers go in every report, and a change that moves one has to say what it did to the other.

How it is measured

For each language, the test text is a sample taken every n-th line through every corpus the language is built from, and those lines are kept out of the word list and the model. It is typed back through the keyboard’s own engine, keystroke by keystroke, with the sentence model on and English enabled alongside, on a dictionary that has learned nothing about the user.

PassWhat is typedWhat it scoresWords per language
Cleanevery word spelled rightcorrect words changed4,574+
Slipone slip per word: neighbour key, dropped, doubled or swapped letter, extra letter, missing spacetypos fixed, typos made worse1,257+
Accentswords typed without their accents (31 languages)accents restored—

“Typos made worse” is the one people forget: the keyboard takes your wrong word and turns it into a different wrong word. It is 1.7–5.5 % here.

Forty languages on one chart

Scatter of 40 languages: correct words changed from 0 to 0.8 percent, typos fixed from 50.6 to 83.2 percent.0 %0.2 %0.4 %0.6 %0.8 %50 %60 %70 %80 %90 %Correct words changed (clean pass) →Typos fixed (slip pass) →↖ better
Each dot is one language as it ships. Medians: 0.24 % correct words changed, 72 % typos fixed. The worst language changes 0.76 % of correct words, fewer than 8 in 1,000.

The spread is real, not noise. Languages with heavy inflection have many correct words one letter apart, so a slip lands on another valid word and the keyboard cannot tell. My own language sits near the bottom of my own table.

Moving the curve instead of sliding along it

Tuning a threshold only moves you along the trade-off. To get more fixes and fewer breaks, the decision itself has to get better. The rule engine proposes ranked candidates; a small learned corrector (a two-layer network) then weighs them on relative features (about 26 of them: edit cost, word frequency, the context score, the sentence model’s score, each also relative to the best option and to the typed word) and applies its pick only if it beats “keep what was typed” by a margin. It is trained on mistyped and correct words alike, so it learns when to leave things alone.

Rules only: 70.1 percent of typos fixed at 0.35 percent of correct words changed. Learned corrector: 85.7 at 0.31 (margin 0), 84.4 at 0.16 (margin 1), 82.1 at 0.11 (margin 2).0 %0.1 %0.2 %0.3 %0.4 %65 %70 %75 %80 %85 %90 %margin 0margin 1margin 2, shippedrules onlyCorrect words changed →Typos fixed →
Scored on English while trained only on two other languages: 3,979 typos and 23,117 correct words. At margin 2 it fixes 12 points more typos than the rules alone and changes under a third as many correct words (0.11 % against 0.35 %). Typos made worse fell too, from 6.6 % to 5.1 %.

Without the sentence model’s scores as an input the same corrector is worse than the rules, so the model is the part doing the work.

Where it still fails: short words

On real fingers rather than synthetic slips, the residual errors are concentrated in one place.

Mistouched words restored by length: 1 letter 0 percent, 2 letters 55, 3 letters 69, 4 letters 81, 5 letters 86, 6 letters 87, 7 letters 88, 8 or more 84.0 %25 %50 %75 %100 %0%17%55%221%69%319%81%425%86%59%87%67%88%76%84%8+6%lettersof words
Mistouched words restored, by length, on 5,735 real phone-typed words. Words of one to three letters are 47 % of what people type and about half of the errors left.

The reason: a slipped short word is nearly always another real word. Of mistouched words of one to three letters, 78 % came out as a string the word list holds, against 13 % for longer words. The keyboard’s rule is to keep a valid word, and that rule is right for camelCase and wrong for ib meaning in. That is where the threshold experiment above came from, and why the next step uses where the finger landed, not just the model.

Three times my own number was wrong

1. The test set was the training set’s tail

At first the held-out text was the last 2,000 lines of each language’s main corpus. That corpus was also the training data (almost a quarter of its English sentences mention someone called Tom). And a corpus is concatenated documents, so its last 2,000 lines are mostly its last document. In one language, that document was a subtitle release typed without any accents. The keyboard restored them correctly, and the test scored every restoration as a false correction.

Correct words changed for the same keyboard and language: 8.62 percent on the old test set, 0.14 percent on the fixed one.Last 2,000 lines of one corpus8.62 %Every n-th line of every corpus0.14 %
Correct words changed, same keyboard, same language, two test sets. The fix was sampling every n-th line through every corpus, and excluding those lines from the build.

2. The fixture was wrong, not the engine

Two words in a test list were missing their accents. The keyboard restored them and every run counted two misses. Now the first thing I check when a number looks bad is the test data.

3. A test that could not fail

Three “nothing was learned here” assertions passed against an engine whose learning was switched off. Every negative test now has a positive control beside it: the same setup, a case where the thing should happen, which fails if the setup is broken.

And the recurring small version: twice in one day, a handful of hand-written examples gave a number that a real corpus then contradicted, once by more than ten times. Under about fifty samples, I say so next to the number.

Every bug becomes a line

A bug found on a phone becomes a row in a plain TSV: the text before, the exact keystrokes, the exact text that must come out, and where the report came from. All 940 rows across 40 languages replay on every test run.

lang  before  typed      expected   mode  status  source
en    sorry   runing     running    live  ok      2026-09-23: a stray after the last word read `run in`
en    -       camelCase  camelCase  live  ok      the stray split cut an identifier as `came case`

Many rows say what must not change. Known bugs go in as open (44 of them now): expected to fail, and the test fails the day one starts passing, so nothing gets fixed by accident without being noticed.

What these numbers do not tell you

Share of erroneous words that are a wrong key: about 25 percent in the synthetic test, 91 percent on real phone taps.Synthetic slips (the test)wrong key ≈ 25 %dropped, doubled, swapped, extra: 75 %Real phone tapswrong key 91 %other: 9 %
The synthetic slip pass draws evenly among kinds of slip. Real taps are mostly a finger landing on the next key. The pass is a fair comparison between versions; it is not a promise about your thumbs.
  • Real typing has more than one error per word, and errors cluster. The real-tap set is English only and lab copy-typing.
  • It is my keyboard, measured by me. I could not find a comparable published number for Apple’s keyboard, Gboard or SwiftKey, so there is no competitor column here. I would love to see one.

Language figures from Pilcrow’s scorecard, measured 12 October 2026 on all 40 languages; the corrector and word-length figures from offline runs of October and November 2026. Questions or corrections: info@pilcrowtype.com.

Sources

  1. Keith Vertanen and Per Ola Kristensson, A Dataset of Noisy Typing on QWERTY Keyboards, IUI 2023 (CC BY 4.0): recorded touch points on phone keyboards, used here for the threshold and word-length charts.

Read next