Typing Weak Keys: Finding the Letters That Cost You Accuracy
A typing test that tells you “62 WPM, 94% accuracy” has told you almost nothing you can act on. The 6% is the interesting part, and it is never spread evenly across the keyboard — it is concentrated on a handful of keys your hands have never quite learned. This page explains how the test finds those keys, what the heatmap on your results screen is actually measuring, and how to practise the keys it flags instead of retyping the words you already type perfectly.
What the heatmap measures
Every character in a run is already graded in place — that is how the accuracy percentage gets calculated. The heatmap simply stops throwing that grading away. For each keystroke, three things are recorded: which key the passage was asking for, whether you produced it, and how long it had been since your previous keystroke. Those three numbers, accumulated, are the entire report.
Each keycap is then drawn twice over:
- The fill is your error rate on that key — how often you type something else when that key is what was asked for. A key you never miss stays the same dim slate as the rest of the board; the more often it goes wrong, the further the fill runs toward red.
- The outline is your mean latency on that key, measured against your own average — not against anyone else's. Absolute milliseconds are meaningless across typists: 180 ms is dawdling for a 110 WPM typist and brisk for a beginner. A key that is slower than your average gets a brighter, thicker cyan outline, and the same figures appear in milliseconds in the table beside the board.
The colours are never the only channel. The table lists every tracked key with its attempt count, error rate and mean time, so the report survives being read without colour, or read aloud.
Why errors are charged to the key you missed, not the key you hit
When you mean to type e and hit r, there are two keys involved and only one of them is at fault in any useful sense. The error is recorded against e — the key you failed to produce — because the question the report exists to answer is “which keys let me down”. Charging the error to r instead would smear every mistake across whichever neighbours your fingers happened to land on, and the board would slowly turn a uniform pink that tells you nothing.
Why one run is not enough, and what the sample gate is for
A 30-second run at 60 WPM is roughly 150 keystrokes. Spread across 26 letters — and unevenly, because English is unevenly distributed — that is a dozen or so es, a handful of ks, and quite possibly no z at all. Draw a heatmap from a single run and one fumbled keystroke on a rare letter becomes “your worst key is Z, at 100% error”, which is not a finding, it is a coin flip.
So the numbers accumulate across every run you take, and a key is only shaded, ranked or named once it has been asked for at least a dozen times. Below that it is drawn dark and left out of both lists — tracked, but not yet talked about. The note above the board tells you how many keys have cleared the gate so far; on a fresh browser it fills in over the first few runs.
Long pauses are discarded from the timing, too. If you stop to read the line, take a call, or look away, the gap before your next keystroke is not a measure of how fast that key is under your finger — anything over three seconds is counted as an attempt but not as a latency.
What to do about a weak key
The usual advice — “practise more” — fails here for a mechanical reason. A typing test built from common English words is built, by definition, from the letters you already type well. The word pool behind the standard test contains no z at all and a single q: the letters a heatmap flags first are precisely the ones an ordinary run will barely show you again. Typing more of the same passage is not practice, it is repetition of what already works.
That is what the Drill these keys button on the results screen is for. It hands your weak-key set to the accuracy drill, which rebuilds its passage from real English weighted several times over toward words containing those letters, drawing on a supplementary word list carrying the rare letters the common pool lacks. The drill's strict mode does the rest: a wrong key is counted and the cursor refuses to move until you produce the right character, so a weak key becomes an immediate stop instead of a percentage point at the end.
The set is not frozen. It is recalculated from your live figures each time the drill loads, so as a key stops costing you errors it drops out and the next one moves up. When you want ordinary text again, the drill has a button to turn the weighting off.
Reading the two lists
Your 5 most-missed keys is ranked by error rate, and it is the list to work on first — an error costs you twice, once in accuracy and again in the time it takes to correct it. Your 5 slowest keys is ranked by mean latency against your own average, and it is the subtler list: these are usually keys you get right every time but reach for deliberately, with a tiny hesitation before each one. Fixing those is where a plateaued WPM tends to be hiding, because the hesitation is repeated on every occurrence of a common letter rather than concentrated in an occasional visible mistake.
If both lists are empty, you have not typed enough yet for anything to be worth saying — take a couple more runs on the standard test and come back.
Where the data lives
In your browser, and nowhere else. The per-key totals are kept in this device's local storage alongside your best scores and your recent results. There is no account, no upload, and no server-side record of anything you type here — the analysis runs in the same page you are typing on. Clearing your browser's site data for wpmflex.com clears the heatmap along with everything else.